<!-- 
RSS generated by JIRA (8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d) at Wed Feb 07 19:08:49 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>[AAA-170] WebServer service API cannot be injected with @OsgiService annotation</title>
                <link>https://jira.opendaylight.org/browse/AAA-170</link>
                <project id="10102" key="AAA">aaa</project>
                    <description>&lt;p&gt;While working on &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/68767/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;c/68767&lt;/a&gt;&#160;to use of &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/q/topic:simple-dist_web&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;the new Web API&lt;/a&gt; in project Neutron, I bumped into a very confusing issue which I finally was able to work around (in Patch Set 5 of &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/68767/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;c/68767&lt;/a&gt;), but that is worth recording&#160;here in case anyone else wants to further investigate this separately some later time, and a record just in case we run into this same issue again later when using the Web API in other projects:&lt;/p&gt;

&lt;p&gt;It seems that the use of the &lt;tt&gt;@OsgiService&lt;/tt&gt; annotation from pax-cdi-api which is useful to avoid having to manually write a BP XML with a &amp;lt;reference&amp;gt; (as documented on &lt;a href=&quot;https://wiki.opendaylight.org/view/BestPractices/DI_Guidelines#NEW:_.40OsgiService_.26_.40OsgiServiceProvider_.28pax-cdi-api.29&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://wiki.opendaylight.org/view/BestPractices/DI_Guidelines#NEW:_.40OsgiService_.26_.40OsgiServiceProvider_.28pax-cdi-api.29&lt;/a&gt;), does not work IFF said service is registered programmatically via an OSGi Service Factory, such as the org.opendaylight.aaa.web.WebServer was in &lt;a href=&quot;https://git.opendaylight.org/gerrit/#/c/69475/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://git.opendaylight.org/gerrit/#/c/69475/&lt;/a&gt;. I have used this for other &quot;normal&quot; OSGi Services advertised via an &lt;tt&gt;@OsgiServiceProvider&lt;/tt&gt; annotation in several places (notably infrautils but I think also some in genius and netvirt), where it did work. The link with the OSGi Service Factory based registration is more of a suspicions than something I have conclusively proven.&lt;/p&gt;

&lt;p&gt;This seems to have something to do with this &lt;tt&gt;Import&lt;/tt&gt; that gets generated in the MANIFEST.MF (of &lt;tt&gt;org.opendaylight.neutron.northbound-api&lt;/tt&gt; in this case, but it&apos;s probably got nothing to do with Neutron):&lt;/p&gt;

&lt;p&gt;&lt;tt&gt;Import-Service: org.opendaylight.aaa.web.WebServer;multiple:=false&lt;/tt&gt;&lt;/p&gt;

&lt;p&gt;Here is the full SFT failure details:&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;[INFO] --- maven-surefire-plugin:2.18.1:test (default) @ odl-neutron-northbound-api ---
[INFO] Surefire report directory: /home/vorburger/dev/ODL/git/neutron/features/production/odl-neutron-northbound-api/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running org.opendaylight.odlparent.featuretest.SingleFeatureTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 22.34 sec &amp;lt;&amp;lt;&amp;lt; FAILURE! - in org.opendaylight.odlparent.featuretest.SingleFeatureTest
installFeatureCatchAndLog(org.opendaylight.odlparent.featuretest.SingleFeatureTest)[repoUrl: file:/home/vorburger/dev/ODL/git/neutron/features/production/odl-neutron-northbound-api/target/feature/feature.xml, Feature: odl-neutron-northbound-api 0.11.0.SNAPSHOT]  Time elapsed: 21.386 sec  &amp;lt;&amp;lt;&amp;lt; ERROR!
org.osgi.service.resolver.ResolutionException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=odl-neutron-northbound-api; type=karaf.feature; version=&quot;[0.11.0.SNAPSHOT,0.11.0.SNAPSHOT]&quot;; filter:=&quot;(&amp;amp;(osgi.identity=odl-neutron-northbound-api)(type=karaf.feature)(version&amp;gt;=0.11.0.SNAPSHOT)(version&amp;lt;=0.11.0.SNAPSHOT))&quot; [caused by: Unable to resolve odl-neutron-northbound-api/0.11.0.SNAPSHOT: missing requirement [odl-neutron-northbound-api/0.11.0.SNAPSHOT] osgi.identity; osgi.identity=org.opendaylight.neutron.northbound-api; type=osgi.bundle; version=&quot;[0.11.0.SNAPSHOT,0.11.0.SNAPSHOT]&quot;; resolution:=mandatory [caused by: Unable to resolve org.opendaylight.neutron.northbound-api/0.11.0.SNAPSHOT: missing requirement [org.opendaylight.neutron.northbound-api/0.11.0.SNAPSHOT] osgi.service; effective:=active; filter:=&quot;(objectClass=org.opendaylight.aaa.web.WebServer)&quot;]]
	at org.apache.felix.resolver.ResolutionError.toException(ResolutionError.java:42)
	at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:391)
	at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:377)
	at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:349)
	at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:218)
	at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:291)
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1248)
	at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$1(FeaturesServiceImpl.java:1147)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)


Results :

Tests in error: 
  Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=odl-neutron-northbound-api; type=karaf.feature; version=&quot;[0.11.0.SNAPSHOT,0.11.0.SNAPSHOT]&quot;; filter:=&quot;(&amp;amp;(osgi.identity=odl-neutron-northbound-api)(type=karaf.feature)(version&amp;gt;=0.11.0.SNAPSHOT)(version&amp;lt;=0.11.0.SNAPSHOT))&quot; [caused by: Unable to resolve odl-neutron-northbound-api/0.11.0.SNAPSHOT: missing requirement [odl-neutron-northbound-api/0.11.0.SNAPSHOT] osgi.identity; osgi.identity=org.opendaylight.neutron.northbound-api; type=osgi.bundle; version=&quot;[0.11.0.SNAPSHOT,0.11.0.SNAPSHOT]&quot;; resolution:=mandatory [caused by: Unable to resolve org.opendaylight.neutron.northbound-api/0.11.0.SNAPSHOT: missing requirement [org.opendaylight.neutron.northbound-api/0.11.0.SNAPSHOT] osgi.service; effective:=active; filter:=&quot;(objectClass=org.opendaylight.aaa.web.WebServer)&quot;]]

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] ODL :: neutron :: project-neutron-parent ........... SUCCESS [  5.379 s]
[INFO] ODL :: neutron :: model ............................ SUCCESS [ 30.068 s]
[INFO] ODL :: neutron :: neutron-spi ...................... SUCCESS [ 14.721 s]
[INFO] ODL :: neutron :: northbound-api ................... SUCCESS [ 16.400 s]
[INFO] ODL :: neutron :: transcriber ...................... SUCCESS [ 11.843 s]
[INFO] ODL :: neutron :: neutron-logger ................... SUCCESS [  3.693 s]
[INFO] Neutron Artifacts .................................. SUCCESS [  0.252 s]
[INFO] OpenDaylight :: Neutron :: API ..................... SUCCESS [ 31.421 s]
[INFO] OpenDaylight :: Neutron :: Northbound .............. FAILURE [ 29.459 s]
[INFO] OpenDaylight :: Neutron :: Service ................. SKIPPED
[INFO] ODL :: neutron :: neutron-hostconfig-utils ......... SKIPPED
[INFO] ODL :: neutron :: neutron-hostconfig-ovs ........... SKIPPED
[INFO] OpenDaylight :: Neutron :: Hostconfig :: OVS ....... SKIPPED
[INFO] ODL :: neutron :: neutron-hostconfig-vpp ........... SKIPPED
[INFO] OpenDaylight :: Neutron :: Hostconfig :: VPP ....... SKIPPED
[INFO] features-neutron-service ........................... SKIPPED
[INFO] OpenDaylight :: Neutron :: Logger .................. SKIPPED
[INFO] features-aggregator ................................ SKIPPED
[INFO] ODL :: neutron :: integration-test-standalone ...... SKIPPED
[INFO] OpenDaylight :: Neutron :: Logger :: Test .......... SKIPPED
[INFO] features-neutron-test .............................. SKIPPED
[INFO] features-test-aggregator ........................... SKIPPED
[INFO] neutron-karaf ...................................... SKIPPED
[INFO] ODL :: neutron :: integration-test ................. SKIPPED
[INFO] ODL :: neutron :: neutron-hostconfig ............... SKIPPED
[INFO] neutron ............................................ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:27 min
[INFO] Finished at: 2018-03-16T00:25:38+01:00
[INFO] Final Memory: 199M/1836M
[INFO] ------------------------------------------------------------------------&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="29435">AAA-170</key>
            <summary>WebServer service API cannot be injected with @OsgiService annotation</summary>
                <type id="10100" iconUrl="https://jira.opendaylight.org/secure/viewavatar?size=xsmall&amp;avatarId=10310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.opendaylight.org/images/icons/priorities/major.svg">Medium</priority>
                        <status id="1" iconUrl="https://jira.opendaylight.org/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="blue-gray"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="-1">Unassigned</assignee>
                                    <reporter username="vorburger">Michael Vorburger</reporter>
                        <labels>
                    </labels>
                <created>Fri, 16 Mar 2018 13:59:11 +0000</created>
                <updated>Fri, 16 Mar 2018 13:59:11 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>0</watches>
                                                                                                                        <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|i03bqv:</customfieldvalue>

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