You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2006/02/23 08:27:01 UTC

svn commit: r380063 - in /incubator/tuscany/java/sca/container.java/src: main/java/org/apache/tuscany/container/java/loader/ test/java/org/apache/tuscany/container/java/assembly/impl/ test/java/org/apache/tuscany/container/java/assembly/tests/ test/jav...

Author: jsdelfino
Date: Wed Feb 22 23:26:55 2006
New Revision: 380063

URL: http://svn.apache.org/viewcvs?rev=380063&view=rev
Log:
integrated SCDL loader

Added:
    incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/loader/
    incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/loader/JavaSCDLModelLoader.java   (with props)
Modified:
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/impl/JavaImplementationTestCase.java
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/JavaAssemblyLoaderTestCase.java
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilderTestCase.java
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockModuleFactory.java
    incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockSystemAssemblyFactory.java

Added: incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/loader/JavaSCDLModelLoader.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/loader/JavaSCDLModelLoader.java?rev=380063&view=auto
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/loader/JavaSCDLModelLoader.java (added)
+++ incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/loader/JavaSCDLModelLoader.java Wed Feb 22 23:26:55 2006
@@ -0,0 +1,48 @@
+package org.apache.tuscany.container.java.loader;
+
+import org.apache.tuscany.common.resource.ResourceLoader;
+import org.apache.tuscany.container.java.assembly.JavaAssemblyFactory;
+import org.apache.tuscany.container.java.assembly.JavaImplementation;
+import org.apache.tuscany.container.java.assembly.impl.JavaAssemblyFactoryImpl;
+import org.apache.tuscany.model.assembly.AssemblyModelContext;
+import org.apache.tuscany.model.assembly.AssemblyModelObject;
+import org.apache.tuscany.model.scdl.loader.SCDLModelLoader;
+
+/**
+ * Populates the assembly model from an SCDL model
+ */
+public class JavaSCDLModelLoader implements SCDLModelLoader {
+    
+    private AssemblyModelContext modelContext;
+    private ResourceLoader resourceLoader;
+    private JavaAssemblyFactory javaFactory;
+
+    /**
+     * Constructs a new JavaSCDLModelLoader.
+     */
+    public JavaSCDLModelLoader(AssemblyModelContext modelContext) {
+        this.modelContext=modelContext;
+        this.resourceLoader=this.modelContext.getResourceLoader();
+        this.javaFactory=new JavaAssemblyFactoryImpl();
+    }
+
+    /**
+     * @see org.apache.tuscany.model.scdl.loader.SCDLModelLoader#load(java.lang.Object)
+     */
+    public AssemblyModelObject load(Object object) {
+        if (object instanceof org.apache.tuscany.model.scdl.JavaImplementation) {
+            org.apache.tuscany.model.scdl.JavaImplementation scdlJavaImplementation=(org.apache.tuscany.model.scdl.JavaImplementation)object;
+            JavaImplementation implementation=javaFactory.createJavaImplementation();
+            Class implementationClass;
+            try {
+                implementationClass=resourceLoader.loadClass(scdlJavaImplementation.getClass_());
+            } catch (ClassNotFoundException e) {
+                throw new IllegalArgumentException(e);
+            }
+            implementation.setImplementationClass(implementationClass);
+            
+            return implementation;
+        } else
+            return null;
+    }
+}

Propchange: incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/loader/JavaSCDLModelLoader.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/container.java/src/main/java/org/apache/tuscany/container/java/loader/JavaSCDLModelLoader.java
------------------------------------------------------------------------------
    svn:keywords = Rev,Date

Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/impl/JavaImplementationTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/impl/JavaImplementationTestCase.java?rev=380063&r1=380062&r2=380063&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/impl/JavaImplementationTestCase.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/impl/JavaImplementationTestCase.java Wed Feb 22 23:26:55 2006
@@ -21,7 +21,7 @@
 import junit.framework.Assert;
 import junit.framework.TestCase;
 
-import org.apache.tuscany.common.resource.loader.ResourceLoaderFactory;
+import org.apache.tuscany.common.resource.impl.ResourceLoaderImpl;
 import org.apache.tuscany.container.java.assembly.mock.HelloWorldImpl;
 import org.apache.tuscany.container.java.assembly.mock.HelloWorldWithFieldProperties;
 import org.apache.tuscany.container.java.assembly.mock.NakedHelloWorld;
@@ -29,8 +29,9 @@
 import org.apache.tuscany.model.assembly.ComponentType;
 import org.apache.tuscany.model.assembly.Property;
 import org.apache.tuscany.model.assembly.Service;
+import org.apache.tuscany.model.assembly.impl.AssemblyFactoryImpl;
 import org.apache.tuscany.model.assembly.impl.AssemblyModelContextImpl;
-import org.apache.tuscany.model.assembly.loader.impl.AssemblyLoaderImpl;
+import org.apache.tuscany.model.scdl.loader.impl.SCDLAssemblyModelLoaderImpl;
 
 /**
  * @version $Rev$ $Date$
@@ -59,7 +60,7 @@
 
     public void testNakedHelloWorld() {
         impl.setImplementationClass(NakedHelloWorld.class);
-        impl.initialize(new AssemblyModelContextImpl(new AssemblyLoaderImpl(), ResourceLoaderFactory.getResourceLoader(Thread.currentThread().getContextClassLoader())));
+        impl.initialize(new AssemblyModelContextImpl(new AssemblyFactoryImpl(), new SCDLAssemblyModelLoaderImpl(), new ResourceLoaderImpl(Thread.currentThread().getContextClassLoader())));
         ComponentType type = impl.getComponentType();
         Assert.assertNotNull(type);
         Assert.assertTrue(type.getProperties().isEmpty());
@@ -71,7 +72,7 @@
 
     public void testNakedHelloWorldWithInterface() {
         impl.setImplementationClass(NakedHelloWorldWithInterface.class);
-        impl.initialize(new AssemblyModelContextImpl(new AssemblyLoaderImpl(), ResourceLoaderFactory.getResourceLoader(Thread.currentThread().getContextClassLoader())));
+        impl.initialize(new AssemblyModelContextImpl(new AssemblyFactoryImpl(), new SCDLAssemblyModelLoaderImpl(), new ResourceLoaderImpl(Thread.currentThread().getContextClassLoader())));
         ComponentType type = impl.getComponentType();
         Assert.assertNotNull(type);
         Assert.assertTrue(type.getProperties().isEmpty());
@@ -100,7 +101,7 @@
 
     public void testHelloWorldWithFieldProperties() {
         impl.setImplementationClass(HelloWorldWithFieldProperties.class);
-        impl.initialize(new AssemblyModelContextImpl(new AssemblyLoaderImpl(), ResourceLoaderFactory.getResourceLoader(Thread.currentThread().getContextClassLoader())));
+        impl.initialize(new AssemblyModelContextImpl(new AssemblyFactoryImpl(), new SCDLAssemblyModelLoaderImpl(), new ResourceLoaderImpl(Thread.currentThread().getContextClassLoader())));
         ComponentType type = impl.getComponentType();
         Assert.assertNotNull(type);
         List<Property> props = type.getProperties();

Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/JavaAssemblyLoaderTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/JavaAssemblyLoaderTestCase.java?rev=380063&r1=380062&r2=380063&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/JavaAssemblyLoaderTestCase.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/assembly/tests/JavaAssemblyLoaderTestCase.java Wed Feb 22 23:26:55 2006
@@ -16,19 +16,27 @@
  */
 package org.apache.tuscany.container.java.assembly.tests;
 
+import junit.framework.Assert;
 import junit.framework.TestCase;
 
-import org.apache.tuscany.common.resource.loader.ResourceLoaderFactory;
+import org.apache.tuscany.common.resource.ResourceLoader;
+import org.apache.tuscany.common.resource.impl.ResourceLoaderImpl;
+import org.apache.tuscany.container.java.assembly.tests.bigbank.account.services.accountdata.AccountDataService;
+import org.apache.tuscany.container.java.loader.JavaSCDLModelLoader;
+import org.apache.tuscany.model.assembly.AssemblyFactory;
 import org.apache.tuscany.model.assembly.AssemblyModelContext;
+import org.apache.tuscany.model.assembly.Component;
+import org.apache.tuscany.model.assembly.EntryPoint;
+import org.apache.tuscany.model.assembly.Module;
+import org.apache.tuscany.model.assembly.impl.AssemblyFactoryImpl;
 import org.apache.tuscany.model.assembly.impl.AssemblyModelContextImpl;
-import org.apache.tuscany.model.assembly.loader.impl.AssemblyLoaderImpl;
+import org.apache.tuscany.model.scdl.loader.SCDLAssemblyModelLoader;
+import org.apache.tuscany.model.scdl.loader.impl.SCDLAssemblyModelLoaderImpl;
 
 /**
  */
 public class JavaAssemblyLoaderTestCase extends TestCase {
 
-    private AssemblyModelContext modelContext;
-
     /**
      *
      */
@@ -37,35 +45,39 @@
     }
 
     public void testLoader() {
-        //FIXME this test fails with NPE
-//        AssemblyLoader loader = modelContext.getAssemblyLoader();
-//        Module module = loader.getModule(getClass().getResource("sca.module").toString());
-//        module.initialize(modelContext);
-//
-//        Assert.assertTrue(module.getName().equals("tuscany.container.java.assembly.tests.bigbank.account"));
-//
-//        Component component = module.getComponent("AccountServiceComponent");
-//        Assert.assertTrue(component != null);
-//
-//        EntryPoint entryPoint = module.getEntryPoint("AccountService");
-//        Assert.assertTrue(entryPoint != null);
-//
-//        Object value = component.getConfiguredProperty("currency").getValue();
-//        Assert.assertTrue(value.equals("EURO"));
-//
-//        ConfiguredService configuredService = component.getConfiguredReference("accountDataService").getTargetConfiguredServices().get(0);
-//        Assert.assertTrue(configuredService.getAggregatePart().getName().equals("AccountDataServiceComponent"));
-//
-//        Class interfaceClass = configuredService.getService().getServiceContract().getInterface();
-//        Assert.assertTrue(interfaceClass == AccountDataService.class);
 
+        ResourceLoader resourceLoader=new ResourceLoaderImpl(Thread.currentThread().getContextClassLoader());
+        SCDLAssemblyModelLoader assemblyLoader=new SCDLAssemblyModelLoaderImpl();
+        AssemblyFactory assemblyFactory=new AssemblyFactoryImpl();
+        AssemblyModelContext modelContext=new AssemblyModelContextImpl(assemblyFactory, assemblyLoader, resourceLoader);
+        
+        assemblyLoader.getSCDLModelLoaders().add(new JavaSCDLModelLoader(modelContext));
+
+        Module module = assemblyLoader.getModule(getClass().getResource("sca.module").toString());
+        module.initialize(modelContext);
+        Assert.assertTrue(module.getName().equals("tuscany.container.java.assembly.tests.bigbank.account"));
+
+        Component component=module.getComponent("AccountServiceComponent");
+        Assert.assertTrue(component!= null);
+
+        EntryPoint entryPoint=module.getEntryPoint("AccountService");
+        Assert.assertTrue(entryPoint!= null);
+        
+      Object value = component.getConfiguredProperty("currency").getValue();
+      Assert.assertTrue(value.equals("EURO"));
+
+      //ConfiguredService configuredService = component.getConfiguredReference("accountDataService").getTargetConfiguredServices().get(0);
+      //Assert.assertTrue(configuredService.getAggregatePart().getName().equals("AccountDataServiceComponent"));
+
+      Class interfaceClass = component.getConfiguredReference("accountDataService").getReference().getServiceContract().getInterface();
+      Assert.assertTrue(interfaceClass == AccountDataService.class);
+        
     }
 
     protected void setUp() throws Exception {
         super.setUp();
 
         Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
-        modelContext = new AssemblyModelContextImpl(new AssemblyLoaderImpl(), ResourceLoaderFactory.getResourceLoader(getClass().getClassLoader()));
     }
 
 }

Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilderTestCase.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilderTestCase.java?rev=380063&r1=380062&r2=380063&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilderTestCase.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/builder/JavaComponentContextBuilderTestCase.java Wed Feb 22 23:26:55 2006
@@ -48,7 +48,7 @@
 
     private AssemblyFactory factory = new AssemblyFactoryImpl();
     
-    private AssemblyModelContext assemblyContext = new AssemblyModelContextImpl(null,null); 
+    private AssemblyModelContext assemblyContext = new AssemblyModelContextImpl(null, null,null); 
     
     public JavaComponentContextBuilderTestCase() {
     }

Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockModuleFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockModuleFactory.java?rev=380063&r1=380062&r2=380063&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockModuleFactory.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockModuleFactory.java Wed Feb 22 23:26:55 2006
@@ -19,7 +19,7 @@
 
     private static AssemblyFactory factory = new AssemblyFactoryImpl();
     
-    private static AssemblyModelContext assemblyContext = new AssemblyModelContextImpl(null,null); 
+    private static AssemblyModelContext assemblyContext = new AssemblyModelContextImpl(null, null,null); 
 
     private MockModuleFactory() {
     }

Modified: incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockSystemAssemblyFactory.java
URL: http://svn.apache.org/viewcvs/incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockSystemAssemblyFactory.java?rev=380063&r1=380062&r2=380063&view=diff
==============================================================================
--- incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockSystemAssemblyFactory.java (original)
+++ incubator/tuscany/java/sca/container.java/src/test/java/org/apache/tuscany/container/java/mock/MockSystemAssemblyFactory.java Wed Feb 22 23:26:55 2006
@@ -54,7 +54,7 @@
 
     private static SystemAssemblyFactory systemFactory = new SystemAssemblyFactoryImpl();
 
-    private static AssemblyModelContext assemblyContext = new AssemblyModelContextImpl(null, null);
+    private static AssemblyModelContext assemblyContext = new AssemblyModelContextImpl(null, null, null);
 
     private MockSystemAssemblyFactory() {
     }