[ https://issues.apache.org/jira/browse/FELIX-2486?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Felix Meschberger resolved FELIX-2486. -------------------------------------- Resolution: Fixed Fixed by implementing ClassLoaderJavaClassDescriptor.isA(String) using Class.isAssignableFrom(Class) in Rev. 979703. > ClassLoaderJavaClassDescription.isA does not work under certain circumstances > ----------------------------------------------------------------------------- > > Key: FELIX-2486 > URL: https://issues.apache.org/jira/browse/FELIX-2486 > Project: Felix > Issue Type: Bug > Components: Maven SCR Plugin > Affects Versions: maven-scr-plugin-1.4.4 > Reporter: Felix Meschberger > Assignee: Felix Meschberger > Fix For: maven-scr-plugin-1.4.6 > > > Consider two bundles B1 and B2. B1 provides an abstract component AC1. This > abstract component declares itself to implement Service S by means of > @scr.service interface="S" > No AC1 does not itself implement S but it extends a baseclass which in turn > implements S. > This bundle B1 builds perfectly and the SCR plugin generates the descriptor > for the abstract component. > Now, B2 provides a concrete component CC2 extending AC1. B2 fails to build > while trying to generate the SCR descriptor. > The reason for this is, that while generating descriptor for CC2, the exsting > service descriptor for AC1 is validated, particularly the service element. > This element is checked in the context of the abstract AC1 component class > internally represented by a ClassLoaderJavaClassDescriptor instance. To > verify the interface, the isA(String) method is called. > This is where the problem occurrs: The ClassLoaderJavaClassDescriptor.isA > method only considers the interfaces directly implemented by the class but > not any interfaces implemented by the parent class. Moreover, this > implementation does not allow for classes (as opposed to interfaces) to be > used as service interface name. > The fix is probably to use Class.isAssignableFrom to implement the isA method. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.