summaryrefslogtreecommitdiffstats
path: root/sandbox/travelsample/shoppingcart-contribution/src
diff options
context:
space:
mode:
authorslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2009-01-05 11:49:06 +0000
committerslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2009-01-05 11:49:06 +0000
commit6ecc521d85871c1bc0d37927717434edcaccf234 (patch)
tree71cb219791ac9c910ef8adcb7d2b7ace7d56890d /sandbox/travelsample/shoppingcart-contribution/src
parent09145b638ddca5e5aab648290314163666e3dcc3 (diff)
Add in shopping cart and extend scenario to talk to payment process. Now needs a revamp to simplify and to allow preconfigured trips to be added to the cart.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@731534 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sandbox/travelsample/shoppingcart-contribution/src')
-rw-r--r--sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCart.java (renamed from sandbox/travelsample/shoppingcart-contribution/src/scatours/travel/TravelSearch.java)15
-rw-r--r--sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCartImpl.java73
-rw-r--r--sandbox/travelsample/shoppingcart-contribution/src/scatours/travel/TravelBooking.java38
-rw-r--r--sandbox/travelsample/shoppingcart-contribution/src/scatours/travel/TravelImpl.java134
4 files changed, 81 insertions, 179 deletions
diff --git a/sandbox/travelsample/shoppingcart-contribution/src/scatours/travel/TravelSearch.java b/sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCart.java
index d1aeed2906..a7ad6e0a18 100644
--- a/sandbox/travelsample/shoppingcart-contribution/src/scatours/travel/TravelSearch.java
+++ b/sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCart.java
@@ -16,17 +16,18 @@
* specific language governing permissions and limitations
* under the License.
*/
-package scatours.travel;
+package scatours.shoppingcart;
+import org.osoa.sca.annotations.Conversational;
import org.osoa.sca.annotations.Remotable;
-import scatours.common.TripItem;
-import scatours.common.TripLeg;
-
/**
- * The Trip service interface
+ * The ShoppingCart service interface
*/
@Remotable
-public interface TravelSearch {
- TripItem[] search(TripLeg tripLeg);
+@Conversational
+public interface ShoppingCart{
+ void addItem(String itemId);
+ void removeItem(String itemId);
+ String[] getItems();
}
diff --git a/sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCartImpl.java b/sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCartImpl.java
new file mode 100644
index 0000000000..2278a85b0d
--- /dev/null
+++ b/sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCartImpl.java
@@ -0,0 +1,73 @@
+/*
+ * 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.shoppingcart;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+import org.osoa.sca.annotations.ConversationID;
+import org.osoa.sca.annotations.Destroy;
+import org.osoa.sca.annotations.Init;
+
+import org.osoa.sca.annotations.Scope;
+import org.osoa.sca.annotations.Service;
+
+
+import scatours.common.TripItem;
+
+/**
+ * An implementation of the Trip service
+ */
+@Scope("CONVERSATION")
+@Service(interfaces={ShoppingCart.class})
+public class ShoppingCartImpl implements ShoppingCart{
+
+ @ConversationID
+ protected String conversationId;
+
+ private List<String> itemIds = new ArrayList<String>();
+
+ // Trip methods
+
+ @Init
+ public void initTrip() {
+ System.out.println("Cart init for id: " + conversationId);
+ }
+
+ @Destroy
+ public void destroyTrip() {
+ System.out.println("Cart destroy for id: " + conversationId);
+ }
+
+
+ public void addItem(String itemId){
+ itemIds.add(itemId);
+ }
+
+ public void removeItem(String itemId){
+ itemIds.remove(itemId);
+ }
+
+ public String[] getItems() {
+ return itemIds.toArray(new String[itemIds.size()]);
+ }
+}
diff --git a/sandbox/travelsample/shoppingcart-contribution/src/scatours/travel/TravelBooking.java b/sandbox/travelsample/shoppingcart-contribution/src/scatours/travel/TravelBooking.java
deleted file mode 100644
index fec3ceb366..0000000000
--- a/sandbox/travelsample/shoppingcart-contribution/src/scatours/travel/TravelBooking.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.travel;
-
-
-import org.osoa.sca.annotations.Remotable;
-
-import scatours.common.TripItem;
-
-/**
- * The TravelBooking service interface
- */
-@Remotable
-public interface TravelBooking {
-
- String newTrip();
- void addTripItem(String tripId, String id);
- void removeTripItem(String tripId, String id);
- TripItem[] getTripItems(String tripId);
- double getTotalPrice(String tripId);
- void purchaseTrip(String tripId);
-}
diff --git a/sandbox/travelsample/shoppingcart-contribution/src/scatours/travel/TravelImpl.java b/sandbox/travelsample/shoppingcart-contribution/src/scatours/travel/TravelImpl.java
deleted file mode 100644
index b2d9fe1063..0000000000
--- a/sandbox/travelsample/shoppingcart-contribution/src/scatours/travel/TravelImpl.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * 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.travel;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import org.apache.tuscany.sca.data.collection.Entry;
-import org.apache.tuscany.sca.data.collection.NotFoundException;
-import org.osoa.sca.CallableReference;
-import org.osoa.sca.ComponentContext;
-import org.osoa.sca.RequestContext;
-import org.osoa.sca.ServiceReference;
-import org.osoa.sca.annotations.Context;
-import org.osoa.sca.annotations.Property;
-import org.osoa.sca.annotations.Reference;
-import org.osoa.sca.annotations.Scope;
-import org.osoa.sca.annotations.Service;
-
-import scatours.common.Search;
-import scatours.common.SearchCallback;
-import scatours.common.TripItem;
-import scatours.common.TripLeg;
-import scatours.currencyconverter.CurrencyConverter;
-
-/**
- * An implementation of the Trip service
- */
-@Scope("COMPOSITE")
-@Service(interfaces={TravelSearch.class, TravelBooking.class})
-public class TravelImpl implements TravelSearch, SearchCallback{
-
- @Reference
- protected CurrencyConverter currencyConverter;
-
- @Reference
- protected Search hotelSearch;
-
- @Reference
- protected Search flightSearch;
-
- @Reference
- protected Search carSearch;
-
-
- @Property
- public String quoteCurrencyCode = "USD";
-
- @Context
- protected ComponentContext componentContext;
-
- private int responsesReceived = 0;
-
- private List<TripItem> searchResults = new ArrayList<TripItem>();
-
- // TravelSearch methods
-
- public TripItem[] search(TripLeg tripLeg) {
-
- searchResults.clear();
- responsesReceived = 0;
-
- ServiceReference<Search> dynamicHotelSearch =
- componentContext.getServiceReference(Search.class, "hotelSearch");
-
- dynamicHotelSearch.setCallbackID("HotelSearchCallbackID-" + tripLeg.getId());
- dynamicHotelSearch.getService().searchAsynch(tripLeg);
-
- flightSearch.searchAsynch(tripLeg);
- carSearch.searchAsynch(tripLeg);
-
- while (responsesReceived < 3){
- try {
- synchronized (this) {
- this.wait();
- }
- } catch (InterruptedException ex){
- // do nothing
- }
- }
-
- for (TripItem tripItem : searchResults){
- tripItem.setId(UUID.randomUUID().toString());
- tripItem.setTripId(tripLeg.getId());
- tripItem.setPrice(currencyConverter.convert(tripItem.getCurrency(),
- quoteCurrencyCode,
- tripItem.getPrice()));
- tripItem.setCurrency(quoteCurrencyCode);
- }
-
- return searchResults.toArray(new TripItem[searchResults.size()]);
- }
-
- // SearchCallback methods
-
- public void searchResults(TripItem[] items){
- RequestContext requestContext = componentContext.getRequestContext();
- Object callbackID = requestContext.getServiceReference().getCallbackID();
- System.out.println(callbackID);
-
- for(int i = 0; i < items.length; i++ ){
- searchResults.add(items[i]);
- }
-
- responsesReceived++;
- try {
- synchronized (this) {
- this.notifyAll();
- }
- } catch (Exception ex) {
- }
- }
-
-
-}