You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by va...@apache.org on 2008/08/12 16:30:42 UTC
svn commit: r685166 - in /tuscany/java/sca/modules/contribution-jee: ./
src/main/java/org/apache/tuscany/sca/contribution/jee/
src/test/java/org/apache/tuscany/sca/contribution/jee/
Author: vamsic007
Date: Tue Aug 12 07:30:41 2008
New Revision: 685166
URL: http://svn.apache.org/viewvc?rev=685166&view=rev
Log:
JavaEE application as a component
Added:
tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/JavaEEApplicationProcessor.java (with props)
tuscany/java/sca/modules/contribution-jee/src/test/java/org/apache/tuscany/sca/contribution/jee/JavaEEApplicationProcessorTestCase.java (with props)
Modified:
tuscany/java/sca/modules/contribution-jee/pom.xml
tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/EJBModuleProcessor.java
tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/WebModuleProcessor.java
Modified: tuscany/java/sca/modules/contribution-jee/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution-jee/pom.xml?rev=685166&r1=685165&r2=685166&view=diff
==============================================================================
--- tuscany/java/sca/modules/contribution-jee/pom.xml (original)
+++ tuscany/java/sca/modules/contribution-jee/pom.xml Tue Aug 12 07:30:41 2008
@@ -65,6 +65,13 @@
<version>1.4-SNAPSHOT</version>
<!--scope>runtime</scope-->
</dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-implementation-jee</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ </dependency>
+
<dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>openejb-core</artifactId>
Modified: tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/EJBModuleProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/EJBModuleProcessor.java?rev=685166&r1=685165&r2=685166&view=diff
==============================================================================
--- tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/EJBModuleProcessor.java (original)
+++ tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/EJBModuleProcessor.java Tue Aug 12 07:30:41 2008
@@ -171,6 +171,7 @@
for (Service service : componentType.getServices()) {
ComponentService componentService = helper.createComponentService();
componentService.setService(service);
+ componentService.setInterfaceContract(service.getInterfaceContract());
component.getServices().add(componentService);
}
@@ -178,6 +179,7 @@
for (Reference reference : componentType.getReferences()) {
ComponentReference componentReference = helper.createComponentReference();
componentReference.setReference(reference);
+ componentReference.setInterfaceContract(reference.getInterfaceContract());
component.getReferences().add(componentReference);
}
Added: tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/JavaEEApplicationProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/JavaEEApplicationProcessor.java?rev=685166&view=auto
==============================================================================
--- tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/JavaEEApplicationProcessor.java (added)
+++ tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/JavaEEApplicationProcessor.java Tue Aug 12 07:30:41 2008
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sca.contribution.jee;
+
+import java.util.Map;
+
+import org.apache.openejb.config.AppModule;
+import org.apache.openejb.config.EjbModule;
+import org.apache.openejb.jee.EnterpriseBean;
+import org.apache.tuscany.sca.assembly.ComponentType;
+import org.apache.tuscany.sca.assembly.Reference;
+import org.apache.tuscany.sca.assembly.Service;
+import org.apache.tuscany.sca.contribution.service.ContributionException;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class JavaEEApplicationProcessor {
+ private AppModule appModule;
+ private ComponentType componentType;
+ private AssemblyHelper helper;
+
+ public JavaEEApplicationProcessor(AppModule appModule, AssemblyHelper helper) {
+ super();
+ this.appModule = appModule;
+ this.helper = helper;
+ }
+
+ public JavaEEApplicationProcessor(AppModule module) {
+ appModule = module;
+ helper = new AssemblyHelper();
+ }
+
+ public ComponentType getJavaEEAppComponentType() throws ContributionException {
+ if (componentType != null) {
+ return componentType;
+ }
+ componentType = helper.createComponentType();
+
+ // Process all EJB modules
+ for(EjbModule ejbModule : appModule.getEjbModules()) {
+ EJBModuleProcessor emp = new EJBModuleProcessor(ejbModule, helper);
+ Map<String, ComponentType> ejbComponentTypes = emp.getEjbComponentTypes();
+ for(Map.Entry<String, ComponentType> entry : ejbComponentTypes.entrySet()) {
+ String beanName = entry.getKey();
+ ComponentType ct = entry.getValue();
+ EnterpriseBean bean = ejbModule.getEjbJar().getEnterpriseBeansByEjbName().get(beanName);
+ String mappedName = bean.getMappedName() != null ? bean.getMappedName() : beanName;
+
+ String mappedName2 = mappedName.replace("/", "_");
+ // Add all services from the bean
+ for(Service service : ct.getServices()) {
+ Service service2 = helper.createComponentService();
+ String serviceName = mappedName2 + "_"+service.getName();
+ service2.setName(serviceName);
+ service2.setInterfaceContract(service.getInterfaceContract());
+ componentType.getServices().add(service2);
+ }
+
+ String beanName2 = beanName.replace("/", "_");
+ // Add all references
+ for(Reference reference : ct.getReferences()) {
+ Reference reference2 = helper.createComponentReference();
+ String referenceName = beanName2+"_"+reference.getName();
+ reference2.setName(referenceName);
+ reference2.setInterfaceContract(reference.getInterfaceContract());
+ componentType.getReferences().add(reference2);
+ }
+ }
+ emp.getEjbAppComponentType();
+ }
+
+ // Process web modules (?)
+ // FIXME: SCA JEE Spec 1.0 - Sec 7.1.3 says nothing about web modules
+
+ return componentType;
+ }
+}
Propchange: tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/JavaEEApplicationProcessor.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/JavaEEApplicationProcessor.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/JavaEEApplicationProcessor.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/WebModuleProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/WebModuleProcessor.java?rev=685166&r1=685165&r2=685166&view=diff
==============================================================================
--- tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/WebModuleProcessor.java (original)
+++ tuscany/java/sca/modules/contribution-jee/src/main/java/org/apache/tuscany/sca/contribution/jee/WebModuleProcessor.java Tue Aug 12 07:30:41 2008
@@ -130,6 +130,7 @@
for (Reference reference : componentType.getReferences()) {
ComponentReference componentReference = helper.createComponentReference();
componentReference.setReference(reference);
+ componentReference.setInterfaceContract(reference.getInterfaceContract());
component.getReferences().add(componentReference);
}
Added: tuscany/java/sca/modules/contribution-jee/src/test/java/org/apache/tuscany/sca/contribution/jee/JavaEEApplicationProcessorTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/contribution-jee/src/test/java/org/apache/tuscany/sca/contribution/jee/JavaEEApplicationProcessorTestCase.java?rev=685166&view=auto
==============================================================================
--- tuscany/java/sca/modules/contribution-jee/src/test/java/org/apache/tuscany/sca/contribution/jee/JavaEEApplicationProcessorTestCase.java (added)
+++ tuscany/java/sca/modules/contribution-jee/src/test/java/org/apache/tuscany/sca/contribution/jee/JavaEEApplicationProcessorTestCase.java Tue Aug 12 07:30:41 2008
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sca.contribution.jee;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.apache.openejb.config.AppModule;
+import org.apache.tuscany.sca.assembly.ComponentType;
+import org.apache.tuscany.sca.assembly.Reference;
+import org.apache.tuscany.sca.assembly.Service;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class JavaEEApplicationProcessorTestCase {
+
+ AppModule appModule;
+
+ @Before
+ public void setUp() throws Exception {
+ String jarFilePath = "target/test-classes/ejb-injection-sample.ear";
+ JavaEEModuleHelper jmh = new JavaEEModuleHelper();
+ appModule = jmh.getMetadataCompleteModules(jarFilePath);
+ }
+
+ @Test
+ public void testJavaEEAppContribution() throws Exception {
+ JavaEEApplicationProcessor jap = new JavaEEApplicationProcessor(appModule);
+
+ ComponentType ct = jap.getJavaEEAppComponentType();
+
+ // Check the services
+ Assert.assertEquals(6, ct.getServices().size());
+
+ Set<String> expectedServiceNames = new HashSet<String>();
+ expectedServiceNames.add("BankBean_Bank");
+ expectedServiceNames.add("ConverterBean_Converter");
+ expectedServiceNames.add("ConverterBean_ConverterLocal");
+ expectedServiceNames.add("Converter2Bean_ConverterLocal");
+ expectedServiceNames.add("InvoiceBean_Invoice");
+ expectedServiceNames.add("PurchaseOrderBean_PurchaseOrder");
+
+ Set<String> serviceNames = new HashSet<String>();
+ for(Service service : ct.getServices()) {
+ serviceNames.add(service.getName());
+ }
+
+ Assert.assertEquals(expectedServiceNames, serviceNames);
+
+ // Check the references
+ Assert.assertEquals(1, ct.getReferences().size());
+
+ Set<String> expectedReferenceNames = new HashSet<String>();
+ expectedReferenceNames.add("BankBean_simple.BankBean_converter");
+
+ Set<String> referenceNames = new HashSet<String>();
+ for (Reference r : ct.getReferences()) {
+ referenceNames.add(r.getName());
+ }
+
+ Assert.assertEquals(expectedReferenceNames, referenceNames);
+ }
+}
Propchange: tuscany/java/sca/modules/contribution-jee/src/test/java/org/apache/tuscany/sca/contribution/jee/JavaEEApplicationProcessorTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: tuscany/java/sca/modules/contribution-jee/src/test/java/org/apache/tuscany/sca/contribution/jee/JavaEEApplicationProcessorTestCase.java
------------------------------------------------------------------------------
svn:keywords = Date Revision
Propchange: tuscany/java/sca/modules/contribution-jee/src/test/java/org/apache/tuscany/sca/contribution/jee/JavaEEApplicationProcessorTestCase.java
------------------------------------------------------------------------------
svn:mime-type = text/plain