summaryrefslogtreecommitdiffstats
path: root/sandbox/travelsample/shoppingcart-contribution
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sandbox/travelsample/shoppingcart-contribution/META-INF/sca-contribution.xml2
-rw-r--r--sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCart.java12
-rw-r--r--sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCartImpl.java42
3 files changed, 40 insertions, 16 deletions
diff --git a/sandbox/travelsample/shoppingcart-contribution/META-INF/sca-contribution.xml b/sandbox/travelsample/shoppingcart-contribution/META-INF/sca-contribution.xml
index f90d041864..f4010d04b1 100644
--- a/sandbox/travelsample/shoppingcart-contribution/META-INF/sca-contribution.xml
+++ b/sandbox/travelsample/shoppingcart-contribution/META-INF/sca-contribution.xml
@@ -18,5 +18,7 @@
* under the License.
-->
<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0">
+ <import.java package="scatours.common"/>
+ <import.java package="scatours.paymentprocess"/>
<export.java package="scatours.shoppingcart"/>
</contribution> \ No newline at end of file
diff --git a/sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCart.java b/sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCart.java
index a7ad6e0a18..f7595c71fe 100644
--- a/sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCart.java
+++ b/sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCart.java
@@ -19,15 +19,21 @@
package scatours.shoppingcart;
import org.osoa.sca.annotations.Conversational;
+import org.osoa.sca.annotations.EndsConversation;
import org.osoa.sca.annotations.Remotable;
+import scatours.common.TripItem;
+
/**
* The ShoppingCart service interface
*/
@Remotable
@Conversational
public interface ShoppingCart{
- void addItem(String itemId);
- void removeItem(String itemId);
- String[] getItems();
+ void addTrip(TripItem trip);
+ void removeTrip(TripItem trip);
+ TripItem[] getTrips();
+
+ @EndsConversation
+ void checkout(String name);
}
diff --git a/sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCartImpl.java b/sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCartImpl.java
index 2278a85b0d..4fc9306785 100644
--- a/sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCartImpl.java
+++ b/sandbox/travelsample/shoppingcart-contribution/src/scatours/shoppingcart/ShoppingCartImpl.java
@@ -27,12 +27,14 @@ 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.Reference;
import org.osoa.sca.annotations.Scope;
import org.osoa.sca.annotations.Service;
import scatours.common.TripItem;
+import scatours.paymentprocess.PaymentProcess;
/**
* An implementation of the Trip service
@@ -40,34 +42,48 @@ import scatours.common.TripItem;
@Scope("CONVERSATION")
@Service(interfaces={ShoppingCart.class})
public class ShoppingCartImpl implements ShoppingCart{
+
+ @Reference
+ protected PaymentProcess paymentProcess;
@ConversationID
- protected String conversationId;
+ protected String cartId;
- private List<String> itemIds = new ArrayList<String>();
+ private List<TripItem> trips = new ArrayList<TripItem>();
// Trip methods
@Init
- public void initTrip() {
- System.out.println("Cart init for id: " + conversationId);
+ public void initCart() {
+ System.out.println("Cart init for id: " + cartId);
}
@Destroy
- public void destroyTrip() {
- System.out.println("Cart destroy for id: " + conversationId);
+ public void destroyCart() {
+ System.out.println("Cart destroy for id: " + cartId);
}
+ public void addTrip(TripItem trip) {
+ trips.add(trip);
+ }
- public void addItem(String itemId){
- itemIds.add(itemId);
+ public void removeTrip(TripItem trip) {
+ trips.remove(trip);
}
- public void removeItem(String itemId){
- itemIds.remove(itemId);
+ public TripItem[] getTrips(){
+ return trips.toArray(new TripItem[trips.size()]);
+ }
+
+ public void checkout(String customerName){
+ // get users credentials. Hard coded for now but should
+ // come from the security context
+ String customerId = customerName;
+
+ // get the total for all the trips
+ float amount = (float)0.0;
+
+ paymentProcess.makePayment(customerId, amount);
}
- public String[] getItems() {
- return itemIds.toArray(new String[itemIds.size()]);
- }
}