summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/modules/implementation-ejb
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--branches/sca-java-1.x/modules/implementation-ejb/pom.xml6
-rw-r--r--branches/sca-java-1.x/modules/implementation-ejb/src/main/java/org/apache/tuscany/sca/implementation/ejb/xml/EJBImplementationProcessor.java38
2 files changed, 39 insertions, 5 deletions
diff --git a/branches/sca-java-1.x/modules/implementation-ejb/pom.xml b/branches/sca-java-1.x/modules/implementation-ejb/pom.xml
index 7bf2d0f561..972a9c3e09 100644
--- a/branches/sca-java-1.x/modules/implementation-ejb/pom.xml
+++ b/branches/sca-java-1.x/modules/implementation-ejb/pom.xml
@@ -51,6 +51,12 @@
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-implementation-java</artifactId>
+ <version>1.5-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-host-embedded</artifactId>
<version>1.5-SNAPSHOT</version>
<scope>test</scope>
diff --git a/branches/sca-java-1.x/modules/implementation-ejb/src/main/java/org/apache/tuscany/sca/implementation/ejb/xml/EJBImplementationProcessor.java b/branches/sca-java-1.x/modules/implementation-ejb/src/main/java/org/apache/tuscany/sca/implementation/ejb/xml/EJBImplementationProcessor.java
index cfdf0790d2..286ad01b64 100644
--- a/branches/sca-java-1.x/modules/implementation-ejb/src/main/java/org/apache/tuscany/sca/implementation/ejb/xml/EJBImplementationProcessor.java
+++ b/branches/sca-java-1.x/modules/implementation-ejb/src/main/java/org/apache/tuscany/sca/implementation/ejb/xml/EJBImplementationProcessor.java
@@ -44,6 +44,14 @@ import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
import org.apache.tuscany.sca.implementation.ejb.EJBImplementation;
import org.apache.tuscany.sca.implementation.ejb.EJBImplementationFactory;
+import org.apache.tuscany.sca.implementation.java.DefaultJavaImplementationFactory;
+import org.apache.tuscany.sca.implementation.java.IntrospectionException;
+import org.apache.tuscany.sca.implementation.java.JavaImplementation;
+import org.apache.tuscany.sca.implementation.java.JavaImplementationFactory;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.PropertyProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.ReferenceProcessor;
+import org.apache.tuscany.sca.implementation.java.introspect.impl.ServiceProcessor;
+import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
import org.apache.tuscany.sca.monitor.Monitor;
import org.apache.tuscany.sca.monitor.Problem;
import org.apache.tuscany.sca.monitor.Problem.Severity;
@@ -62,6 +70,8 @@ public class EJBImplementationProcessor extends BaseStAXArtifactProcessor implem
private Monitor monitor;
private JavaEEExtension jeeExtension;
private JavaEEOptionalExtension jeeOptionalExtension;
+ private JavaImplementationFactory javaImplementationFactory;
+ private JavaInterfaceFactory javaInterfaceFactory;
public EJBImplementationProcessor(ModelFactoryExtensionPoint modelFactories, Monitor monitor) {
this.assemblyFactory = modelFactories.getFactory(AssemblyFactory.class);
@@ -69,6 +79,12 @@ public class EJBImplementationProcessor extends BaseStAXArtifactProcessor implem
this.jeeExtension = modelFactories.getFactory(JavaEEExtension.class);
this.jeeOptionalExtension = modelFactories.getFactory(JavaEEOptionalExtension.class);
this.monitor = monitor;
+
+ this.javaImplementationFactory = new DefaultJavaImplementationFactory();
+ this.javaInterfaceFactory = modelFactories.getFactory(JavaInterfaceFactory.class);
+ javaImplementationFactory.addClassVisitor(new ReferenceProcessor(assemblyFactory, javaInterfaceFactory));
+ javaImplementationFactory.addClassVisitor(new PropertyProcessor(assemblyFactory));
+ javaImplementationFactory.addClassVisitor(new ServiceProcessor(assemblyFactory, javaInterfaceFactory));
}
/**
@@ -133,13 +149,15 @@ public class EJBImplementationProcessor extends BaseStAXArtifactProcessor implem
// Resolve the component type
String uri = implementation.getURI();
String ejbLink = implementation.getEJBLink();
- if (uri != null) {
+ if (ejbLink != null) {
+ String module = ejbLink.indexOf('#') != -1 ? ejbLink.substring(0, ejbLink.indexOf('#')) : "";
+ String beanName = ejbLink.indexOf('#') != -1 ? ejbLink.substring(ejbLink.indexOf('#')+1) : ejbLink;
EjbModuleInfo ejbModuleInfo = new EjbModuleInfoImpl();
- ejbModuleInfo.setUri(URI.create(uri));
+ ejbModuleInfo.setUri(URI.create(module));
ejbModuleInfo = resolver.resolveModel(EjbModuleInfo.class, ejbModuleInfo);
if(jeeExtension != null) {
- ComponentType ct = jeeExtension.createImplementationEjbComponentType(ejbModuleInfo, ejbLink);
+ ComponentType ct = jeeExtension.createImplementationEjbComponentType(ejbModuleInfo, beanName);
// TODO - SL - TUSCANY-2944 - these new JEE processors are causing problems with existing contributions
// ct is null if there is no EJBInfo
if (ct != null){
@@ -148,7 +166,7 @@ public class EJBImplementationProcessor extends BaseStAXArtifactProcessor implem
}
if(jeeOptionalExtension != null) {
- ComponentType ct = jeeOptionalExtension.createImplementationEjbComponentType(ejbModuleInfo, ejbLink);
+ ComponentType ct = jeeOptionalExtension.createImplementationEjbComponentType(ejbModuleInfo, beanName);
// TODO - SL - TUSCANY-2944 - these new JEE processors are causing problems with existing contributions
// ct is null if there is no EJBInfo
if (ct != null){
@@ -157,7 +175,17 @@ public class EJBImplementationProcessor extends BaseStAXArtifactProcessor implem
}
}
- // TODO: Introspection of bean class
+ // Introspection of bean class
+ Class<?> beanClass = ejbModuleInfo.getEjbInfo(uri).beanClass;
+ try {
+ JavaImplementation ji = javaImplementationFactory.createJavaImplementation(beanClass);
+ implementation.getReferences().addAll(ji.getReferences());
+ implementation.getProperties().addAll(ji.getProperties());
+ implementation.getServices().addAll(ji.getServices());
+ } catch (IntrospectionException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
// Process componentType side file
ComponentType componentType = assemblyFactory.createComponentType();