<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:26:09 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>OpenDaylight JIRA</title>
    <link>https://jira.opendaylight.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.20.10</version>
        <build-number>820010</build-number>
        <build-date>22-06-2022</build-date>
    </build-info>


<item>
            <title>[ODLGUICE-7] javax.inject exported twice by two different bundles</title>
                <link>https://jira.opendaylight.org/browse/ODLGUICE-7</link>
                <project id="10701" key="ODLGUICE">odlguice</project>
                    <description>&lt;p&gt;Do we agree that a package should be exported only by a single bundle?&lt;/p&gt;

&lt;p&gt;On my local fluorine I see conflicts that I believe are related to infra-utils &amp;amp; aaa.&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
nullop:/opt/sdn/controller/system$ cat ./org/opendaylight/aaa/odl-aaa-web/0.8.1/odl-aaa-web-0.8.1-features.xml
&amp;lt;?xml version=&lt;span class=&quot;code-quote&quot;&gt;&quot;1.0&quot;&lt;/span&gt; encoding=&lt;span class=&quot;code-quote&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt; standalone=&lt;span class=&quot;code-quote&quot;&gt;&quot;yes&quot;&lt;/span&gt;?&amp;gt;
&amp;lt;features xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;http:&lt;span class=&quot;code-comment&quot;&gt;//karaf.apache.org/xmlns/features/v1.4.0&quot;&lt;/span&gt; name=&lt;span class=&quot;code-quote&quot;&gt;&quot;odl-aaa-0.8.1&quot;&lt;/span&gt;&amp;gt;
&lt;/span&gt;    &amp;lt;repository&amp;gt;mvn:org.opendaylight.odlparent/odl-karaf-feat-jetty/3.1.4/xml/features&amp;lt;/repository&amp;gt;
    &amp;lt;repository&amp;gt;mvn:org.opendaylight.odlparent/odl-guava-23/3.1.4/xml/features&amp;lt;/repository&amp;gt;
    &amp;lt;repository&amp;gt;mvn:org.opendaylight.yangtools/odl-yangtools-util/2.0.12/xml/features&amp;lt;/repository&amp;gt;
    &amp;lt;feature name=&lt;span class=&quot;code-quote&quot;&gt;&quot;odl-aaa-web&quot;&lt;/span&gt; description=&lt;span class=&quot;code-quote&quot;&gt;&quot;ODL :: aaa :: odl-aaa-web&quot;&lt;/span&gt; version=&lt;span class=&quot;code-quote&quot;&gt;&quot;0.8.1&quot;&lt;/span&gt;&amp;gt;
        &amp;lt;details&amp;gt;OpenDaylight is leading the transformation to Open Software Defined Networking (SDN). For more information, please see https:&lt;span class=&quot;code-comment&quot;&gt;//www.opendaylight.org&amp;lt;/details&amp;gt;
&lt;/span&gt;        &amp;lt;feature version=&lt;span class=&quot;code-quote&quot;&gt;&quot;[3.1.0,4)&quot;&lt;/span&gt; prerequisite=&lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;&quot;&lt;/span&gt; dependency=&lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;&quot;&lt;/span&gt;&amp;gt;odl-karaf-feat-jetty&amp;lt;/feature&amp;gt;
        &amp;lt;feature version=&lt;span class=&quot;code-quote&quot;&gt;&quot;[3.1.0,4)&quot;&lt;/span&gt; prerequisite=&lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;&quot;&lt;/span&gt; dependency=&lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;&quot;&lt;/span&gt;&amp;gt;odl-guava-23&amp;lt;/feature&amp;gt;
        &amp;lt;feature version=&lt;span class=&quot;code-quote&quot;&gt;&quot;[2.0.10,3)&quot;&lt;/span&gt; prerequisite=&lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;&quot;&lt;/span&gt; dependency=&lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;&quot;&lt;/span&gt;&amp;gt;odl-yangtools-util&amp;lt;/feature&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.opendaylight.aaa.web/web-osgi-impl/0.8.1&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.opendaylight.aaa.web/web-api/0.8.1&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:javax.servlet/javax.servlet-api/3.1.0&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.ops4j.pax.web/pax-web-api/6.0.9&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.opendaylight.aaa.web/servlet-jersey2/0.8.1&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.opendaylight.aaa.web/servlet-api/0.8.1&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:javax.ws.rs/javax.ws.rs-api/2.0.1&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.glassfish.jersey.containers/jersey-container-servlet/2.8&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.glassfish.jersey.containers/jersey-container-servlet-core/2.25.1&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.glassfish.jersey.core/jersey-common/2.25.1&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:javax.annotation/javax.annotation-api/1.2&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.glassfish.hk2/osgi-resource-locator/1.0.1&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.glassfish.jersey.core/jersey-server/2.25.1&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.glassfish.jersey.media/jersey-media-jaxb/2.25.1&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:javax.validation/validation-api/1.1.0.Final&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.glassfish.jersey.core/jersey-client/2.25.1&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.glassfish.hk2/hk2-api/2.5.0-b32&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.glassfish.hk2/hk2-utils/2.5.0-b32&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.glassfish.hk2.external/aopalliance-repackaged/2.5.0-b32&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.glassfish.hk2.external/javax.inject/2.5.0-b32&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.glassfish.hk2/hk2-locator/2.5.0-b32&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.javassist/javassist/3.23.1-GA&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.glassfish.jersey.bundles.repackaged/jersey-guava/2.25.1&amp;lt;/bundle&amp;gt;
    &amp;lt;/feature&amp;gt;
&amp;lt;/features&amp;gt;
nullop:/opt/sdn/controller/system$ cat ./org/opendaylight/infrautils/odl-infrautils-inject/1.4.1/odl-infrautils-inject-1.4.1-features.xml
&amp;lt;?xml version=&lt;span class=&quot;code-quote&quot;&gt;&quot;1.0&quot;&lt;/span&gt; encoding=&lt;span class=&quot;code-quote&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt; standalone=&lt;span class=&quot;code-quote&quot;&gt;&quot;yes&quot;&lt;/span&gt;?&amp;gt;
&amp;lt;features xmlns=&lt;span class=&quot;code-quote&quot;&gt;&quot;http:&lt;span class=&quot;code-comment&quot;&gt;//karaf.apache.org/xmlns/features/v1.4.0&quot;&lt;/span&gt; name=&lt;span class=&quot;code-quote&quot;&gt;&quot;odl-infrautils-inject&quot;&lt;/span&gt;&amp;gt;
&lt;/span&gt;    &amp;lt;feature name=&lt;span class=&quot;code-quote&quot;&gt;&quot;odl-infrautils-inject&quot;&lt;/span&gt; description=&lt;span class=&quot;code-quote&quot;&gt;&quot;OpenDaylight :: Infrautils :: @Inject&quot;&lt;/span&gt; version=&lt;span class=&quot;code-quote&quot;&gt;&quot;1.4.1&quot;&lt;/span&gt;&amp;gt;
        &amp;lt;details&amp;gt;OpenDaylight is leading the transformation to Open Software Defined Networking (SDN). For more information, please see https:&lt;span class=&quot;code-comment&quot;&gt;//www.opendaylight.org&amp;lt;/details&amp;gt;
&lt;/span&gt;        &amp;lt;feature prerequisite=&lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-keyword&quot;&gt;true&lt;/span&gt;&quot;&lt;/span&gt; dependency=&lt;span class=&quot;code-quote&quot;&gt;&quot;&lt;span class=&quot;code-keyword&quot;&gt;false&lt;/span&gt;&quot;&lt;/span&gt;&amp;gt;wrap&amp;lt;/feature&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.opendaylight.infrautils/inject/1.4.1&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;wrap:mvn:javax.inject/javax.inject/1&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;wrap:mvn:com.google.errorprone/error_prone_annotations/2.3.1&amp;lt;/bundle&amp;gt;
    &amp;lt;/feature&amp;gt;
&amp;lt;/features&amp;gt;

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The part that stands out to me is&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
        &amp;lt;bundle&amp;gt;wrap:mvn:javax.inject/javax.inject/1&amp;lt;/bundle&amp;gt;
        &amp;lt;bundle&amp;gt;mvn:org.glassfish.hk2.external/javax.inject/2.5.0-b32&amp;lt;/bundle&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;I see this when changing package exports and running bundles&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
nullop@root&amp;gt;bundle:list | grep javax.inject
276 | Active   |  80 | 2.5.0.b32                              | javax.inject:1 as OSGi bundle
530 | Active   |  80 | 0                                      | wrap_file__opt_app_sdn_controller_system_javax_inject_javax.inject_1_javax.inject-1.jar
nullop@root&amp;gt;&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;:exports | grep javax.inject                            
javax.inject                                                                                                                                                                                                                                                                        &#9474; 0.0.0                                  &#9474; 530 &#9474; wrap_file__sdncopt_sdn_controller_system_javax_inject_javax.inject_1_javax.inject-1.jar
javax.inject                                                                                                                                                                                                                                                                        &#9474; 1.0.0                                  &#9474; 276 &#9474; org.glassfish.hk2.external.javax.inject

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;If I check the headers I do see the package is being exported in each bundle&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
nullop@root&amp;gt;bundle:headers 530wrap_file__sdncopt_sdn_controller_system_javax_inject_javax.inject_1_javax.inject-1.jar (530)
---------------------------------------------------------------------------------------------
Bnd-LastModified = 1568232244101
Created-By = 1.8.0_162 (Oracle Corporation)
Generated-By-Ops4j-Pax-From = wrap:file:/sdncopt/sdn/controller/system/javax/inject/javax.inject/1/javax.inject-1.jar
Manifest-Version = 1.0
Tool = Bnd-2.3.0.201405100607Bundle-ManifestVersion = 2
Bundle-Name = wrap_file__sdncopt_sdn_controller_system_javax_inject_javax.inject_1_javax.inject-1.jar
Bundle-SymbolicName = wrap_file__sdncopt_sdn_controller_system_javax_inject_javax.inject_1_javax.inject-1.jar
Bundle-Version = 0Require-Capability = 
	osgi.ee;filter:=(&amp;amp;(osgi.ee=JavaSE)(version=1.5))Export-Package = 
	javax.inject
nullop@root&amp;gt;bundle:headers 276javax.inject:1 as OSGi bundle (276)
-----------------------------------
Archiver-Version = Plexus Archiver
Bnd-LastModified = 1484762462222
Build-Jdk = 1.7.0_79
Built-By = java_re
Created-By = Apache Maven Bundle Plugin
Implementation-Version = 1
Manifest-Version = 1.0
Tool = Bnd-2.1.0.20130426-122213Bundle-Description = Injection API (JSR 330) version ${javax.inject.version} repackaged as OSGi bundle
Bundle-DocURL = http:&lt;span class=&quot;code-comment&quot;&gt;//www.oracle.com
&lt;/span&gt;Bundle-License = https:&lt;span class=&quot;code-comment&quot;&gt;//glassfish.java.net/nonav/&lt;span class=&quot;code-keyword&quot;&gt;public&lt;/span&gt;/CDDL+GPL_1_1.html
&lt;/span&gt;Bundle-ManifestVersion = 2
Bundle-Name = javax.inject:1 as OSGi bundle
Bundle-SymbolicName = org.glassfish.hk2.external.javax.inject
Bundle-Vendor = Oracle Corporation
Bundle-Version = 2.5.0.b32Export-Package = 
	javax.inject;version=1
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;If I turn the logs up I was seeing this make a package loop for about 20 minutes with this message&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
Chain 1:
  wrap_file__sdncopt_sdn_controller_system_org_glassfish_jersey_security_oauth1-signature_2.25.1_oauth1-signature-2.25.1.jar [wrap_file__sdncopt_sdn_controller_system_org_glassfish_jersey_security_oauth1-signature_2.25.1_oauth1-signature-2.25.1.jar/0.0.0]
    &lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt;: (osgi.wiring.&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;=javax.inject)
     |
    export: osgi.wiring.&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;: javax.inject
  wrap_file__sdncopt_sdn_controller_system_javax_inject_javax.inject_1_javax.inject-1.jar [wrap_file__sdncopt_sdn_controller_system_javax_inject_javax.inject_1_javax.inject-1.jar/0.0.0]Chain 2:
  wrap_file__sdncopt_sdn_controller_system_org_glassfish_jersey_security_oauth1-signature_2.25.1_oauth1-signature-2.25.1.jar [wrap_file__sdncopt_sdn_controller_system_org_glassfish_jersey_security_oauth1-signature_2.25.1_oauth1-signature-2.25.1.jar/0.0.0]
    &lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt;: (osgi.wiring.&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;=org.glassfish.jersey.internal.l10n)
     |
    export: osgi.wiring.&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;=org.glassfish.jersey.internal.l10n; uses:=javax.inject
  org.glassfish.jersey.core.jersey-common [org.glassfish.jersey.core.jersey-common/2.25.1]
    &lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt;: (&amp;amp;(osgi.wiring.&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;=javax.inject)(version&amp;gt;=1.0.0)(!(version&amp;gt;=2.0.0)))
     |
    export: osgi.wiring.&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;: javax.inject
  org.glassfish.hk2.external.javax.inject [org.glassfish.hk2.external.javax.inject/2.5.0.b32])
2019-09-10T17:38:06,336 | DEBUG | features-1-thread-1 | ResolverImpl                     | 8 - org.apache.karaf.features.core - 4.1.6 |  -   | Candidate permutation failed due to a conflict between imports; will &lt;span class=&quot;code-keyword&quot;&gt;try&lt;/span&gt; another &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; possible. (Uses constraint violation. Unable to resolve resource wrap_file__sdncopt_sdn_controller_system_org_glassfish_jersey_security_oauth1-signature_2.25.1_oauth1-signature-2.25.1.jar [wrap_file__sdncopt_sdn_controller_system_org_glassfish_jersey_security_oauth1-signature_2.25.1_oauth1-signature-2.25.1.jar/0.0.0] because it is exposed to &lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt; &lt;span class=&quot;code-quote&quot;&gt;&apos;javax.inject&apos;&lt;/span&gt; from resources wrap_file__sdncopt_sdn_controller_system_javax_inject_javax.inject_1_javax.inject-1.jar [wrap_file__sdncopt_sdn_controller_system_javax_inject_javax.inject_1_javax.inject-1.jar/0.0.0] and org.glassfish.hk2.external.javax.inject [org.glassfish.hk2.external.javax.inject/2.5.0.b32] via two dependency chains.Chain 1:
  wrap_file__sdncopt_sdn_controller_system_org_glassfish_jersey_security_oauth1-signature_2.25.1_oauth1-signature-2.25.1.jar [wrap_file__sdncopt_sdn_controller_system_org_glassfish_jersey_security_oauth1-signature_2.25.1_oauth1-signature-2.25.1.jar/0.0.0]
    &lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt;: (osgi.wiring.&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;=javax.inject)
     |
    export: osgi.wiring.&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;: javax.inject
  wrap_file__sdncopt_sdn_controller_system_javax_inject_javax.inject_1_javax.inject-1.jar [wrap_file__sdncopt_sdn_controller_system_javax_inject_javax.inject_1_javax.inject-1.jar/0.0.0]Chain 2:
  wrap_file__sdncopt_sdn_controller_system_org_glassfish_jersey_security_oauth1-signature_2.25.1_oauth1-signature-2.25.1.jar [wrap_file__sdncopt_sdn_controller_system_org_glassfish_jersey_security_oauth1-signature_2.25.1_oauth1-signature-2.25.1.jar/0.0.0]
    &lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt;: (osgi.wiring.&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;=org.glassfish.jersey.internal.l10n)
     |
    export: osgi.wiring.&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;=org.glassfish.jersey.internal.l10n; uses:=org.glassfish.hk2.api
  org.glassfish.jersey.core.jersey-common [org.glassfish.jersey.core.jersey-common/2.25.1]
    &lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt;: (&amp;amp;(osgi.wiring.&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;=org.glassfish.hk2.api)(version&amp;gt;=2.5.0)(!(version&amp;gt;=3.0.0)))
     |
    export: osgi.wiring.&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;=org.glassfish.hk2.api; uses:=javax.inject
  org.glassfish.hk2.api [org.glassfish.hk2.api/2.5.0.b32]
    &lt;span class=&quot;code-keyword&quot;&gt;import&lt;/span&gt;: (osgi.wiring.&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;=javax.inject)
     |
    export: osgi.wiring.&lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;: javax.inject
  org.glassfish.hk2.external.javax.inject [org.glassfish.hk2.external.javax.inject/2.5.0.b32])
2019-09-10T17:38:06,481 | DEBUG | features-1-thread-1 | ResolverImpl                     | 8 - org.apache.karaf.features.core - 4.1.6 |  -   | Candidate permutation failed due to a conflict between imports; will &lt;span class=&quot;code-keyword&quot;&gt;try&lt;/span&gt; another &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; possible. (Uses constraint violation. Unable to resolve resource org.glassfish.jersey.core.jersey-client [org.glassfish.jersey.core.jersey-client/2.25.1] because it is exposed to &lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt; &lt;span class=&quot;code-quote&quot;&gt;&apos;javax.inject&apos;&lt;/span&gt; from resources org.glassfish.hk2.external.javax.inject [org.glassfish.hk2.external.javax.inject/2.5.0.b32] and org.glassfish.hk2.external.javax.inject [org.glassfish.hk2.external.javax.inject/2.5.0.b32] via two dependency chains.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="31968">ODLGUICE-7</key>
            <summary>javax.inject exported twice by two different bundles</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.opendaylight.org/images/icons/priorities/critical.svg">High</priority>
                        <status id="10003" iconUrl="https://jira.opendaylight.org/images/icons/status_generic.gif" description="">Confirmed</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="tnevrekar">Tejas Nevrekar</assignee>
                                    <reporter username="nullop">Kevin Smokowski</reporter>
                        <labels>
                    </labels>
                <created>Wed, 11 Sep 2019 20:07:22 +0000</created>
                <updated>Sat, 3 Oct 2020 11:49:28 +0000</updated>
                                                            <fixVersion>Silicon</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                                                                <comments>
                            <comment id="67246" author="vorburger" created="Thu, 12 Sep 2019 13:51:13 +0000"  >&lt;p&gt;&amp;gt; Do we agree that a package should be exported only by a single bundle?&lt;/p&gt;

&lt;p&gt;yes!&lt;/p&gt;

&lt;p&gt;This javax.inject/javax.inject/1 VS org.glassfish.hk2.external/javax.inject/2.5.0-b32 business rings a (vague) bell in my mind... search JIRA and Gerrit for anything related, &lt;a href=&quot;https://git.opendaylight.org/gerrit/q/javax.inject&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/q/javax.inject&lt;/a&gt;, note e.g. &lt;a href=&quot;https://git.opendaylight.org/gerrit/c/aaa/+/77654/2/web/servlet-jersey2/pom.xml&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/c/aaa/+/77654/2/web/servlet-jersey2/pom.xml&lt;/a&gt; - you may want to do something similar, somewhere?&lt;/p&gt;

&lt;p&gt;Unassigned this issue from myself, just to clarify that I no longer actively work on OpenDaylight, by day; I&apos;m still happy to occasionally answer Qs such as this, by night.&lt;/p&gt;

&lt;p&gt;Gerrit changes from you to fix this problem are, of course, very welcome. (I&apos;d still try to find a moment to review and merge anything like this.)&lt;/p&gt;</comment>
                            <comment id="67248" author="nullop" created="Thu, 12 Sep 2019 15:02:38 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=vorburger&quot; class=&quot;user-hover&quot; rel=&quot;vorburger&quot;&gt;vorburger&lt;/a&gt; thanks for your reply. I believe Jira has you as the default assignee still so I let that option flow through, didn&apos;t mean to directly target you.&lt;/p&gt;

&lt;p&gt;I&apos;m thinking that perhaps AAA might need the fix? I&apos;m trying to think of what is actually correct.&lt;/p&gt;

&lt;p&gt;For example should org.glassfish.hk2.external.javax.inject import javax.inject and not export it?&lt;/p&gt;

&lt;p&gt;It would seem odd for infrautils to import this package from org.glassfish.hk2.external.javax.inject instead of something like the wrapped javax.inject jar.&lt;/p&gt;

&lt;p&gt;I saw you did some PoC on removing Karaf. Karaf has many complicated pains such as this one &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.opendaylight.org/images/icons/emoticons/sad.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="68469" author="rovarga" created="Thu, 23 Jul 2020 09:40:10 +0000"  >&lt;p&gt;Well, javax.inject should &lt;b&gt;always&lt;/b&gt; be scope=provided in all our artifacts which make it to OSGi, simply because we do not rely on javax.inject for actual wiring in OSGi. That is not true for Jersey, though, which needs HK2 for wiring, which in turn requires javax.inject package &#8211; and the place they are getting is their own packaging (because javax.inject-1.jar is &lt;b&gt;not&lt;/b&gt; a bundle).&lt;/p&gt;

&lt;p&gt;That having been said, there is actually a third party contender, which is Geronimo&apos;s atinject &#8211; which does exactly the same thing as hk2.external.javax.inject!&lt;/p&gt;</comment>
                            <comment id="68470" author="rovarga" created="Thu, 23 Jul 2020 09:47:11 +0000"  >&lt;p&gt;Looking through what we are actually shipping, javax.inject is being packaged by odl-infrautils-inject feature and is actively being used by ClassPathScanner.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=vorburger&quot; class=&quot;user-hover&quot; rel=&quot;vorburger&quot;&gt;vorburger&lt;/a&gt;I cannot find anything in terms of documentation of this. Is that even meant to be used in Karaf? If not, then we should actively filter javax.inject from that package, should we not?&lt;/p&gt;</comment>
                            <comment id="68477" author="rovarga" created="Thu, 23 Jul 2020 17:18:45 +0000"  >&lt;p&gt;Guice wiring, which is the only infrautils thing pulling this in is moving to odlguice. Moving this issue there, so it gets addressed.&lt;/p&gt;</comment>
                    </comments>
                    <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_11400" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10002" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>ODLGUICE-9</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03ozr:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    </customfields>
    </item>
</channel>
</rss>