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


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