[ 
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.

Reply via email to