<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 20:25:50 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>[NEUTRON-205] Classpath duplicates detected: javax/inject/Inject.class</title>
                <link>https://jira.opendaylight.org/browse/NEUTRON-205</link>
                <project id="10145" key="NEUTRON">neutron</project>
                    <description>&lt;p&gt;The Neutron build fails in &lt;tt&gt;integration-test-standalone&lt;/tt&gt; due to &lt;tt&gt;junit.framework.AssertionFailedError: Classpath duplicates detected: javax/inject/Inject.class&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;This is from the (infrautils) &lt;a href=&quot;https://javadocs.opendaylight.org/org.opendaylight.infrautils/neon/org/opendaylight/infrautils/testutils/ClasspathHellDuplicatesCheckRule.html&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;ClasspathHellDuplicatesCheckRule&lt;/a&gt; used in the &lt;tt&gt;NeutronE2ETest&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;Fixing this properly is important in light of &lt;a href=&quot;https://github.com/vorburger/opendaylight-simple/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/vorburger/opendaylight-simple/&lt;/a&gt; where a clean &quot;flat&quot; classpath is even more critical tomorrow than it is today in standalone tests.&lt;/p&gt;</description>
                <environment></environment>
        <key id="30997">NEUTRON-205</key>
            <summary>Classpath duplicates detected: javax/inject/Inject.class</summary>
                <type id="10104" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="5" iconUrl="https://jira.opendaylight.org/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="vorburger">Michael Vorburger</assignee>
                                    <reporter username="vorburger">Michael Vorburger</reporter>
                        <labels>
                    </labels>
                <created>Fri, 9 Nov 2018 13:57:01 +0000</created>
                <updated>Fri, 9 Nov 2018 21:38:43 +0000</updated>
                            <resolved>Fri, 9 Nov 2018 21:38:43 +0000</resolved>
                                    <version>Neon</version>
                                    <fixVersion>Neon</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="65536" author="vorburger" created="Fri, 9 Nov 2018 14:01:21 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.opendaylight.org/secure/ViewProfile.jspa?name=skitt&quot; class=&quot;user-hover&quot; rel=&quot;skitt&quot;&gt;skitt&lt;/a&gt; fixed (worked around) this with &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/77327/1/integration/test-standalone/pom.xml&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/77327/1/integration/test-standalone/pom.xml&lt;/a&gt; but then it regressed again .. I suspect that was probably &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/76625/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/76625/&lt;/a&gt; for &lt;a href=&quot;https://jira.opendaylight.org/browse/INFRAUTILS-52&quot; title=&quot;jHades doesn&#8217;t support JDK 9+&quot; class=&quot;issue-link&quot; data-issue-key=&quot;INFRAUTILS-52&quot;&gt;&lt;del&gt;INFRAUTILS-52&lt;/del&gt;&lt;/a&gt; - which is now doing classpath duplicate analysis a little differently, but better, than before. Because it&apos;s right to point out that this isn&apos;t clean:&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;junit.framework.AssertionFailedError: Classpath duplicates detected: javax/inject/Inject.class
    jar:file:/home/vorburger/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar!/javax/inject/Inject.class
    jar:file:/home/vorburger/.m2/repository/org/glassfish/hk2/external/javax.inject/2.5.0-b32/javax.inject-2.5.0-b32.jar!/javax/inject/Inject.class&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;We could add more exclusions in the POM of integration-test-standalone, but let&apos;s try to fix this up at source...&lt;/p&gt;</comment>
                            <comment id="65538" author="vorburger" created="Fri, 9 Nov 2018 14:25:22 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/77654/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/77654/&lt;/a&gt; fixes this problem (locally tested).&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/77655/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/77655/&lt;/a&gt; adds non-regression testing for this problem.&lt;/p&gt;</comment>
                            <comment id="65541" author="vorburger" created="Fri, 9 Nov 2018 16:29:12 +0000"  >&lt;p&gt;&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/77654/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/77654/&lt;/a&gt; &lt;a href=&quot;https://logs.opendaylight.org/releng/vex-yul-odl-jenkins-1/aaa-distribution-check-neon/65/console.log.gz&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;fails in aaa-distribution-check-neon&lt;/a&gt; due to:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;missing requirement [org.glassfish.jersey.containers.jersey-container-servlet-core/2.25.1] osgi.wiring.package; filter:=&quot;(&amp;amp;(osgi.wiring.package=javax.inject)(version&amp;gt;=1.0.0)(!(version&amp;gt;=2.0.0)))&quot;&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;I think that&apos;s probably because the OSGi bundle org.glassfish.jersey.containers.jersey-container-servlet-core (2.25.1) has a non-optional Package-Import for javax.inject, but we made javax.inject:javax.inject &amp;lt;optional&amp;gt;true in odlparent, and somewhere excluded it? (But we do include&#160;org.glassfish.hk2.external:javax.inject, so that whole optional and exclusion is really a bit useless after all.)&lt;/p&gt;

&lt;p&gt;This isn&apos;t really worth my time to dig more into and somehow fix more properly... let&apos;s just add javax.inject to ClasspathHellDuplicatesCheckRule&apos;s ignore white list; so proposed in &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/77658/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/77658/&lt;/a&gt;&#160;now.&lt;/p&gt;

&lt;p&gt;I suspect the previous JHades instead of ClassGraph based implementation probably ignored it because it had the same size (&lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/76625/8/testutils/src/main/java/org/opendaylight/infrautils/testutils/ClasspathHellDuplicatesCheckRule.java&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;note boolean excludeSameSizeDups = true&lt;/a&gt;); if we have a lot more problems like this, we would have to re-emulate that size checking behaviour in the ClasspathHellDuplicatesChecker...&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="30790">INFRAUTILS-52</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <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_10000" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i03kaf:</customfieldvalue>

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