[
https://issues.apache.org/jira/browse/FELIX-2876?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Felix Meschberger updated FELIX-2876:
-------------------------------------
Description:
I have the following class:
@Component(specVersion = "1.1")
@Service(Servlet.class)
@Reference(referenceInterface = LogService.class, strategy =
ReferenceStrategy.LOOKUP)
public class Test extends HttpServlet {
}
Running this through the Maven SCR Plugin, I would expect this descriptor:
<?xml version="1.0" encoding="UTF-8"?>
<components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
<scr:component enabled="true" name="test.Test">
<implementation class="test.Test"/>
<service servicefactory="false">
<provide interface="javax.servlet.Servlet"/>
</service>
<property name="service.pid" value="test.Test"/>
<reference interface="org.osgi.service.log.LogService"
cardinality="1..1" policy="static"/>
</scr:component>
</components>
what I get is the following descriptor without the <reference> element
<?xml version="1.0" encoding="UTF-8"?>
<components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
<scr:component enabled="true" name="test.Test">
<implementation class="test.Test"/>
<service servicefactory="false">
<provide interface="javax.servlet.Servlet"/>
</service>
<property name="service.pid" value="test.Test"/>
</scr:component>
</components>
Adding the "name" attribute to the @Reference tag properly generates
<reference> element, though.
IMHO this is false in multiple ways:
* There is no log message indicating this omission
* According to the DS 1.1 spec, the name attribute is optional; thus a
<reference> element without name must be generated
* If I set specVersion="1.0" in the @Component tag, an error should be
generated for the missing name tag (because the name tag is required in DS 1.0)
was:
I have the following class:
@Component(specVersion = "1.1")
@Service(Servlet.class)
@Reference(referenceInterface = LogService.class, strategy =
ReferenceStrategy.LOOKUP)
public class Test extends HttpServlet {
}
Running this through the Maven SCR Plugin, I would expect this descriptor:
<?xml version="1.0" encoding="UTF-8"?>
<components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
<scr:component enabled="true" name="test.Test">
<implementation class="test.Test"/>
<service servicefactory="false">
<provide interface="javax.servlet.Servlet"/>
</service>
<property name="service.pid" value="test.Test"/>
<reference interface="org.osgi.service.log.LogService"
cardinality="1..1" policy="static"/>
</scr:component>
</components>
what I get is the following descriptor without the <reference> element
<?xml version="1.0" encoding="UTF-8"?>
<components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
<scr:component enabled="true" name="test.Test">
<implementation class="test.Test"/>
<service servicefactory="false">
<provide interface="javax.servlet.Servlet"/>
</service>
<property name="service.pid" value="test.Test"/>
<reference interface="org.osgi.service.log.LogService"
cardinality="1..1" policy="static"/>
</scr:component>
</components>
Adding the "name" attribute to the @Reference tag properly generates
<reference> element, though.
IMHO this is false in multiple ways:
* There is no log message indicating this omission
* According to the DS 1.1 spec, the name attribute is optional; thus a
<reference> element without name must be generated
* If I set specVersion="1.0" in the @Component tag, an error should be
generated for the missing name tag (because the name tag is required in DS 1.0)
> <reference> element not generated when name is missing
> ------------------------------------------------------
>
> Key: FELIX-2876
> URL: https://issues.apache.org/jira/browse/FELIX-2876
> Project: Felix
> Issue Type: Bug
> Components: Maven SCR Plugin
> Affects Versions: maven-scr-plugin-1.6.0
> Reporter: Felix Meschberger
>
> I have the following class:
> @Component(specVersion = "1.1")
> @Service(Servlet.class)
> @Reference(referenceInterface = LogService.class, strategy =
> ReferenceStrategy.LOOKUP)
> public class Test extends HttpServlet {
> }
> Running this through the Maven SCR Plugin, I would expect this descriptor:
> <?xml version="1.0" encoding="UTF-8"?>
> <components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
> <scr:component enabled="true" name="test.Test">
> <implementation class="test.Test"/>
> <service servicefactory="false">
> <provide interface="javax.servlet.Servlet"/>
> </service>
> <property name="service.pid" value="test.Test"/>
> <reference interface="org.osgi.service.log.LogService"
> cardinality="1..1" policy="static"/>
> </scr:component>
> </components>
> what I get is the following descriptor without the <reference> element
> <?xml version="1.0" encoding="UTF-8"?>
> <components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0">
> <scr:component enabled="true" name="test.Test">
> <implementation class="test.Test"/>
> <service servicefactory="false">
> <provide interface="javax.servlet.Servlet"/>
> </service>
> <property name="service.pid" value="test.Test"/>
> </scr:component>
> </components>
> Adding the "name" attribute to the @Reference tag properly generates
> <reference> element, though.
> IMHO this is false in multiple ways:
> * There is no log message indicating this omission
> * According to the DS 1.1 spec, the name attribute is optional; thus a
> <reference> element without name must be generated
> * If I set specVersion="1.0" in the @Component tag, an error should be
> generated for the missing name tag (because the name tag is required in DS
> 1.0)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira