You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by me...@apache.org on 2007/02/16 03:11:06 UTC

svn commit: r508282 - in /incubator/tuscany/java/sca: core-samples/standalone/calculator/ core-samples/standalone/calculator/src/main/java/calculator/ core-samples/standalone/calculator/src/main/resources/META-INF/sca/ kernel/core/src/main/java/org/apa...

Author: meerajk
Date: Thu Feb 15 18:11:05 2007
New Revision: 508282

URL: http://svn.apache.org/viewvc?view=rev&rev=508282
Log:
Getting the launcher to work with calculator client

Modified:
    incubator/tuscany/java/sca/core-samples/standalone/calculator/pom.xml
    incubator/tuscany/java/sca/core-samples/standalone/calculator/src/main/java/calculator/CalculatorClient.java
    incubator/tuscany/java/sca/core-samples/standalone/calculator/src/main/resources/META-INF/sca/default.scdl
    incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java
    incubator/tuscany/java/sca/runtime/standalone/assembly/src/main/assembly/profiles/launcher/system.scdl
    incubator/tuscany/java/sca/runtime/standalone/launcher/src/main/java/org/apache/tuscany/launcher/Main.java
    incubator/tuscany/java/sca/runtime/standalone/standalone-api/src/main/java/org/apache/tuscany/runtime/standalone/StandaloneRuntime.java
    incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java
    incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/implementation/launched/LaunchedLoader.java

Modified: incubator/tuscany/java/sca/core-samples/standalone/calculator/pom.xml
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core-samples/standalone/calculator/pom.xml?view=diff&rev=508282&r1=508281&r2=508282
==============================================================================
--- incubator/tuscany/java/sca/core-samples/standalone/calculator/pom.xml (original)
+++ incubator/tuscany/java/sca/core-samples/standalone/calculator/pom.xml Thu Feb 15 18:11:05 2007
@@ -45,7 +45,8 @@
         <defaultGoal>install</defaultGoal>
         <finalName>${artifactId}</finalName>
 
-        <plugins>
+		<!-- TODO Uncomment after launcher loader is added to the itest SCDL -->
+        <!--plugins>
             <plugin>
                 <groupId>org.apache.tuscany.sca</groupId>
                 <artifactId>tuscany-itest-plugin</artifactId>
@@ -57,6 +58,6 @@
                     </execution>
                 </executions>
             </plugin>
-        </plugins>
+        </plugins-->
     </build>
 </project>

Modified: incubator/tuscany/java/sca/core-samples/standalone/calculator/src/main/java/calculator/CalculatorClient.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core-samples/standalone/calculator/src/main/java/calculator/CalculatorClient.java?view=diff&rev=508282&r1=508281&r2=508282
==============================================================================
--- incubator/tuscany/java/sca/core-samples/standalone/calculator/src/main/java/calculator/CalculatorClient.java (original)
+++ incubator/tuscany/java/sca/core-samples/standalone/calculator/src/main/java/calculator/CalculatorClient.java Thu Feb 15 18:11:05 2007
@@ -23,19 +23,30 @@
  * locate the Calculator service and invoke it.
  */
 public class CalculatorClient {
-/*
-    public static void main(String[] args) throws Exception {
-
-        CompositeContext context = CurrentCompositeContext.getContext();
-        CalculatorService calculatorService =
-                context.locateService(CalculatorService.class, "CalculatorServiceComponent");
-
-        // Calculate
-        System.out.println("3 + 2=" + calculatorService.add(3, 2));
-        System.out.println("3 - 2=" + calculatorService.subtract(3, 2));
-        System.out.println("3 * 2=" + calculatorService.multiply(3, 2));
-        System.out.println("3 / 2=" + calculatorService.divide(3, 2));
+    
+    private CalculatorService calculatorService;
+    
+    public void setCalculatorService(CalculatorService calculatorService) {
+        this.calculatorService = calculatorService;
+    }
+    
+    public Object main(Object ... args) throws Exception {
+        
+        if(args.length != 3) {
+            throw new IllegalArgumentException("Usage <add|substract|multiply|divide> <operand1> <operand2>");
+        }
+        
+        if("add".equals(args[0])) {
+            return calculatorService.add(Double.parseDouble((String)args[1]), Double.parseDouble((String)args[2]));
+        } else if("substract".equals(args[0])) {
+            return calculatorService.subtract(Double.parseDouble((String)args[1]), Double.parseDouble((String)args[2]));
+        } else if("multiply".equals(args[0])) {
+            return calculatorService.multiply(Double.parseDouble((String)args[1]), Double.parseDouble((String)args[2]));
+        } else if("divide".equals(args[0])) {
+            return calculatorService.divide(Double.parseDouble((String)args[1]), Double.parseDouble((String)args[2]));
+        }
 
+        throw new IllegalArgumentException("Usage <add|substract|multiply|divide> <operand1> <operand2>");
     }
-*/
+    
 }

Modified: incubator/tuscany/java/sca/core-samples/standalone/calculator/src/main/resources/META-INF/sca/default.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core-samples/standalone/calculator/src/main/resources/META-INF/sca/default.scdl?view=diff&rev=508282&r1=508281&r2=508282
==============================================================================
--- incubator/tuscany/java/sca/core-samples/standalone/calculator/src/main/resources/META-INF/sca/default.scdl (original)
+++ incubator/tuscany/java/sca/core-samples/standalone/calculator/src/main/resources/META-INF/sca/default.scdl Thu Feb 15 18:11:05 2007
@@ -18,15 +18,14 @@
  * under the License.    
 -->
 <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+           xmlns:launched="http://tuscany.apache.org/xmlns/sca/1.0"
            name="CalculatorComposite">
 
-<!--
-    <service name="CalculatorService">
-        <interface.java interface="calculator.CalculatorService"/>
-        <reference>CalculatorServiceComponent</reference>
-    </service>
--->
-
+    <component name="CalculatorClient">
+		<launched:launched class="calculator.CalculatorClient"/>
+        <reference name="calculatorService">CalculatorServiceComponent</reference>
+    </component>
+    
     <component name="CalculatorServiceComponent">
 		<implementation.java class="calculator.CalculatorServiceImpl"/>
         <reference name="addService">AddServiceComponent</reference>

Modified: incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java?view=diff&rev=508282&r1=508281&r2=508282
==============================================================================
--- incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java (original)
+++ incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/LoaderRegistryImpl.java Thu Feb 15 18:11:05 2007
@@ -79,6 +79,7 @@
         monitor.elementLoad(name);
         StAXElementLoader<? extends ModelObject> loader = loaders.get(name);
         if (loader == null) {
+            System.err.println(name);
             throw new UnrecognizedElementException(name);
         }
         return loader.load(parent, object, reader, deploymentContext);

Modified: incubator/tuscany/java/sca/runtime/standalone/assembly/src/main/assembly/profiles/launcher/system.scdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/standalone/assembly/src/main/assembly/profiles/launcher/system.scdl?view=diff&rev=508282&r1=508281&r2=508282
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/assembly/src/main/assembly/profiles/launcher/system.scdl (original)
+++ incubator/tuscany/java/sca/runtime/standalone/assembly/src/main/assembly/profiles/launcher/system.scdl Thu Feb 15 18:11:05 2007
@@ -161,5 +161,9 @@
         <system:implementation.system class="org.apache.tuscany.core.services.artifact.LocalMavenRepository"/>
         <property name="repository">.m2/repository</property>
     </component>
+    
+    <component name="launchedLoader">
+        <system:implementation.system class="org.apache.tuscany.runtime.standalone.host.implementation.launched.LaunchedLoader"/>
+    </component>
 
 </composite>

Modified: incubator/tuscany/java/sca/runtime/standalone/launcher/src/main/java/org/apache/tuscany/launcher/Main.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/standalone/launcher/src/main/java/org/apache/tuscany/launcher/Main.java?view=diff&rev=508282&r1=508281&r2=508282
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/launcher/src/main/java/org/apache/tuscany/launcher/Main.java (original)
+++ incubator/tuscany/java/sca/runtime/standalone/launcher/src/main/java/org/apache/tuscany/launcher/Main.java Thu Feb 15 18:11:05 2007
@@ -59,8 +59,7 @@
         StandaloneRuntime runtime = (StandaloneRuntime)DirectoryHelper.createRuntime(runtimeInfo);
         runtime.initialize();
 
-        ComponentContext componentContext = deployApplication(args, runtime);
-        // TODO lookup implementation.lauched and do the rest
+        deployAndRunApplication(args, runtime);
         
 
     }
@@ -68,7 +67,7 @@
     /**
      * @deprecated Hack for deployment.
      */
-    private static ComponentContext deployApplication(String[] args, StandaloneRuntime runtime)
+    private static void deployAndRunApplication(String[] args, StandaloneRuntime runtime)
         throws Exception {
 
         URI compositeUri = new URI("/test/composite");
@@ -76,7 +75,7 @@
         ClassLoader applicationClassLoader =
             new URLClassLoader(new URL[] {applicationJar}, runtime.getHostClassLoader());
         URL applicationScdl = applicationClassLoader.getResource("META-INF/sca/default.scdl");
-        return runtime.deploy(compositeUri, applicationScdl, applicationClassLoader);
+        runtime.deployAndRun(compositeUri, applicationScdl, applicationClassLoader);
 
     }
 

Modified: incubator/tuscany/java/sca/runtime/standalone/standalone-api/src/main/java/org/apache/tuscany/runtime/standalone/StandaloneRuntime.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/standalone/standalone-api/src/main/java/org/apache/tuscany/runtime/standalone/StandaloneRuntime.java?view=diff&rev=508282&r1=508281&r2=508282
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/standalone-api/src/main/java/org/apache/tuscany/runtime/standalone/StandaloneRuntime.java (original)
+++ incubator/tuscany/java/sca/runtime/standalone/standalone-api/src/main/java/org/apache/tuscany/runtime/standalone/StandaloneRuntime.java Thu Feb 15 18:11:05 2007
@@ -22,7 +22,6 @@
 import java.net.URL;
 
 import org.apache.tuscany.host.runtime.TuscanyRuntime;
-import org.osoa.sca.ComponentContext;
 
 /**
  * Extends the tuscany runtime to add the behavious to deploy an
@@ -34,14 +33,13 @@
 public interface StandaloneRuntime extends TuscanyRuntime {
     
     /**
-     * Deploys the specified application SCDL.
+     * Deploys the specified application SCDL and runs the lauched component within the deployed composite.
      * 
      * @param compositeUri URI by which the composite is deployed.
      * @param applicationScdl Application SCDL that implements the composite.
      * @param applicationClassLoader Classloader used to deploy the composite.
-     * @return The component context for the deployed composite.
      * @deprecated This is a hack for deployment and should be removed.
      */
-    ComponentContext deploy(URI compositeUri, URL applicationScdl, ClassLoader applicationClassLoader) throws Exception;
+    void deployAndRun(URI compositeUri, URL applicationScdl, ClassLoader applicationClassLoader) throws Exception;
 
 }

Modified: incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java?view=diff&rev=508282&r1=508281&r2=508282
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java (original)
+++ incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/StandaloneRuntimeImpl.java Thu Feb 15 18:11:05 2007
@@ -20,13 +20,17 @@
 
 import java.net.URI;
 import java.net.URL;
+import java.util.Map;
 
 import org.apache.tuscany.spi.component.AtomicComponent;
+import org.apache.tuscany.spi.component.Component;
 import org.apache.tuscany.spi.component.RegistrationException;
 import org.apache.tuscany.spi.component.TargetResolutionException;
 import org.apache.tuscany.spi.deployer.Deployer;
 import org.apache.tuscany.spi.model.ComponentDefinition;
+import org.apache.tuscany.spi.model.CompositeComponentType;
 import org.apache.tuscany.spi.model.CompositeImplementation;
+import org.apache.tuscany.spi.model.Implementation;
 
 import org.apache.tuscany.core.runtime.AbstractRuntime;
 import org.apache.tuscany.host.runtime.InitializationException;
@@ -51,15 +55,14 @@
     }
     
     /**
-     * Deploys the specified application SCDL.
+     * Deploys the specified application SCDL and runs the lauched component within the deployed composite.
      * 
      * @param compositeUri URI by which the composite is deployed.
      * @param applicationScdl Application SCDL that implements the composite.
      * @param applicationClassLoader Classloader used to deploy the composite.
-     * @return The component context for the deployed composite.
      * @deprecated This is a hack for deployment and should be removed.
      */
-    public ComponentContext deploy(URI compositeUri, URL applicationScdl, ClassLoader applicationClassLoader) throws Exception {
+    public void deployAndRun(URI compositeUri, URL applicationScdl, ClassLoader applicationClassLoader) throws Exception {
         
         CompositeImplementation impl = new CompositeImplementation();
         impl.setScdlLocation(applicationScdl);
@@ -67,8 +70,16 @@
 
         ComponentDefinition<CompositeImplementation> definition =
             new ComponentDefinition<CompositeImplementation>(compositeUri, impl);
+        Component component =  getDeployer().deploy(null, definition);
         
-        return getDeployer().deploy(null, definition).getComponentContext();
+        CompositeComponentType<?,?,?> componentType = impl.getComponentType();
+        Map<String, ComponentDefinition<? extends Implementation<?>>> components = componentType.getComponents();
+        for (Map.Entry<String, ComponentDefinition<? extends Implementation<?>>> entry : components.entrySet()) {
+            String name = entry.getKey();
+            ComponentDefinition<? extends Implementation<?>> junitDefinition = entry.getValue();
+            Implementation<?> implementation = junitDefinition.getImplementation();
+            System.err.println(implementation.getClass());
+        }
     }
 
     protected Deployer getDeployer() {

Modified: incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/implementation/launched/LaunchedLoader.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/implementation/launched/LaunchedLoader.java?view=diff&rev=508282&r1=508281&r2=508282
==============================================================================
--- incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/implementation/launched/LaunchedLoader.java (original)
+++ incubator/tuscany/java/sca/runtime/standalone/standalone-host/src/main/java/org/apache/tuscany/runtime/standalone/host/implementation/launched/LaunchedLoader.java Thu Feb 15 18:11:05 2007
@@ -22,6 +22,7 @@
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 
+import org.apache.tuscany.spi.annotation.Autowire;
 import org.apache.tuscany.spi.component.CompositeComponent;
 import org.apache.tuscany.spi.deployer.DeploymentContext;
 import org.apache.tuscany.spi.extension.LoaderExtension;
@@ -35,7 +36,7 @@
 public class LaunchedLoader extends LoaderExtension<Launched> {
     private static final QName LAUNCHED = new QName("http://tuscany.apache.org/xmlns/sca/1.0", "launched");
 
-    public LaunchedLoader(LoaderRegistry registry) {
+    public LaunchedLoader(@Autowire LoaderRegistry registry) {
         super(registry);
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org