[
https://issues.apache.org/jira/browse/FELIX-2010?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12805463#action_12805463
]
Felix Meschberger commented on FELIX-2010:
------------------------------------------
Hmm, the component in scrtest-fails.jar is declared with this descriptor:
<component name='scrtest.TestComponent'>
<implementation class='scrtest.TestComponent'/>
</component>
Since this descriptor has no namespace, it is assumed to be a DS 1.0 component
and hence the activate method is not found - as expected. This is specified in
Section 112.4.2, XML Document:
If an XML document contains a single, root component element which does
not specify a namespace, then the http://www.osgi.org/xmlns/scr/v1.0.0
namespace is assumed. Component descriptions using the http://
www.osgi.org/xmlns/scr/v1.0.0 namespace must be treated according to
version 1.0 of this specification.
> activate on component not called if specified in class and omitted from xml
> ---------------------------------------------------------------------------
>
> Key: FELIX-2010
> URL: https://issues.apache.org/jira/browse/FELIX-2010
> Project: Felix
> Issue Type: Bug
> Components: Declarative Services (SCR)
> Affects Versions: scr-1.4.0
> Environment: Mac OS X
> java version "1.6.0_17"
> Java(TM) SE Runtime Environment (build 1.6.0_17-b04-248-10M3025)
> Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01-101, mixed mode)
> Reporter: Christopher Brind
> Attachments: scrtest-fails.jar, scrtest-works.jar
>
>
> The component descriptor does not have to explicitly specify the activate and
> deactivate methods. However, if activate/deactivate are in the class then
> they should still be called at the appropriate time.
> So for example the following code only prints "Hello world!" when the
> activate method is specified explicitly in the component descriptor xml.
> public class FooComponent {
> // the same seems to apply regardless of the signature
> public void activate() {
> System.out.println("Hello world!");
> }
> }
> This XML causes "Hello world!" to appear:
> <?xml version='1.0' encoding='utf-8'?>
> <component name='uk.org.brindy.felixscrtest.FooComponent'
> xmlns='http://www.osgi.org/xmlns/scr/v1.1.0' activate='activate'>
> <implementation class='uk.org.brindy.felixscrtest.FooComponent'/>
> </component>
> But this XML does not:
> <?xml version='1.0' encoding='utf-8'?>
> <component name='uk.org.brindy.felixscrtest.FooComponent'>
> <implementation class='uk.org.brindy.felixscrtest.FooComponent'/>
> </component>
> I could not quote a specific reference from the OSGi spec, but generally the
> latter example of XML is how the examples are structured (i.e. with implicit
> activate methods), for example see section 112.2.2 (Immediate Component) of
> the OSGi 4.2 compendium.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.