summaryrefslogtreecommitdiffstats
path: root/sandbox/travelsample
diff options
context:
space:
mode:
authorslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2009-06-11 17:35:55 +0000
committerslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2009-06-11 17:35:55 +0000
commit07c7e97cb86927128620f43c297600b534866857 (patch)
tree8dd6460517e737ef423c66350d915a69e8e7ea78 /sandbox/travelsample
parent17d2f439c3be0f7288c72846a60d42a120dce9ce (diff)
Start adding some simple scenarios that explore SCA interaction patterns
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@783854 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sandbox/travelsample')
-rw-r--r--sandbox/travelsample/contributions/calendar-contribution/src/main/java/calendar/Calendar.java3
-rw-r--r--sandbox/travelsample/contributions/interaction-client-contribution/pom.xml6
-rw-r--r--sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/InteractionClient.java (renamed from sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/TestClient.java)9
-rw-r--r--sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/InteractionLocalClient.java53
-rw-r--r--sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/InteractionRemoteClient.java60
-rw-r--r--sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/InteractionRequestResponseClient.java42
-rw-r--r--sandbox/travelsample/contributions/interaction-client-contribution/src/main/resources/META-INF/sca-contribution.xml3
-rw-r--r--sandbox/travelsample/contributions/interaction-client-contribution/src/main/resources/client.composite30
-rw-r--r--sandbox/travelsample/contributions/interaction-service-remote-contribution/src/main/resources/client.composite1
-rw-r--r--sandbox/travelsample/launchers/interaction-launcher/src/main/java/scatours/LaunchIntactionNode.java11
10 files changed, 199 insertions, 19 deletions
diff --git a/sandbox/travelsample/contributions/calendar-contribution/src/main/java/calendar/Calendar.java b/sandbox/travelsample/contributions/calendar-contribution/src/main/java/calendar/Calendar.java
index 4259c5fa8b..f8c3a6c624 100644
--- a/sandbox/travelsample/contributions/calendar-contribution/src/main/java/calendar/Calendar.java
+++ b/sandbox/travelsample/contributions/calendar-contribution/src/main/java/calendar/Calendar.java
@@ -18,9 +18,6 @@
*/
package calendar;
-/**
- * The Add service interface
- */
public interface Calendar {
String getEndDate(String startDate, int duration);
diff --git a/sandbox/travelsample/contributions/interaction-client-contribution/pom.xml b/sandbox/travelsample/contributions/interaction-client-contribution/pom.xml
index 65f40dbdfa..4b00b8cc97 100644
--- a/sandbox/travelsample/contributions/interaction-client-contribution/pom.xml
+++ b/sandbox/travelsample/contributions/interaction-client-contribution/pom.xml
@@ -52,6 +52,12 @@
<artifactId>scatours-hotel-contribution</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>scatours-currency-contribution</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
</dependencies>
<build>
diff --git a/sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/TestClient.java b/sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/InteractionClient.java
index 3b53cb8a4a..9953d4b1a5 100644
--- a/sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/TestClient.java
+++ b/sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/InteractionClient.java
@@ -19,7 +19,6 @@
package scatours.client;
-import org.osoa.sca.RequestContext;
import org.osoa.sca.annotations.Reference;
import org.osoa.sca.annotations.Service;
@@ -29,18 +28,16 @@ import scatours.common.Search;
import scatours.common.SearchCallback;
import scatours.common.TripItem;
import scatours.common.TripLeg;
-import scatours.hotel.HotelInfo;
-import scatours.hotel.HotelManagement;
@Service(Runnable.class)
-public class TestClient implements SearchCallback {
+public class InteractionClient implements Runnable, SearchCallback {
@Reference
protected Search hotelSearchRemoteRequestResponse;
@Reference
protected Calendar calendarLocalRequestResponse;
- public TestClient() {
+ public InteractionClient() {
}
// Runnable method
@@ -76,7 +73,7 @@ public class TestClient implements SearchCallback {
}
- private void runCallbac() {
+ private void runCallback() {
}
diff --git a/sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/InteractionLocalClient.java b/sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/InteractionLocalClient.java
new file mode 100644
index 0000000000..fb1a7c29d5
--- /dev/null
+++ b/sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/InteractionLocalClient.java
@@ -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.client;
+
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+import calendar.Calendar;
+
+import scatours.common.TripLeg;
+
+@Service(Runnable.class)
+public class InteractionLocalClient implements Runnable {
+
+ @Reference
+ protected Calendar calendarLocal;
+
+ public void run() {
+ System.out.println("\nCalling calendar component over local binding");
+ TripLeg tripLeg = getTestTripLeg();
+ String toDate = calendarLocal.getEndDate(tripLeg.getFromDate(), 10);
+ tripLeg.setToDate(toDate);
+ System.out.println("Calculated trip end date - " + toDate);;
+ }
+
+ private TripLeg getTestTripLeg(){
+ TripLeg tripLeg = new TripLeg();
+ tripLeg.setFromLocation("LGW");
+ tripLeg.setToLocation("FLR");
+ tripLeg.setFromDate("06/12/09 00:00");
+ tripLeg.setToDate("13/12/09 00:00");
+ tripLeg.setNoOfPeople("1");
+ tripLeg.setId("TRIP27");
+ return tripLeg;
+ }
+}
diff --git a/sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/InteractionRemoteClient.java b/sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/InteractionRemoteClient.java
new file mode 100644
index 0000000000..2f198797a1
--- /dev/null
+++ b/sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/InteractionRemoteClient.java
@@ -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.client;
+
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+import scatours.common.Search;
+import scatours.common.SearchCallback;
+import scatours.common.TripItem;
+import scatours.common.TripLeg;
+
+@Service(Runnable.class)
+public class InteractionRemoteClient implements Runnable, SearchCallback{
+
+ @Reference
+ protected Search hotelSearchRemote;
+
+ public void run() {
+ System.out.println("\nCalling hotel component over remote binding");
+ TripLeg tripLeg = getTestTripLeg();
+ TripItem[] tripItems = hotelSearchRemote.searchSynch(tripLeg);
+ for (TripItem tripItem : tripItems){
+ System.out.println("Found hotel - " + tripItem.getName());
+ }
+ }
+
+ public void searchResults(TripItem[] items){
+ // we are calling the hotel component synchronously here
+ // so the callback interface is not used
+ }
+
+ private TripLeg getTestTripLeg(){
+ TripLeg tripLeg = new TripLeg();
+ tripLeg.setFromLocation("LGW");
+ tripLeg.setToLocation("FLR");
+ tripLeg.setFromDate("06/12/09 00:00");
+ tripLeg.setToDate("13/12/09 00:00");
+ tripLeg.setNoOfPeople("1");
+ tripLeg.setId("TRIP27");
+ return tripLeg;
+ }
+}
diff --git a/sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/InteractionRequestResponseClient.java b/sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/InteractionRequestResponseClient.java
new file mode 100644
index 0000000000..20cb8fd740
--- /dev/null
+++ b/sandbox/travelsample/contributions/interaction-client-contribution/src/main/java/scatours/client/InteractionRequestResponseClient.java
@@ -0,0 +1,42 @@
+/*
+ * 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.client;
+
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+import calendar.Calendar;
+
+import scatours.common.TripLeg;
+import scatours.currencyconverter.CurrencyConverter;
+
+@Service(Runnable.class)
+public class InteractionRequestResponseClient implements Runnable {
+
+ @Reference
+ protected CurrencyConverter currencyConverterRequestResponse;
+
+ public void run() {
+ System.out.println("\nCalling currency converter component using request response pattern");
+ double convertedAmount = currencyConverterRequestResponse.convert("GBP", "USD", 10.0);
+ System.out.println("10 GBP = " + convertedAmount + " USD");
+ }
+
+}
diff --git a/sandbox/travelsample/contributions/interaction-client-contribution/src/main/resources/META-INF/sca-contribution.xml b/sandbox/travelsample/contributions/interaction-client-contribution/src/main/resources/META-INF/sca-contribution.xml
index 9eed690aaf..848e0bea5b 100644
--- a/sandbox/travelsample/contributions/interaction-client-contribution/src/main/resources/META-INF/sca-contribution.xml
+++ b/sandbox/travelsample/contributions/interaction-client-contribution/src/main/resources/META-INF/sca-contribution.xml
@@ -19,7 +19,8 @@
-->
<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:client="http://client.scatours/">
- <import.java package="scatours.common"/>
<import.java package="calendar"/>
+ <import.java package="scatours.common"/>
+ <import.java package="scatours.currencyconverter"/>
<deployable composite="client:Client" />
</contribution>
diff --git a/sandbox/travelsample/contributions/interaction-client-contribution/src/main/resources/client.composite b/sandbox/travelsample/contributions/interaction-client-contribution/src/main/resources/client.composite
index 1b76fbaefb..c2ff2c9a89 100644
--- a/sandbox/travelsample/contributions/interaction-client-contribution/src/main/resources/client.composite
+++ b/sandbox/travelsample/contributions/interaction-client-contribution/src/main/resources/client.composite
@@ -21,17 +21,33 @@
targetNamespace="http://client.scatours/"
name="Client">
- <component name="TestClient">
- <implementation.java class="scatours.client.TestClient" />
- <reference name="hotelSearchRemoteRequestResponse">
- <binding.ws uri="http://localhost:8081/HotelComponent/Search"/>
- </reference>
- <reference name="calendarLocalRequestResponse"
+ <!-- Local interaction -->
+ <component name="InteractionLocalClient">
+ <implementation.java class="scatours.client.InteractionLocalClient" />
+ <reference name="calendarLocal"
target="CalendarComponent"/>
</component>
<component name="CalendarComponent">
<implementation.java class="calendar.CalendarImpl"/>
- </component>
+ </component>
+
+ <!-- Remote interaction -->
+ <component name="InteractionRemoteClient">
+ <implementation.java class="scatours.client.InteractionRemoteClient" />
+ <reference name="hotelSearchRemote">
+ <binding.ws uri="http://localhost:8081/HotelComponent/Search"/>
+ </reference>
+ </component>
+
+ <!-- Request response interaction -->
+ <component name="InteractionRequestResponseClient">
+ <implementation.java class="scatours.client.InteractionRequestResponseClient" />
+ <reference name="currencyConverterRequestResponse" target="CurrencyConverterComponent"/>
+ </component>
+
+ <component name="CurrencyConverterComponent">
+ <implementation.java class="scatours.currencyconverter.CurrencyConverterImpl"/>
+ </component>
</composite>
diff --git a/sandbox/travelsample/contributions/interaction-service-remote-contribution/src/main/resources/client.composite b/sandbox/travelsample/contributions/interaction-service-remote-contribution/src/main/resources/client.composite
index c44d0666b5..36ce4392a9 100644
--- a/sandbox/travelsample/contributions/interaction-service-remote-contribution/src/main/resources/client.composite
+++ b/sandbox/travelsample/contributions/interaction-service-remote-contribution/src/main/resources/client.composite
@@ -27,4 +27,5 @@
<binding.ws uri="http://localhost:8081/HotelComponent/Search"/>
</service>
</component>
+
</composite>
diff --git a/sandbox/travelsample/launchers/interaction-launcher/src/main/java/scatours/LaunchIntactionNode.java b/sandbox/travelsample/launchers/interaction-launcher/src/main/java/scatours/LaunchIntactionNode.java
index fe08cac367..1c9b20ab5a 100644
--- a/sandbox/travelsample/launchers/interaction-launcher/src/main/java/scatours/LaunchIntactionNode.java
+++ b/sandbox/travelsample/launchers/interaction-launcher/src/main/java/scatours/LaunchIntactionNode.java
@@ -37,6 +37,7 @@ public class LaunchIntactionNode {
try {
SCANode node1 = SCANodeFactory.newInstance().createSCANode("client.composite",
new SCAContribution("common", "../../contributions/common-contribution/target/classes"),
+ new SCAContribution("currency", "../../contributions/currency-contribution/target/classes"),
new SCAContribution("calendar", "../../contributions/calendar-contribution/target/classes"),
new SCAContribution("client", "../../contributions/interaction-client-contribution/target/classes"));
@@ -48,8 +49,14 @@ public class LaunchIntactionNode {
node2.start();
node1.start();
- Runnable runner = ((SCAClient)node1).getService(Runnable.class, "TestClient/Runnable");
- runner.run();
+ Runnable localInteraction = ((SCAClient)node1).getService(Runnable.class, "InteractionLocalClient/Runnable");
+ localInteraction.run();
+
+ Runnable remoteInteraction = ((SCAClient)node1).getService(Runnable.class, "InteractionRemoteClient/Runnable");
+ remoteInteraction.run();
+
+ Runnable requestResponseInteraction = ((SCAClient)node1).getService(Runnable.class, "InteractionRequestResponseClient/Runnable");
+ requestResponseInteraction.run();
node1.stop();
node2.stop();