SCR annotations @Activate @Deactivate @Modified in outer classes also affect nested classes, annotations in nested classes are ignored --------------------------------------------------------------------------------------------------------------------------------------
Key: FELIX-3332 URL: https://issues.apache.org/jira/browse/FELIX-3332 Project: Felix Issue Type: Bug Components: Maven SCR Plugin Affects Versions: maven-scr-plugin-1.7.4, maven-scr-plugin-1.7.2 Reporter: Daniel Faber Priority: Minor When maven-scr-plugin processes components that are implemented as nested classes, SCR annotations @Activate @Deactivate @Modified in these nested classes are ignored. Annotations in the outer class are used instead: import org.apache.felix.scr.annotations.Activate; import org.apache.felix.scr.annotations.Component; @Component public class Outer { @Activate private void activateOuter() { } @Component public static class Nested1 { } @Component public static class Nested2 { @Activate private void activateNested2() { } } } results in this component description: <?xml version="1.0" encoding="UTF-8"?> <components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0"> <scr:component enabled="true" name="Outer" activate="activateOuter"> <implementation class="Outer"/> <property name="service.pid" value="Outer"/> </scr:component> <scr:component enabled="true" name="Outer$Nested1" activate="activateOuter"> <implementation class="Outer$Nested1"/> <property name="service.pid" value="Outer$Nested1"/> </scr:component> <scr:component enabled="true" name="Outer$Nested2" activate="activateOuter"> <implementation class="Outer$Nested2"/> <property name="service.pid" value="Outer$Nested2"/> </scr:component> </components> All components have an activate="activateOuter" attribute. Similar problems occur if the outer class is not a component or does not have an @Activate annotation: public class Outer { @Component public static class Nested { @Activate private void activateNested() { } } } Here the activate attribute is missing: <?xml version="1.0" encoding="UTF-8"?> <components xmlns:scr="http://www.osgi.org/xmlns/scr/v1.0.0"> <scr:component enabled="true" name="Outer$Nested"> <implementation class="Outer$Nested"/> <property name="service.pid" value="Outer$Nested"/> </scr:component> </components> -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira