Modified: tuscany/sandbox/travelsample/shared-contributions/scatours-contribution/src/main/java/scatours/SCAToursImpl.java URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/shared-contributions/scatours-contribution/src/main/java/scatours/SCAToursImpl.java?rev=746503&r1=746502&r2=746503&view=diff ============================================================================== --- tuscany/sandbox/travelsample/shared-contributions/scatours-contribution/src/main/java/scatours/SCAToursImpl.java (original) +++ tuscany/sandbox/travelsample/shared-contributions/scatours-contribution/src/main/java/scatours/SCAToursImpl.java Sat Feb 21 13:31:55 2009 @@ -40,7 +40,10 @@ import scatours.tripbooking.TripBooking; /** - * An implementation of the Trip service + * An implementation of the SCA tours component. This component currently provides + * a front end to the components that the UI communicated with. It allows a conversation + * to be held with the shopping cart as javascript doesn't support conversations. + * Other than that it's just a pass through so we could look to remove it. */ @Scope("COMPOSITE") @Service(interfaces={SCAToursSearch.class, SCAToursBooking.class, SCAToursCart.class}) @@ -60,18 +63,13 @@ private Map<String,ShoppingCart> carts = new HashMap<String,ShoppingCart>(); private Map<String,TripBooking> trips = new HashMap<String,TripBooking>(); - //private Map<String, TripItem> searchItemsCache = new HashMap<String, TripItem>(); // SCAToursSearch methods public TripItem[] search(TripLeg tripLeg) { - TripItem[] searchItems = travelCatalogSearch.search(tripLeg); - - //for (int i =0; i< searchItems.length; i++){ - // searchItemsCache.put(searchItems[i].getId(), searchItems[i]); - //} - return searchItems; + return travelCatalogSearch.search(tripLeg); + } // SCAToursBooking methods @@ -99,64 +97,7 @@ } public void checkout(String cartId){ - shoppingCart.checkout("Fred"); - } - -/* - public String addTrip(String cartId){ - String tripId = UUID.randomUUID().toString(); - ServiceReference<TripBooking> tripReference = componentContext.getServiceReference(TripBooking.class, - "tripBooking"); - tripReference.setConversationID(tripId); - trips.put(tripId, tripReference.getService()); - - carts.get(cartId).addItem(tripId); - return tripId; - } - - public void removeTrip(String cartId, String tripId) { - carts.get(cartId).removeItem(tripId); - } - - public void addTripItem(String cartId, String tripId, String tripItemId){ - TripItem item = searchItemsCache.get(tripItemId); - TripItem itemCopy = new TripItem(item); - itemCopy.setTripId(tripId); - trips.get(tripId).addTripItem(itemCopy); - } - - public void removeTripItem(String cartId, String tripId, String tripItemId){ - trips.get(tripId).removeTripItem(tripItemId); - } - - public TripItem[] getTripItems(String cartId) { - List<TripItem> returnTripItems = new ArrayList<TripItem>(); - - for( String tripId : carts.get(cartId).getItems()){ - returnTripItems.addAll(Arrays.asList(trips.get(tripId).getTripItems())); - } - - return returnTripItems.toArray(new TripItem[returnTripItems.size()]); - } - - public double getTotalPrice(String cartId){ - double total = 0.0; - - for( String tripId : carts.get(cartId).getItems()){ - total += trips.get(tripId).getTripPrice(); - } - - return total; - } - - public void checkout(String cartId){ - // get users credentials. Hard coded for now but should - // come from the security context - String customerId = "Fred Bloggs"; - float amount = (float)getTotalPrice(cartId); - - paymentProcess.makePayment(customerId, amount); - } - -*/ + // need to get the user id from the context here + carts.get(cartId).checkout("Fred"); + } }
Modified: tuscany/sandbox/travelsample/shared-contributions/shoppingcart-contribution/src/main/java/scatours/shoppingcart/ShoppingCartImpl.java URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/shared-contributions/shoppingcart-contribution/src/main/java/scatours/shoppingcart/ShoppingCartImpl.java?rev=746503&r1=746502&r2=746503&view=diff ============================================================================== --- tuscany/sandbox/travelsample/shared-contributions/shoppingcart-contribution/src/main/java/scatours/shoppingcart/ShoppingCartImpl.java (original) +++ tuscany/sandbox/travelsample/shared-contributions/shoppingcart-contribution/src/main/java/scatours/shoppingcart/ShoppingCartImpl.java Sat Feb 21 13:31:55 2009 @@ -32,9 +32,10 @@ import org.osoa.sca.annotations.Scope; import org.osoa.sca.annotations.Service; +import payment.Payment; + import scatours.common.TripItem; -//import scatours.paymentprocess.PaymentProcess; /** * An implementation of the Trip service @@ -43,8 +44,8 @@ @Service(interfaces={ShoppingCart.class}) public class ShoppingCartImpl implements ShoppingCart{ - // @Reference - // protected PaymentProcess paymentProcess; + @Reference + protected Payment payment; @ConversationID protected String cartId; @@ -83,7 +84,18 @@ // get the total for all the trips float amount = (float)0.0; - //paymentProcess.makePayment(customerId, amount); + for (TripItem trip : trips){ + if (trip.getType().equals(TripItem.TRIP)){ + amount += trip.getPrice(); + } else { + for (TripItem tripItem : trip.getTripItems()){ + amount += tripItem.getPrice(); + } + } + } + + // Take the payment from the customer + payment.makePaymentMember(customerId, amount); } } Added: tuscany/sandbox/travelsample/shared-contributions/shoppingcart-contribution/src/main/resources/Payment.wsdl URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/shared-contributions/shoppingcart-contribution/src/main/resources/Payment.wsdl?rev=746503&view=auto ============================================================================== --- tuscany/sandbox/travelsample/shared-contributions/shoppingcart-contribution/src/main/resources/Payment.wsdl (added) +++ tuscany/sandbox/travelsample/shared-contributions/shoppingcart-contribution/src/main/resources/Payment.wsdl Sat Feb 21 13:31:55 2009 @@ -0,0 +1,83 @@ +<?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. +--> +<wsdl:definitions name="Payment" + targetNamespace="http://www.tuscanyscatours.com/Payment/" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" + xmlns:tns="http://www.tuscanyscatours.com/Payment/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/" + xmlns:plnk="http://schemas.xmlsoap.org/ws/2004/03/partner-link/"> + <wsdl:types> + <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://www.tuscanyscatours.com/Payment/" + xmlns:tns="http://www.tuscanyscatours.com/Payment/"> + + <xsd:complexType name="MakePaymentMemberType"> + <xsd:sequence> + <xsd:element name="CustomerId" type="xsd:string"></xsd:element> + <xsd:element name="Amount" type="xsd:float"></xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="makePaymentMember" type="tns:MakePaymentMemberType"/> + + <xsd:complexType name="MakePaymentMemberResponseType"> + <xsd:sequence> + <xsd:element name="Status" type="xsd:string"></xsd:element> + </xsd:sequence> + </xsd:complexType> + <xsd:element name="makePaymentMemberResponse" type="tns:MakePaymentMemberResponseType"/> + + </xsd:schema> + </wsdl:types> + <wsdl:message name="MakePaymentMemberRequest"> + <wsdl:part name="parameters" element="tns:makePaymentMember"></wsdl:part> + </wsdl:message> + <wsdl:message name="MakePaymentMemberResponse"> + <wsdl:part name="parameters" element="tns:makePaymentMemberResponse"></wsdl:part> + </wsdl:message> + <wsdl:portType name="Payment"> + <wsdl:operation name="makePaymentMember"> + <wsdl:input message="tns:MakePaymentMemberRequest"></wsdl:input> + <wsdl:output message="tns:MakePaymentMemberResponse"></wsdl:output> + </wsdl:operation> + </wsdl:portType> + <wsdl:binding name="PaymentBinding" type="tns:Payment"> + <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> + <wsdl:operation name="makePaymentMember"> + <soap:operation soapAction="http://www.tuscanyscatours.com/Payment/makePayment" /> + <wsdl:input> + <soap:body use="literal" /> + </wsdl:input> + <wsdl:output> + <soap:body use="literal" /> + </wsdl:output> + </wsdl:operation> + </wsdl:binding> + <wsdl:service name="PaymentService"> + <wsdl:port name="PaymentPort" binding="tns:PaymentBinding"> + <soap:address location="http://localhost:8083/Payment" /> + </wsdl:port> + </wsdl:service> + + <plnk:partnerLinkType name="PaymentLinkType"> + <plnk:role name="forward" portType="tns:Payment"/> + </plnk:partnerLinkType> +</wsdl:definitions> \ No newline at end of file Propchange: tuscany/sandbox/travelsample/shared-contributions/shoppingcart-contribution/src/main/resources/Payment.wsdl ------------------------------------------------------------------------------ svn:eol-style = native Propchange: tuscany/sandbox/travelsample/shared-contributions/shoppingcart-contribution/src/main/resources/Payment.wsdl ------------------------------------------------------------------------------ svn:keywords = Rev Date Propchange: tuscany/sandbox/travelsample/shared-contributions/shoppingcart-contribution/src/main/resources/Payment.wsdl ------------------------------------------------------------------------------ svn:mime-type = text/xml
