I noticed that the launcher in chapter02/node-jumpstart puts the
goodvaluetrips-contribution code on the classpath.  In general it
isn't a good idea to put contribution code on the classpath because
this prevents the classes in the contribution from being loaded by
the contribution class loader, which means that import.java and
export.java don't work properly.

In the launcher in chapter-02/node there is an example of how
the code can be factored so that no contribution code appears on
the classpath but instead is loaded by its contribution class loader.
This requires an additional contribution for the client code, which
is separate from the launcher instead of being part of it.

Is there a reason why node-jumpstart needs to put the client code
and contribution code on the classpath?  If not, I think it would be
better to use the pattern in chapter-02/node for all the launchers
in the travel sample.

  Simon

[email protected] wrote:
Author: slaws
Date: Sun May 10 15:05:23 2009
New Revision: 773350

URL: http://svn.apache.org/viewvc?rev=773350&view=rev
Log:
Add a simplest client in order to start a single 
contribution/composite/component

Added:
    tuscany/sandbox/travelsample/chapter-02/node-jumpstart/
    tuscany/sandbox/travelsample/chapter-02/node-jumpstart/build.xml   (with 
props)
    tuscany/sandbox/travelsample/chapter-02/node-jumpstart/pom.xml   (with 
props)
    tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/
    tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/
    tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/java/
    
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/java/scatours/
    
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/java/scatours/LaunchNode.java
   (with props)
    tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/
    
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/META-INF/
    
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/META-INF/sca-contribution.xml
   (with props)
    
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/scatours.composite
   (with props)
    tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/test/
    tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/test/java/
    
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/test/java/scatours/
    
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/test/java/scatours/NodeTestCase.java
   (with props)
Modified:
    tuscany/sandbox/travelsample/chapter-02/client-contribution/   (props 
changed)

Propchange: tuscany/sandbox/travelsample/chapter-02/client-contribution/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun May 10 15:05:23 2009
@@ -0,0 +1,4 @@
+.classpath
+.project
+.settings
+target

Added: tuscany/sandbox/travelsample/chapter-02/node-jumpstart/build.xml
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/chapter-02/node-jumpstart/build.xml?rev=773350&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/chapter-02/node-jumpstart/build.xml (added)
+++ tuscany/sandbox/travelsample/chapter-02/node-jumpstart/build.xml Sun May 10 
15:05:23 2009
@@ -0,0 +1,56 @@
+<!--
+ * 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.
+-->
+
+<project name="scatours-chapter-02-node" default="compile">
+ <property environment="env"/> +
+    <target name="compile">
+        <mkdir dir="target/classes"/>
+        <javac destdir="target/classes" debug="on" source="1.5" target="1.5">
+            <src path="src/main/java"/>
+            <classpath>
+                <pathelement 
location="${env.TUSCANY}/lib/tuscany-sca-manifest.jar"/>
+            </classpath>
+        </javac>
+        <copy todir="target/classes">
+            <fileset dir="src/main/resources"/>
+        </copy>
+        <jar destfile="target/scatours-chapter-02-node.jar" 
basedir="target/classes">
+            <manifest>
+                <attribute name="Main-Class" value="scatours.LaunchNode"/>
+            </manifest>
+        </jar>
+    </target>
+
+    <target name="run">
+        <java classname="scatours.LaunchNode" fork="true">
+            <classpath>
+                <pathelement location="target/classes"/>
+                <pathelement 
location="${env.TUSCANY}/lib/tuscany-sca-manifest.jar"/>
+            </classpath>
+        </java>
+    </target>
+
+    <target name="clean">
+        <delete includeemptydirs="true">
+            <fileset dir="target"/>
+        </delete>
+    </target>
+
+</project>

Propchange: tuscany/sandbox/travelsample/chapter-02/node-jumpstart/build.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/chapter-02/node-jumpstart/build.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/sandbox/travelsample/chapter-02/node-jumpstart/build.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: tuscany/sandbox/travelsample/chapter-02/node-jumpstart/pom.xml
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/chapter-02/node-jumpstart/pom.xml?rev=773350&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/chapter-02/node-jumpstart/pom.xml (added)
+++ tuscany/sandbox/travelsample/chapter-02/node-jumpstart/pom.xml Sun May 10 
15:05:23 2009
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * 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. +-->
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.tuscany.sca</groupId>
+        <artifactId>tuscany-sca</artifactId>
+        <version>1.6-SNAPSHOT</version>
+        <!--relativePath>../../pom.xml</relativePath-->
+    </parent>
+    <artifactId>scatours-chapter-02-node-jumpstart</artifactId>
+    <name>Apache Tuscany SCA Tours Chapter 02 Node Jumpstart</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-node-api</artifactId>
+            <version>1.6-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-implementation-java-runtime</artifactId>
+            <version>1.6-SNAPSHOT</version>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-implementation-node-runtime</artifactId>
+            <version>1.6-SNAPSHOT</version>
+            <scope>test</scope>
+        </dependency>
+ + <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            
<artifactId>scatours-chapter-02-goodvaluetrips-contribution</artifactId>
+            <version>1.6-SNAPSHOT</version>
+            <scope>test</scope>
+ </dependency> +
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.5</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+ + <build>
+       <finalName>${artifactId}</finalName>
+    </build>
+</project>

Propchange: tuscany/sandbox/travelsample/chapter-02/node-jumpstart/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/chapter-02/node-jumpstart/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/sandbox/travelsample/chapter-02/node-jumpstart/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/java/scatours/LaunchNode.java
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/java/scatours/LaunchNode.java?rev=773350&view=auto
==============================================================================
--- 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/java/scatours/LaunchNode.java
 (added)
+++ 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/java/scatours/LaunchNode.java
 Sun May 10 15:05:23 2009
@@ -0,0 +1,53 @@
+/*
+ * 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 scatours;
+
+import org.apache.tuscany.sca.node.SCAClient;
+import org.apache.tuscany.sca.node.SCAContribution;
+import org.apache.tuscany.sca.node.SCANode;
+import org.apache.tuscany.sca.node.SCANodeFactory;
+
+import com.goodvaluetrips.Trips;
+
+public class LaunchNode {
+
+    public static void main(String[] args) throws Exception {
+        try {
+ SCAContribution gvtContribution = + new SCAContribution("goodvaluetrips", + "../goodvaluetrips-contribution/target/classes");
+            SCANode node = SCANodeFactory.newInstance().
+ createSCANode("trips.composite", + gvtContribution);
+            node.start();
+
+ Trips tripProvider = ((SCAClient)node).getService(Trips.class, + "TripProvider/Trips"); + + System.out.println("Trip boooking code = " + + tripProvider.checkAvailability("FS1APR4", 2));
+
+            node.stop();
+ + } catch (Throwable th) {
+            th.printStackTrace();
+        }
+    }
+}

Propchange: 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/java/scatours/LaunchNode.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/java/scatours/LaunchNode.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/META-INF/sca-contribution.xml
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/META-INF/sca-contribution.xml?rev=773350&view=auto
==============================================================================
--- 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/META-INF/sca-contribution.xml
 (added)
+++ 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/META-INF/sca-contribution.xml
 Sun May 10 15:05:23 2009
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * 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. +-->
+<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0";
+              xmlns:scatours="http://scatours";>
+    <import namespace="http://tuscanyscatours.com/"; />
+    <import namespace="http://goodvaluetrips.com/"; />
+    <import namespace="http://client.scatours/"; />
+    <deployable composite="scatours:scatours" />
+</contribution>

Propchange: 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/scatours.composite
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/scatours.composite?rev=773350&view=auto
==============================================================================
--- 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/scatours.composite
 (added)
+++ 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/scatours.composite
 Sun May 10 15:05:23 2009
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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. +-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0";
+    targetNamespace="http://scatours";
+    xmlns:client="http://client.scatours/";
+    xmlns:tours="http://tuscanyscatours.com/";
+    xmlns:trips="http://goodvaluetrips.com/";
+    name="scatours">
+
+    <include name="client:Client" />
+    <include name="tours:Tours" />
+    <include name="trips:Trips" />
+
+</composite>

Propchange: 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/scatours.composite
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/scatours.composite
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/main/resources/scatours.composite
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/test/java/scatours/NodeTestCase.java
URL: 
http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/test/java/scatours/NodeTestCase.java?rev=773350&view=auto
==============================================================================
--- 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/test/java/scatours/NodeTestCase.java
 (added)
+++ 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/test/java/scatours/NodeTestCase.java
 Sun May 10 15:05:23 2009
@@ -0,0 +1,60 @@
+/*
+ * 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 scatours;
+
+import org.apache.tuscany.sca.node.SCAClient;
+import org.apache.tuscany.sca.node.SCAContribution;
+import org.apache.tuscany.sca.node.SCANode;
+import org.apache.tuscany.sca.node.SCANodeFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests all the components and services in chapter 2
+ */
+public class NodeTestCase {
+
+    private SCANode node;
+
+    @Before
+    public void startServer() throws Exception {
+        try {
+ node = SCANodeFactory.newInstance().createSCANode("scatours.composite", + new SCAContribution("goodvaluetrips", "../goodvaluetrips-contribution/target/classes"),
+                new SCAContribution("tuscanyscatours", 
"../tuscanyscatours-contribution/target/classes"),
+                new SCAContribution("client", 
"../client-contribution/target/classes"),
+                new SCAContribution("node", "./target/classes"));
+            node.start();
+        } catch (Exception ex) {
+            System.out.println(ex.toString());
+        }
+    }
+
+    @Test
+    public void testClient() throws Exception {
+        Runnable runner = ((SCAClient)node).getService(Runnable.class, 
"TestClient/Runnable");
+        runner.run();
+    }
+
+    @After
+    public void stopServer() throws Exception {
+        node.stop();
+    }
+}

Propchange: 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/test/java/scatours/NodeTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
tuscany/sandbox/travelsample/chapter-02/node-jumpstart/src/test/java/scatours/NodeTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date






Reply via email to