Tuscany does not support using classes in the @Service annotation
-----------------------------------------------------------------
Key: TUSCANY-1629
URL: https://issues.apache.org/jira/browse/TUSCANY-1629
Project: Tuscany
Issue Type: Bug
Components: Java SCA Java Implementation Extension
Affects Versions: Java-SCA-0.91
Environment: Linux
Was using Tuscany SVN revision 570353
Reporter: Mark Combellack
Fix For: Java-SCA-0.91
The current implementation of Tuscany does not support using a class in the
@Service annotation.
For example, if I have:
@Service(MyService.class)
public class MyService {
public String op1() {
return "op1 invoked";
}
}
The above example is valid from my understanding of the Java Common Annotations
and APIs specification because it says:
1628 The @Service annotation has the following attributes:
1629 • interfaces - The value is an array of interface or class objects that
should be exposed as services
1630 by this component.
1631 • value - A shortcut for the case when the class provides only a single
service interface.
The key phrase is in line 1629 "or class objects"
Tuscany throws the following exception:
org.osoa.sca.ServiceRuntimeException: org.osoa.sca.ServiceRuntimeException:
org.apache.tuscany.sca.contribution.service.ContributionResolveException:
org.apache.tuscany.sca.implementation.java.introspect.impl.InvalidServiceType:
Service must be an interface
at
org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADomain.java:264)
at
org.apache.tuscany.sca.host.embedded.SCADomain.newInstance(SCADomain.java:69)
<snipped setup code>
Caused by: org.osoa.sca.ServiceRuntimeException:
org.apache.tuscany.sca.contribution.service.ContributionResolveException:
org.apache.tuscany.sca.implementation.java.introspect.impl.InvalidServiceType:
Service must be an interface
at
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.<init>(DefaultSCADomain.java:119)
at
org.apache.tuscany.sca.host.embedded.SCADomain.createNewInstance(SCADomain.java:230)
... 16 more
Caused by:
org.apache.tuscany.sca.contribution.service.ContributionResolveException:
org.apache.tuscany.sca.implementation.java.introspect.impl.InvalidServiceType:
Service must be an interface
at
org.apache.tuscany.sca.implementation.java.xml.JavaImplementationProcessor.resolve(JavaImplementationProcessor.java:118)
at
org.apache.tuscany.sca.implementation.java.xml.JavaImplementationProcessor.resolve(JavaImplementationProcessor.java:49)
at
org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint$LazyStAXArtifactProcessor.resolve(DefaultStAXArtifactProcessorExtensionPoint.java:211)
at
org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor.resolve(ExtensibleStAXArtifactProcessor.java:102)
at
org.apache.tuscany.sca.assembly.xml.BaseArtifactProcessor.resolveImplementation(BaseArtifactProcessor.java:411)
at
org.apache.tuscany.sca.assembly.xml.CompositeProcessor.resolve(CompositeProcessor.java:673)
at
org.apache.tuscany.sca.assembly.xml.CompositeProcessor.resolve(CompositeProcessor.java:68)
at
org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor.resolve(ExtensibleStAXArtifactProcessor.java:102)
at
org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor.resolve(CompositeDocumentProcessor.java:86)
at
org.apache.tuscany.sca.assembly.xml.CompositeDocumentProcessor.resolve(CompositeDocumentProcessor.java:43)
at
org.apache.tuscany.sca.contribution.processor.ExtensibleURLArtifactProcessor.resolve(ExtensibleURLArtifactProcessor.java:83)
at
org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.processResolvePhase(ContributionServiceImpl.java:392)
at
org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.addContribution(ContributionServiceImpl.java:319)
at
org.apache.tuscany.sca.contribution.service.impl.ContributionServiceImpl.contribute(ContributionServiceImpl.java:160)
at
org.apache.tuscany.sca.host.embedded.impl.DefaultSCADomain.<init>(DefaultSCADomain.java:117)
... 17 more
Caused by:
org.apache.tuscany.sca.implementation.java.introspect.impl.InvalidServiceType:
Service must be an interface
at
org.apache.tuscany.sca.implementation.java.introspect.impl.ServiceProcessor.visitClass(ServiceProcessor.java:88)
at
org.apache.tuscany.sca.implementation.java.impl.JavaClassIntrospectorImpl.introspectClass(JavaClassIntrospectorImpl.java:72)
at
org.apache.tuscany.sca.implementation.java.impl.JavaImplementationFactoryImpl.createJavaImplementation(JavaImplementationFactoryImpl.java:53)
at
org.apache.tuscany.sca.implementation.java.xml.JavaImplementationProcessor.resolve(JavaImplementationProcessor.java:116)
... 31 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]