You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Clement Escoffier (JIRA)" <ji...@apache.org> on 2014/12/03 11:53:12 UTC
[jira] [Resolved] (FELIX-4668) Can not use @Stereotype annotated
annotation from another bundle (unless its package is included or
re-exported)
[ https://issues.apache.org/jira/browse/FELIX-4668?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Clement Escoffier resolved FELIX-4668.
--------------------------------------
Resolution: Fixed
Fix Version/s: ipojo-manipulator-1.12.1
Assignee: Clement Escoffier
Fixed in trunk.
I've tested on your project and now it works (BTW thanks to the use case, made testing much simpler).
> Can not use @Stereotype annotated annotation from another bundle (unless its package is included or re-exported)
> ----------------------------------------------------------------------------------------------------------------
>
> Key: FELIX-4668
> URL: https://issues.apache.org/jira/browse/FELIX-4668
> Project: Felix
> Issue Type: Bug
> Components: iPOJO
> Environment: maven-ipojo-plugin 1.12.0
> Reporter: Milen Dyankov
> Assignee: Clement Escoffier
> Priority: Minor
> Labels: ipojo-manipulator, maven
> Fix For: ipojo-manipulator-1.12.1
>
> Attachments: stereotype-test.zip
>
>
> Here are the steps:
> # create a bundle (say "Stereotype") that exports package {{test.ipojo.stereotype}} containing
> ## the {{MyInterface}} interface
> ## the {{MyComponent}} annotation:
> {code}
> @Component
> @Provides (specifications = MyInterface.class)
> @Stereotype
> @Target(TYPE)
> public @interface MyComponent {
> }
> {code}
> # build and install "Stereotype" in local maven repo
> # using maven, create another bundle (say "Stereotype-bundle") containing a class that uses the stereotype:
> {code}
> @MyComponent
> public class ComponentByStereotype extends ComponentBase implements AnotherInterface
> {code}
> # configure BND of "Stereotype-bundle" like this (the bundle does not need to export or include any package):
> {code:xml}
> <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
> <Bundle-Version>${project.version}</Bundle-Version>
> <Import-Package>test.ipojo.stereotype,*</Import-Package>
> <Private-Package></Private-Package>
> <Export-Package></Export-Package>
> {code}
> # make sure "Stereotype-bundle" has "Stereotype" in it's maven dependencies
> # configure {{maven-ipojo-plugin}} in "Stereotype-bundle"
> {code:xml}
> <plugin>
> <groupId>org.apache.felix</groupId>
> <artifactId>maven-ipojo-plugin</artifactId>
> <version>1.12.0</version>
> <executions>
> <execution>
> <goals>
> <goal>ipojo-bundle</goal>
> </goals>
> </execution>
> </executions>
> </plugin>
> {code}
> # Try to build 'Stereotype-bundle'
> +Expected result:+ The 'Stereotype-bundle' will be build and @MyComponent annotation will be processed.
> +Actual result:+ The @MyComponent annotation is NOT processed. The following is displayed in console:
> {code}
> [WARNING] Class test.ipojo.bundle.ComponentByStereotype has not been marked as a component type (no @Component, @Handler, ...). It will be ignored by the iPOJO manipulator.
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)