felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Neil Bartlett (JIRA)" <j...@apache.org>
Subject [jira] Commented: (FELIX-2010) activate on component not called if specified in class and omitted from xml
Date Wed, 27 Jan 2010 10:35:35 GMT

    [ https://issues.apache.org/jira/browse/FELIX-2010?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12805460#action_12805460

Neil Bartlett commented on FELIX-2010:

Chris, your second XML snippet is NOT in the 1.1 namespace, therefore it will only work if
your activate method has the correct 1.0 signature, i.e. public void activate(ComponentContext).

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

View raw message