summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2010-05-27 10:12:24 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2010-05-27 10:12:24 +0000
commit46576bda96cf80886ed8bd811e79dee9b1e63f4c (patch)
treeb8ac5e49c7c999f9a03425cab3e844a0a24e6d6a /sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src
parentd3ab2b28493cecc4092814c3fd6873d74d1018d8 (diff)
Move the travel sample tutorial from 2.x trunk to contrib as its not in the build, doesn't build, and no one is actively working on it. (and even if they were, i wonder if this should be released seperately like the 1.x version and so not in the trunk tree anyway
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@948750 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src')
-rw-r--r--sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/main/java/com/tuscanyscatours/trip/impl/TripImpl.java94
-rw-r--r--sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/main/java/com/tuscanyscatours/trip/impl/TripInfo.java140
-rw-r--r--sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/main/resources/META-INF/sca-contribution.xml23
-rw-r--r--sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/test/java/scatours/trip/TripTestCase.java68
-rw-r--r--sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/test/resources/definitions.xml32
-rw-r--r--sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/test/resources/trip.composite31
6 files changed, 388 insertions, 0 deletions
diff --git a/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/main/java/com/tuscanyscatours/trip/impl/TripImpl.java b/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/main/java/com/tuscanyscatours/trip/impl/TripImpl.java
new file mode 100644
index 0000000000..a0aec4b777
--- /dev/null
+++ b/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/main/java/com/tuscanyscatours/trip/impl/TripImpl.java
@@ -0,0 +1,94 @@
+/*
+ * 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 com.tuscanyscatours.trip.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.oasisopen.sca.annotation.Callback;
+import org.oasisopen.sca.annotation.Init;
+import org.oasisopen.sca.annotation.Scope;
+import org.oasisopen.sca.annotation.Service;
+
+import com.tuscanyscatours.common.Book;
+import com.tuscanyscatours.common.Search;
+import com.tuscanyscatours.common.SearchCallback;
+import com.tuscanyscatours.common.TripItem;
+import com.tuscanyscatours.common.TripLeg;
+
+/**
+ * An implementation of the Trip service
+ */
+@Scope("STATELESS")
+@Service({Search.class, Book.class})
+public class TripImpl implements Search, Book {
+
+ private List<TripInfo> trips = new ArrayList<TripInfo>();
+
+ @Callback
+ protected SearchCallback searchCallback;
+
+ @Init
+ public void init() {
+ trips.add(new TripInfo("FS1DEC06", "Florence and Siena pre-packaged tour", "LGW", "FLR", "06/12/09",
+ "13/12/09", "27", 450, "EUR", "http://localhost:8085/tbd"));
+ trips.add(new TripInfo("FS1DEC13", "Florence and Siena pre-packaged tour 2", "LGW", "FLR", "13/12/09",
+ "20/12/09", "27", 550, "EUR", "http://localhost:8085/tbd"));
+ }
+
+ public TripItem[] searchSynch(TripLeg tripLeg) {
+ List<TripItem> items = new ArrayList<TripItem>();
+
+ // find the pre-package trip
+ for (TripInfo trip : trips) {
+ if ((trip.getFromLocation().equals(tripLeg.getFromLocation())) && (trip.getToLocation().equals(tripLeg
+ .getToLocation()))
+ && (trip.getFromDate().equals(tripLeg.getFromDate()))) {
+ TripItem item =
+ new TripItem("", "", TripItem.TRIP, trip.getName(), trip.getDescription(),
+ trip.getFromLocation() + " - " + trip.getToLocation(), trip.getFromDate(), trip
+ .getToDate(), trip.getPricePerPerson(), trip.getCurrency(), trip.getLink());
+ items.add(item);
+ }
+ }
+
+ return items.toArray(new TripItem[items.size()]);
+ }
+
+ public void searchAsynch(TripLeg tripLeg) {
+ System.out.println("Starting trip search");
+
+ try {
+ Thread.sleep(2000);
+ } catch (Exception ex) {
+ // do nothing
+ }
+
+ // return available hotels
+ searchCallback.searchResults(searchSynch(tripLeg));
+ }
+
+ public int getPercentComplete() {
+ return 100;
+ }
+
+ public String book(TripItem tripItem) {
+ return "trip1";
+ }
+}
diff --git a/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/main/java/com/tuscanyscatours/trip/impl/TripInfo.java b/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/main/java/com/tuscanyscatours/trip/impl/TripInfo.java
new file mode 100644
index 0000000000..d8809e1325
--- /dev/null
+++ b/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/main/java/com/tuscanyscatours/trip/impl/TripInfo.java
@@ -0,0 +1,140 @@
+/*
+ * 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 com.tuscanyscatours.trip.impl;
+
+public class TripInfo {
+
+ private String name;
+ private String description;
+ private String fromLocation;
+ private String toLocation;
+ private String fromDate;
+ private String toDate;
+ private String spaces;
+ private double pricePerPerson;
+ private String currency;
+ private String link;
+
+ public TripInfo() {
+ }
+
+ public TripInfo(String name,
+ String description,
+ String fromLocation,
+ String toLocation,
+ String fromDate,
+ String toDate,
+ String spaces,
+ double pricePerPerson,
+ String currency,
+ String link) {
+
+ this.name = name;
+ this.description = description;
+ this.fromLocation = fromLocation;
+ this.toLocation = toLocation;
+ this.fromDate = fromDate;
+ this.toDate = toDate;
+ this.spaces = spaces;
+ this.pricePerPerson = pricePerPerson;
+ this.currency = currency;
+ this.link = link;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public String getFromLocation() {
+ return fromLocation;
+ }
+
+ public void setFromLocation(String fromLocation) {
+ this.fromLocation = fromLocation;
+ }
+
+ public String getToLocation() {
+ return toLocation;
+ }
+
+ public void setToLocation(String toLocation) {
+ this.toLocation = toLocation;
+ }
+
+ public String getFromDate() {
+ return fromDate;
+ }
+
+ public void setFromDate(String fromDate) {
+ this.fromDate = fromDate;
+ }
+
+ public String getToDate() {
+ return toDate;
+ }
+
+ public void setToDate(String toDate) {
+ this.toDate = toDate;
+ }
+
+ public String getSpaces() {
+ return spaces;
+ }
+
+ public void setSpaces(String spaces) {
+ this.spaces = spaces;
+ }
+
+ public double getPricePerPerson() {
+ return pricePerPerson;
+ }
+
+ public void setPricePerPerson(double pricePerPerson) {
+ this.pricePerPerson = pricePerPerson;
+ }
+
+ public String getCurrency() {
+ return currency;
+ }
+
+ public void setCurrency(String currency) {
+ this.currency = currency;
+ }
+
+ public String getLink() {
+ return link;
+ }
+
+ public void setLink(String link) {
+ this.link = link;
+ }
+}
diff --git a/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/main/resources/META-INF/sca-contribution.xml
new file mode 100644
index 0000000000..278d66acd1
--- /dev/null
+++ b/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/main/resources/META-INF/sca-contribution.xml
@@ -0,0 +1,23 @@
+<?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://docs.oasis-open.org/ns/opencsa/sca/200912">
+ <import.java package="com.tuscanyscatours.common"/>
+ <export.java package="com.tuscanyscatours.trip.impl"/>
+</contribution>
diff --git a/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/test/java/scatours/trip/TripTestCase.java b/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/test/java/scatours/trip/TripTestCase.java
new file mode 100644
index 0000000000..29e2058023
--- /dev/null
+++ b/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/test/java/scatours/trip/TripTestCase.java
@@ -0,0 +1,68 @@
+/*
+ * 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.trip;
+
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import com.tuscanyscatours.common.Book;
+import com.tuscanyscatours.common.TripItem;
+
+/**
+ *
+ */
+public class TripTestCase {
+ private static Node tripNode;
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ try {
+ tripNode =
+ NodeFactory.getInstance().createNode("trip.composite",
+ new Contribution("trip", "./target/classes"),
+ new Contribution("trip-test", "./target/test-classes"));
+
+ tripNode.start();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ @Test
+ public void testPayment() {
+ Node client = (Node)tripNode;
+ Book booking = client.getService(Book.class, "Trip/Book");
+ TripItem tripItem =
+ new TripItem("1234", "5678", TripItem.TRIP, "FS1DEC06", "Florence and Siena pre-packaged tour", "FLR",
+ "06/12/09", "13/12/09", 450, "EUR", "http://localhost:8085/tbd");
+ System.out.println("Result = " + booking.book(tripItem) + "\n");
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception {
+ tripNode.stop();
+ }
+
+}
diff --git a/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/test/resources/definitions.xml b/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/test/resources/definitions.xml
new file mode 100644
index 0000000000..1d5579495c
--- /dev/null
+++ b/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/test/resources/definitions.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * 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.
+-->
+<definitions xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.1"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1">
+
+ <!-- PolicySets -->
+ <policySet name="JDKLoggingPolicy" provides="tuscany:logging" appliesTo="sca:implementation.java"
+ xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912">
+ <tuscany:jdkLogger name="myLogger">
+ <logLevel>FINER</logLevel>
+ </tuscany:jdkLogger>
+ </policySet>
+</definitions>
diff --git a/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/test/resources/trip.composite b/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/test/resources/trip.composite
new file mode 100644
index 0000000000..a0dd505036
--- /dev/null
+++ b/sca-java-2.x/contrib/tutorials/travelsample/contributions/trip/src/test/resources/trip.composite
@@ -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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://scatours"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
+ name="packagedtrip">
+
+ <component name="Trip">
+ <implementation.java class="com.tuscanyscatours.trip.impl.TripImpl" requires="tuscany:logging"/>
+ <service name="Search"/>
+ <service name="Book"/>
+ </component>
+
+</composite>