From fb22ec3f14a2a075ce9297cb741755a23c03b5b9 Mon Sep 17 00:00:00 2001 From: nash Date: Tue, 1 Jun 2010 21:50:07 +0000 Subject: Tag for travelsample-1.0-RC3 git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@950266 13f79535-47bb-0310-9956-ffa450edef68 --- .../contributions/blog-feed/build.xml | 22 ++ .../contributions/blog-feed/pom.xml | 68 ++++ .../java/com/tuscanyscatours/blog/BlogPost.java | 68 ++++ .../blog/feed/impl/AtomBlogFeedImpl.java | 124 +++++++ .../blog/feed/impl/BaseBlogFeedImpl.java | 88 +++++ .../blog/feed/impl/GenericBlogFeedImpl.java | 70 ++++ .../blog/feed/impl/RSSBlogFeedImpl.java | 94 +++++ .../main/resources/META-INF/sca-contribution.xml | 21 ++ .../src/main/resources/blog-feed.composite | 58 +++ .../travelsample-1.0-RC3/contributions/build.xml | 102 ++++++ .../contributions/buildingblocks-client/build.xml | 22 ++ .../contributions/buildingblocks-client/pom.xml | 125 +++++++ .../src/main/java/scatours/Bookings.java | 26 ++ .../src/main/java/scatours/Checkout.java | 28 ++ .../main/java/scatours/impl/ApplClientImpl.java | 52 +++ .../main/java/scatours/impl/ToursClientImpl.java | 47 +++ .../main/resources/META-INF/sca-contribution.xml | 26 ++ .../src/main/resources/tours-appl-client.composite | 40 +++ .../src/main/resources/tours-impl-client.composite | 32 ++ .../resources/tours-impl-include-client.composite | 32 ++ .../java/scatours/BuildingBlocksApplTestCase.java | 77 ++++ .../BuildingBlocksImplIncludeTestCase.java | 59 +++ .../java/scatours/BuildingBlocksImplTestCase.java | 58 +++ .../src/test/resources/jndi.properties | 39 ++ .../contributions/buildingblocks/build.xml | 22 ++ .../contributions/buildingblocks/pom.xml | 91 +++++ .../src/main/java/com/budgettours/Tours.java | 26 ++ .../com/budgettours/impl/TourProviderImpl.java | 28 ++ .../src/main/java/com/goodvaluetrips/Trips.java | 26 ++ .../main/java/com/tuscanyscatours/Bookings.java | 26 ++ .../main/java/com/tuscanyscatours/Checkout.java | 28 ++ .../src/main/java/com/tuscanyscatours/Updates.java | 26 ++ .../com/tuscanyscatours/impl/ShoppingCartImpl.java | 49 +++ .../com/tuscanyscatours/impl/TripBookingImpl.java | 39 ++ .../main/java/scatours/impl/TripProviderImpl.java | 28 ++ .../main/resources/META-INF/sca-contribution.xml | 27 ++ .../src/main/resources/tours-appl.composite | 54 +++ .../main/resources/tours-impl-include.composite | 33 ++ .../src/main/resources/tours-impl.composite | 34 ++ .../src/main/resources/tours.composite | 43 +++ .../BuildingBlocksImplIncludeTestCase.java | 66 ++++ .../java/scatours/BuildingBlocksImplTestCase.java | 65 ++++ .../contributions/calendar/build.xml | 22 ++ .../contributions/calendar/pom.xml | 64 ++++ .../com/tuscanyscatours/calendar/Calendar.java | 25 ++ .../calendar/impl/CalendarImpl.java | 47 +++ .../main/resources/META-INF/sca-contribution.xml | 23 ++ .../java/scatours/calendar/CalendarTestCase.java | 57 +++ .../test/resources/META-INF/sca-contribution.xml | 23 ++ .../calendar/src/test/resources/calendar.composite | 28 ++ .../contributions/car/build.xml | 25 ++ .../travelsample-1.0-RC3/contributions/car/pom.xml | 57 +++ .../java/com/tuscanyscatours/car/impl/CarImpl.java | 91 +++++ .../java/com/tuscanyscatours/car/impl/CarInfo.java | 118 ++++++ .../main/resources/META-INF/sca-contribution.xml | 23 ++ .../contributions/common/build.xml | 22 ++ .../contributions/common/pom.xml | 50 +++ .../main/java/com/tuscanyscatours/common/Book.java | 27 ++ .../java/com/tuscanyscatours/common/Search.java | 36 ++ .../com/tuscanyscatours/common/SearchCallback.java | 28 ++ .../java/com/tuscanyscatours/common/TripItem.java | 242 +++++++++++++ .../java/com/tuscanyscatours/common/TripLeg.java | 85 +++++ .../main/resources/META-INF/sca-contribution.xml | 22 ++ .../creditcard-payment-jaxb-policy/build.xml | 30 ++ .../creditcard-payment-jaxb-policy/pom.xml | 149 ++++++++ .../creditcard/impl/CreditCardPaymentImpl.java | 46 +++ .../src/main/resources/CreditCardPayment.wsdl | 134 +++++++ .../main/resources/META-INF/sca-contribution.xml | 23 ++ .../src/main/resources/creditcard.composite | 33 ++ .../src/main/resources/definitions.xml | 34 ++ .../creditcard/CreditCardPaymentTestCase.java | 100 ++++++ .../creditcard-payment-jaxb/build.xml | 30 ++ .../contributions/creditcard-payment-jaxb/pom.xml | 149 ++++++++ .../creditcard/impl/CreditCardPaymentImpl.java | 46 +++ .../src/main/resources/CreditCardPayment.wsdl | 134 +++++++ .../main/resources/META-INF/sca-contribution.xml | 23 ++ .../src/main/resources/creditcard.composite | 33 ++ .../creditcard/CreditCardPaymentTestCase.java | 100 ++++++ .../contributions/creditcard-payment-sdo/build.xml | 31 ++ .../contributions/creditcard-payment-sdo/pom.xml | 149 ++++++++ .../payment/creditcard/CreditCardPayment.java | 52 +++ .../creditcard/impl/CreditCardPaymentImpl.java | 46 +++ .../src/main/resources/CreditCardPayment.wsdl | 117 ++++++ .../main/resources/META-INF/sca-contribution.xml | 23 ++ .../src/main/resources/creditcard.composite | 33 ++ .../creditcard/CreditCardPaymentTestCase.java | 80 +++++ .../creditcard-payment-webapp/build.xml | 154 ++++++++ .../creditcard-payment-webapp/pom.xml | 72 ++++ .../src/main/resources/CreditCardPayment.wsdl | 134 +++++++ .../src/main/webapp/META-INF/sca-contribution.xml | 23 ++ .../webapp/META-INF/sca-deployables/web.composite | 43 +++ .../src/main/webapp/WEB-INF/web.xml | 42 +++ .../src/main/webapp/creditcard.jsp | 71 ++++ .../contributions/currency-corba/build.xml | 22 ++ .../contributions/currency-corba/pom.xml | 51 +++ .../main/resources/META-INF/sca-contribution.xml | 23 ++ .../resources/currency-converter-corba.composite | 32 ++ .../contributions/currency-jms/build.xml | 22 ++ .../contributions/currency-jms/pom.xml | 71 ++++ .../main/resources/META-INF/sca-contribution.xml | 23 ++ .../resources/currency-converter-jms.composite | 37 ++ .../contributions/currency-jsp/build.xml | 97 +++++ .../contributions/currency-jsp/pom.xml | 58 +++ .../webapp/META-INF/sca-deployables/web.composite | 34 ++ .../currency-jsp/src/main/webapp/WEB-INF/web.xml | 42 +++ .../src/main/webapp/currency-converter.jsp | 49 +++ .../contributions/currency-rmi/build.xml | 22 ++ .../contributions/currency-rmi/pom.xml | 51 +++ .../main/resources/META-INF/sca-contribution.xml | 23 ++ .../resources/currency-converter-rmi.composite | 32 ++ .../contributions/currency-servlet/build.xml | 100 ++++++ .../contributions/currency-servlet/pom.xml | 72 ++++ .../servlet/CurrencyConverterServlet.java | 73 ++++ .../webapp/META-INF/sca-deployables/web.composite | 34 ++ .../src/main/webapp/WEB-INF/web.xml | 52 +++ .../contributions/currency-ws/build.xml | 22 ++ .../contributions/currency-ws/pom.xml | 51 +++ .../main/resources/META-INF/sca-contribution.xml | 23 ++ .../main/resources/currency-converter-ws.composite | 31 ++ .../contributions/currency/build.xml | 22 ++ .../contributions/currency/pom.xml | 57 +++ .../currencyconverter/CurrencyConverter.java | 33 ++ .../impl/CurrencyConverterImpl.java | 53 +++ .../main/resources/META-INF/sca-contribution.xml | 23 ++ .../main/resources/currency-converter.composite | 28 ++ .../contributions/databinding-client/build.xml | 25 ++ .../contributions/databinding-client/pom.xml | 48 +++ .../src/main/java/scatours/client/TestClient.java | 40 +++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../src/main/resources/client.composite | 28 ++ .../contributions/emailgateway/build.xml | 30 ++ .../contributions/emailgateway/pom.xml | 154 ++++++++ .../emailgateway/impl/EmailGatewayImpl.java | 38 ++ .../src/main/resources/EmailGateway.wsdl | 89 +++++ .../main/resources/META-INF/sca-contribution.xml | 25 ++ .../src/main/resources/emailgateway.composite | 32 ++ .../emailgateway/EmailGatewayTestCase.java | 76 ++++ .../client/impl/EmailGatewayClientImpl.java | 41 +++ .../test/resources/META-INF/sca-contribution.xml | 25 ++ .../src/test/resources/emailgateway-test.composite | 32 ++ .../contributions/feed-logger/build.xml | 22 ++ .../contributions/feed-logger/pom.xml | 68 ++++ .../com/tuscanyscatours/feedlogger/FeedLogger.java | 30 ++ .../feedlogger/impl/FeedLoggerImpl.java | 99 +++++ .../main/resources/META-INF/sca-contribution.xml | 21 ++ .../src/main/resources/feed-logger.composite | 40 +++ .../contributions/flight/build.xml | 25 ++ .../contributions/flight/pom.xml | 57 +++ .../tuscanyscatours/flight/impl/FlightImpl.java | 121 +++++++ .../tuscanyscatours/flight/impl/FlightInfo.java | 140 ++++++++ .../main/resources/META-INF/sca-contribution.xml | 23 ++ .../contributions/fullapp-bespoketrip/build.xml | 22 ++ .../contributions/fullapp-bespoketrip/pom.xml | 34 ++ .../main/resources/META-INF/sca-contribution.xml | 28 ++ .../main/resources/fullapp-bespoketrip.composite | 63 ++++ .../contributions/fullapp-coordination/build.xml | 22 ++ .../contributions/fullapp-coordination/pom.xml | 34 ++ .../main/resources/META-INF/sca-contribution.xml | 30 ++ .../main/resources/fullapp-coordination.composite | 72 ++++ .../contributions/fullapp-currency/build.xml | 22 ++ .../contributions/fullapp-currency/pom.xml | 34 ++ .../main/resources/META-INF/sca-contribution.xml | 25 ++ .../src/main/resources/fullapp-currency.composite | 28 ++ .../contributions/fullapp-packagedtrip/build.xml | 22 ++ .../contributions/fullapp-packagedtrip/pom.xml | 34 ++ .../main/resources/META-INF/sca-contribution.xml | 25 ++ .../main/resources/fullapp-packagedtrip.composite | 37 ++ .../contributions/fullapp-shoppingcart/build.xml | 22 ++ .../contributions/fullapp-shoppingcart/pom.xml | 34 ++ .../main/resources/META-INF/sca-contribution.xml | 26 ++ .../main/resources/fullapp-shoppingcart.composite | 36 ++ .../contributions/fullapp-ui/build.xml | 22 ++ .../contributions/fullapp-ui/pom.xml | 34 ++ .../main/resources/META-INF/sca-contribution.xml | 28 ++ .../src/main/resources/fullapp-ui.composite | 58 +++ .../fullapp-ui/src/main/resources/scatours.html | 399 +++++++++++++++++++++ .../fullapp-ui/src/main/resources/scatours.odg | Bin 0 -> 11880 bytes .../fullapp-ui/src/main/resources/scatours.png | Bin 0 -> 16554 bytes .../fullapp-ui/src/main/resources/style.css | 135 +++++++ .../contributions/help-pages/build.xml | 22 ++ .../contributions/help-pages/pom.xml | 50 +++ .../main/resources/META-INF/sca-contribution.xml | 22 ++ .../src/main/resources/help-pages.composite | 32 ++ .../main/resources/help_pages/BookingAHoliday.html | 34 ++ .../main/resources/help_pages/BookingAHotel.html | 34 ++ .../main/resources/help_pages/MakingPayments.html | 34 ++ .../src/main/resources/help_pages/index.html | 59 +++ .../contributions/hotel/build.xml | 25 ++ .../contributions/hotel/pom.xml | 49 +++ .../java/com/tuscanyscatours/hotel/HotelInfo.java | 118 ++++++ .../com/tuscanyscatours/hotel/HotelManagement.java | 24 ++ .../com/tuscanyscatours/hotel/impl/HotelImpl.java | 105 ++++++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../contributions/interaction-client/build.xml | 28 ++ .../contributions/interaction-client/pom.xml | 77 ++++ .../impl/InteractionConversationClientImpl.java | 73 ++++ .../client/impl/InteractionLocalClientImpl.java | 53 +++ .../impl/InteractionOneWayCallbackClientImpl.java | 78 ++++ .../client/impl/InteractionRemoteClientImpl.java | 64 ++++ .../impl/InteractionRequestResponseClientImpl.java | 39 ++ .../main/resources/META-INF/sca-contribution.xml | 30 ++ .../src/main/resources/client.composite | 77 ++++ .../interaction-service-remote/build.xml | 22 ++ .../interaction-service-remote/pom.xml | 34 ++ .../main/resources/META-INF/sca-contribution.xml | 26 ++ .../src/main/resources/service.composite | 48 +++ .../contributions/introducing-client/build.xml | 25 ++ .../contributions/introducing-client/pom.xml | 49 +++ .../java/scatours/client/impl/TestClientImpl.java | 47 +++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../src/main/resources/client.composite | 29 ++ .../contributions/introducing-tours/build.xml | 22 ++ .../contributions/introducing-tours/pom.xml | 42 +++ .../src/main/java/com/goodvaluetrips/Trips.java | 26 ++ .../main/java/com/tuscanyscatours/Bookings.java | 26 ++ .../main/java/com/tuscanyscatours/Checkout.java | 28 ++ .../src/main/java/com/tuscanyscatours/Updates.java | 26 ++ .../com/tuscanyscatours/impl/ShoppingCartImpl.java | 49 +++ .../com/tuscanyscatours/impl/TripBookingImpl.java | 39 ++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../src/main/resources/tours.composite | 46 +++ .../contributions/introducing-trips/build.xml | 22 ++ .../contributions/introducing-trips/pom.xml | 42 +++ .../src/main/java/com/goodvaluetrips/Trips.java | 26 ++ .../com/goodvaluetrips/impl/TripProviderImpl.java | 28 ++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../src/main/resources/trips.composite | 30 ++ .../contributions/notification-corba/build.xml | 22 ++ .../contributions/notification-corba/pom.xml | 43 +++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../main/resources/notification-corba.composite | 36 ++ .../contributions/notification-ejb/build.xml | 22 ++ .../contributions/notification-ejb/pom.xml | 43 +++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../src/main/resources/notification-ejb.composite | 35 ++ .../contributions/notification-jms/build.xml | 22 ++ .../contributions/notification-jms/pom.xml | 43 +++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../src/main/resources/notification-jms.composite | 41 +++ .../contributions/notification-rmi/build.xml | 22 ++ .../contributions/notification-rmi/pom.xml | 43 +++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../src/main/resources/notification-rmi.composite | 36 ++ .../contributions/notification-ws/build.xml | 22 ++ .../contributions/notification-ws/pom.xml | 43 +++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../src/main/resources/notification-ws.composite | 35 ++ .../contributions/notification/build.xml | 22 ++ .../contributions/notification/pom.xml | 49 +++ .../tuscanyscatours/notification/Notification.java | 26 ++ .../notification/impl/NotificationImpl.java | 58 +++ .../com/tuscanyscatours/smsgateway/SMSGateway.java | 30 ++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../contributions/payment-bpel-process/build.xml | 23 ++ .../contributions/payment-bpel-process/pom.xml | 46 +++ .../src/main/resources/CreditCardPayment.wsdl | 117 ++++++ .../src/main/resources/EmailGateway.wsdl | 89 +++++ .../main/resources/META-INF/sca-contribution.xml | 22 ++ .../src/main/resources/Payment.wsdl | 83 +++++ .../src/main/resources/payment.bpel | 161 +++++++++ .../contributions/payment-bpel/build.xml | 49 +++ .../contributions/payment-bpel/log4j.properties | 36 ++ .../contributions/payment-bpel/pom.xml | 214 +++++++++++ .../src/main/resources/CreditCardPayment.wsdl | 117 ++++++ .../src/main/resources/EmailGateway.wsdl | 89 +++++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../payment-bpel/src/main/resources/Payment.wsdl | 83 +++++ .../src/main/resources/payment.composite | 40 +++ .../java/scatours/payment/PaymentTestCase.java | 87 +++++ .../payment/client/impl/PaymentClientImpl.java | 37 ++ .../test/resources/META-INF/sca-contribution.xml | 24 ++ .../src/test/resources/payment-client.composite | 33 ++ .../contributions/payment-groovy/build.xml | 35 ++ .../contributions/payment-groovy/pom.xml | 161 +++++++++ .../src/main/resources/EmailGateway.wsdl | 89 +++++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../payment-groovy/src/main/resources/Payment.wsdl | 83 +++++ .../src/main/resources/payment.composite | 38 ++ .../src/main/resources/payment/PaymentImpl.groovy | 31 ++ .../java/scatours/payment/PaymentTestCase.java | 77 ++++ .../payment/client/impl/PaymentClientImpl.java | 37 ++ .../test/resources/META-INF/sca-contribution.xml | 24 ++ .../src/test/resources/payment-client.composite | 32 ++ .../contributions/payment-java-callback/build.xml | 30 ++ .../contributions/payment-java-callback/pom.xml | 153 ++++++++ .../com/tuscanyscatours/customer/Customer.java | 70 ++++ .../customer/CustomerNotFoundException.java | 57 +++ .../tuscanyscatours/customer/CustomerRegistry.java | 39 ++ .../customer/impl/CustomerRegistryImpl.java | 114 ++++++ .../tuscanyscatours/emailgateway/EmailGateway.java | 30 ++ .../emailgateway/impl/EmailGatewayImpl.java | 37 ++ .../payment/creditcard/AddressType.java | 191 ++++++++++ .../payment/creditcard/Authorize.java | 101 ++++++ .../payment/creditcard/AuthorizeFault.java | 81 +++++ .../creditcard/AuthorizeFault_Exception.java | 71 ++++ .../payment/creditcard/AuthorizeResponse.java | 81 +++++ .../payment/creditcard/CardCompany.java | 31 ++ .../payment/creditcard/CreditCardConfirm.java | 27 ++ .../payment/creditcard/CreditCardDetailsType.java | 219 +++++++++++ .../payment/creditcard/CreditCardPayment.java | 31 ++ .../creditcard/CreditCardPaymentConfirm.java | 31 ++ .../payment/creditcard/CreditCardSecurity.java | 27 ++ .../payment/creditcard/CreditCardTypeType.java | 74 ++++ .../payment/creditcard/PayerType.java | 107 ++++++ .../payment/creditcard/impl/CardCompanyImpl.java | 60 ++++ .../impl/CreditCardPaymentCallbackImpl.java | 78 ++++ .../impl/CreditCardPaymentConfirmImpl.java | 48 +++ .../payment/impl/CreditCardSecurityImpl.java | 38 ++ .../payment/impl/PaymentCallbackIDImpl.java | 90 +++++ .../payment/impl/PaymentCallbackImpl.java | 78 ++++ .../payment/impl/PaymentCallbackRedirectImpl.java | 83 +++++ .../payment/impl/PaymentConfirmImpl.java | 77 ++++ .../src/main/resources/CreditCardPayment.wsdl | 132 +++++++ .../main/resources/META-INF/sca-contribution.xml | 23 ++ .../src/main/resources/Payment.wsdl | 83 +++++ .../src/main/resources/definitions.xml | 34 ++ .../src/main/resources/payment.composite | 118 ++++++ .../java/scatours/payment/PaymentTestCase.java | 111 ++++++ .../contributions/payment-java-policy/build.xml | 35 ++ .../contributions/payment-java-policy/pom.xml | 195 ++++++++++ .../com/tuscanyscatours/customer/Customer.java | 70 ++++ .../customer/CustomerNotFoundException.java | 57 +++ .../tuscanyscatours/customer/CustomerRegistry.java | 39 ++ .../customer/impl/CustomerRegistryImpl.java | 115 ++++++ .../tuscanyscatours/emailgateway/EmailGateway.java | 30 ++ .../emailgateway/impl/EmailGatewayImpl.java | 37 ++ .../tuscanyscatours/payment/impl/PaymentImpl.java | 74 ++++ .../src/main/resources/CreditCardPayment.wsdl | 132 +++++++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../src/main/resources/Payment.wsdl | 83 +++++ .../src/main/resources/definitions.xml | 48 +++ .../src/main/resources/payment.composite | 48 +++ .../java/scatours/payment/PaymentTestCase.java | 89 +++++ .../payment-java-reference-pass/build.xml | 30 ++ .../payment-java-reference-pass/pom.xml | 153 ++++++++ .../com/tuscanyscatours/customer/Customer.java | 70 ++++ .../customer/CustomerNotFoundException.java | 57 +++ .../tuscanyscatours/customer/CustomerRegistry.java | 39 ++ .../customer/impl/CustomerRegistryImpl.java | 114 ++++++ .../tuscanyscatours/emailgateway/EmailGateway.java | 30 ++ .../emailgateway/impl/EmailGatewayImpl.java | 37 ++ .../payment/creditcard/AddressType.java | 191 ++++++++++ .../payment/creditcard/Authorize.java | 101 ++++++ .../payment/creditcard/AuthorizeFault.java | 81 +++++ .../creditcard/AuthorizeFault_Exception.java | 71 ++++ .../payment/creditcard/AuthorizeResponse.java | 81 +++++ .../payment/creditcard/CreditCardDetailsType.java | 219 +++++++++++ .../payment/creditcard/CreditCardPayment.java | 36 ++ .../payment/creditcard/CreditCardTypeType.java | 74 ++++ .../payment/creditcard/PayerType.java | 107 ++++++ .../creditcard/impl/CreditCardPaymentImpl.java | 47 +++ .../tuscanyscatours/payment/impl/PaymentImpl.java | 76 ++++ .../src/main/resources/CreditCardPayment.wsdl | 132 +++++++ .../main/resources/META-INF/sca-contribution.xml | 23 ++ .../src/main/resources/Payment.wsdl | 83 +++++ .../src/main/resources/definitions.xml | 34 ++ .../src/main/resources/payment.composite | 49 +++ .../java/scatours/payment/PaymentTestCase.java | 79 ++++ .../contributions/payment-java/build.xml | 35 ++ .../contributions/payment-java/pom.xml | 171 +++++++++ .../com/tuscanyscatours/customer/Customer.java | 70 ++++ .../customer/CustomerNotFoundException.java | 57 +++ .../tuscanyscatours/customer/CustomerRegistry.java | 39 ++ .../customer/impl/CustomerRegistryImpl.java | 115 ++++++ .../tuscanyscatours/emailgateway/EmailGateway.java | 30 ++ .../emailgateway/impl/EmailGatewayImpl.java | 37 ++ .../tuscanyscatours/payment/impl/PaymentImpl.java | 69 ++++ .../src/main/resources/CreditCardPayment.wsdl | 132 +++++++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../payment-java/src/main/resources/Payment.wsdl | 83 +++++ .../src/main/resources/definitions.xml | 34 ++ .../src/main/resources/payment.composite | 46 +++ .../java/scatours/payment/PaymentTestCase.java | 79 ++++ .../contributions/payment-python/build.xml | 35 ++ .../contributions/payment-python/pom.xml | 161 +++++++++ .../src/main/resources/EmailGateway.wsdl | 89 +++++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../payment-python/src/main/resources/Payment.wsdl | 83 +++++ .../src/main/resources/payment.composite | 38 ++ .../src/main/resources/payment/PaymentImpl.py | 26 ++ .../java/scatours/payment/PaymentTestCase.java | 77 ++++ .../payment/client/impl/PaymentClientImpl.java | 37 ++ .../test/resources/META-INF/sca-contribution.xml | 24 ++ .../src/test/resources/payment-client.composite | 32 ++ .../contributions/payment-spring-policy/build.xml | 40 +++ .../contributions/payment-spring-policy/pom.xml | 206 +++++++++++ .../com/tuscanyscatours/customer/Customer.java | 70 ++++ .../customer/CustomerNotFoundException.java | 57 +++ .../tuscanyscatours/customer/CustomerRegistry.java | 39 ++ .../customer/impl/CustomerRegistryImpl.java | 113 ++++++ .../emailgateway/impl/EmailGatewayImpl.java | 32 ++ .../tuscanyscatours/payment/impl/PaymentImpl.java | 77 ++++ .../src/main/resources/CreditCardPayment.wsdl | 118 ++++++ .../src/main/resources/EmailGateway.wsdl | 89 +++++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../src/main/resources/Payment-context.xml | 33 ++ .../src/main/resources/Payment.wsdl | 83 +++++ .../src/main/resources/definitions.xml | 35 ++ .../src/main/resources/payment.composite | 45 +++ .../java/scatours/payment/PaymentTestCase.java | 74 ++++ .../payment/client/impl/PaymentClientImpl.java | 37 ++ .../test/resources/META-INF/sca-contribution.xml | 24 ++ .../src/test/resources/payment-client.composite | 31 ++ .../contributions/payment-spring-scatag/build.xml | 40 +++ .../contributions/payment-spring-scatag/pom.xml | 206 +++++++++++ .../emailgateway/impl/EmailGatewayImpl.java | 32 ++ .../tuscanyscatours/payment/impl/PaymentImpl.java | 76 ++++ .../src/main/resources/CreditCardPayment.wsdl | 118 ++++++ .../src/main/resources/EmailGateway.wsdl | 89 +++++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../src/main/resources/Payment-context.xml | 44 +++ .../src/main/resources/Payment.wsdl | 83 +++++ .../src/main/resources/payment.composite | 35 ++ .../java/scatours/payment/PaymentTestCase.java | 75 ++++ .../payment/client/impl/PaymentClientImpl.java | 37 ++ .../test/resources/META-INF/sca-contribution.xml | 24 ++ .../src/test/resources/payment-client.composite | 31 ++ .../contributions/payment-spring/build.xml | 40 +++ .../contributions/payment-spring/pom.xml | 206 +++++++++++ .../com/tuscanyscatours/customer/Customer.java | 70 ++++ .../customer/CustomerNotFoundException.java | 57 +++ .../tuscanyscatours/customer/CustomerRegistry.java | 39 ++ .../customer/impl/CustomerRegistryImpl.java | 115 ++++++ .../emailgateway/impl/EmailGatewayImpl.java | 32 ++ .../tuscanyscatours/payment/impl/PaymentImpl.java | 77 ++++ .../src/main/resources/CreditCardPayment.wsdl | 118 ++++++ .../src/main/resources/EmailGateway.wsdl | 89 +++++ .../main/resources/META-INF/sca-contribution.xml | 24 ++ .../src/main/resources/Payment-context.xml | 39 ++ .../payment-spring/src/main/resources/Payment.wsdl | 83 +++++ .../src/main/resources/payment.composite | 35 ++ .../java/scatours/payment/PaymentTestCase.java | 74 ++++ .../payment/client/impl/PaymentClientImpl.java | 37 ++ .../test/resources/META-INF/sca-contribution.xml | 24 ++ .../src/test/resources/payment-client.composite | 31 ++ .../contributions/policy-client/build.xml | 33 ++ .../contributions/policy-client/pom.xml | 107 ++++++ .../src/main/java/scatours/client/TestClient.java | 60 ++++ .../main/resources/META-INF/sca-contribution.xml | 25 ++ .../policy-client/src/main/resources/Payment.wsdl | 83 +++++ .../src/main/resources/client.composite | 29 ++ .../travelsample-1.0-RC3/contributions/pom.xml | 94 +++++ .../contributions/scatours/build.xml | 28 ++ .../contributions/scatours/pom.xml | 78 ++++ .../java/com/tuscanyscatours/SCAToursBooking.java | 31 ++ .../java/com/tuscanyscatours/SCAToursCart.java | 35 ++ .../java/com/tuscanyscatours/SCAToursSearch.java | 32 ++ .../com/tuscanyscatours/impl/SCAToursImpl.java | 84 +++++ .../main/resources/META-INF/sca-contribution.xml | 27 ++ .../contributions/shoppingcart/build.xml | 33 ++ .../contributions/shoppingcart/pom.xml | 125 +++++++ .../tuscanyscatours/shoppingcart/CartCheckout.java | 26 ++ .../shoppingcart/CartInitialize.java | 30 ++ .../tuscanyscatours/shoppingcart/CartStore.java | 41 +++ .../tuscanyscatours/shoppingcart/CartUpdates.java | 30 ++ .../shoppingcart/impl/CartStoreImpl.java | 70 ++++ .../shoppingcart/impl/ShoppingCartImpl.java | 104 ++++++ .../main/resources/META-INF/sca-contribution.xml | 25 ++ .../shoppingcart/src/main/resources/Payment.wsdl | 83 +++++ .../contributions/travelcatalog/build.xml | 26 ++ .../contributions/travelcatalog/pom.xml | 64 ++++ .../travelcatalog/TravelCatalogSearch.java | 32 ++ .../travelcatalog/impl/TravelCatalogImpl.java | 127 +++++++ .../main/resources/META-INF/sca-contribution.xml | 25 ++ .../contributions/trip-policy/build.xml | 26 ++ .../contributions/trip-policy/pom.xml | 78 ++++ .../com/tuscanyscatours/trip/impl/TripImpl.java | 94 +++++ .../com/tuscanyscatours/trip/impl/TripInfo.java | 140 ++++++++ .../main/resources/META-INF/sca-contribution.xml | 25 ++ .../trip-policy/src/main/resources/definitions.xml | 32 ++ .../trip-policy/src/main/resources/trip.composite | 31 ++ .../src/test/java/scatours/trip/TripTestCase.java | 68 ++++ .../contributions/trip/build.xml | 26 ++ .../contributions/trip/pom.xml | 78 ++++ .../com/tuscanyscatours/trip/impl/TripImpl.java | 94 +++++ .../com/tuscanyscatours/trip/impl/TripInfo.java | 140 ++++++++ .../main/resources/META-INF/sca-contribution.xml | 23 ++ .../src/test/java/scatours/trip/TripTestCase.java | 68 ++++ .../trip/src/test/resources/definitions.xml | 32 ++ .../trip/src/test/resources/trip.composite | 31 ++ .../contributions/tripbooking/build.xml | 26 ++ .../contributions/tripbooking/pom.xml | 63 ++++ .../tuscanyscatours/tripbooking/TripBooking.java | 32 ++ .../tripbooking/impl/TripBookingImpl.java | 91 +++++ .../main/resources/META-INF/sca-contribution.xml | 26 ++ .../contributions/usingsca/build.xml | 22 ++ .../contributions/usingsca/pom.xml | 124 +++++++ .../java/com/tuscanyscahotels/HotelOffers.java | 26 ++ .../com/tuscanyscahotels/impl/HotelOffersImpl.java | 35 ++ .../src/main/java/com/tuscanyscatours/Address.java | 172 +++++++++ .../java/com/tuscanyscatours/AirportCodes.java | 28 ++ .../java/com/tuscanyscatours/BillingAddress.java | 174 +++++++++ .../main/java/com/tuscanyscatours/Bookings.java | 26 ++ .../src/main/java/com/tuscanyscatours/Cars.java | 27 ++ .../com/tuscanyscatours/CurrencyConverter.java | 27 ++ .../java/com/tuscanyscatours/CustomerInfo.java | 27 ++ .../src/main/java/com/tuscanyscatours/Flights.java | 27 ++ .../src/main/java/com/tuscanyscatours/Hotels.java | 27 ++ .../usingsca/impl/CarPartnerImpl.java | 36 ++ .../usingsca/impl/CarVendorImpl.java | 34 ++ .../usingsca/impl/CurrencyConverterImpl.java | 45 +++ .../usingsca/impl/CustomerImpl.java | 47 +++ .../usingsca/impl/FlightPartnerImpl.java | 31 ++ .../usingsca/impl/HotelPartnerImpl.java | 31 ++ .../usingsca/impl/TripBookingImpl.java | 73 ++++ .../client/impl/AirportCodesClientImpl.java | 36 ++ .../scatours/client/impl/BookingsClientImpl.java | 36 ++ .../client/impl/BookingsZeroClientImpl.java | 36 ++ .../client/impl/CarBookingsClientImpl.java | 38 ++ .../scatours/client/impl/ConverterClientImpl.java | 43 +++ .../client/impl/HotelOffersClientImpl.java | 36 ++ .../scatours/client/impl/Orders1ClientImpl.java | 36 ++ .../scatours/client/impl/Orders2ClientImpl.java | 38 ++ .../usingsca/src/main/resources/address.xsd | 41 +++ .../src/main/resources/airportcodes.composite | 26 ++ .../src/main/resources/bookings1.composite | 42 +++ .../src/main/resources/bookings2.composite | 42 +++ .../src/main/resources/bookings3.composite | 39 ++ .../src/main/resources/bookings4.composite | 42 +++ .../src/main/resources/carbookings1.composite | 36 ++ .../src/main/resources/carbookings2.composite | 37 ++ .../src/main/resources/carbookings3.composite | 36 ++ .../src/main/resources/converter.composite | 35 ++ .../src/main/resources/hotelsdomain.composite | 38 ++ .../usingsca/src/main/resources/orders1.composite | 37 ++ .../usingsca/src/main/resources/orders2.composite | 46 +++ .../usingsca/src/main/resources/orders2.xsd | 24 ++ .../test-clients/airportcodes-client.composite | 33 ++ .../test-clients/bookings1-client.composite | 33 ++ .../test-clients/bookings2-client.composite | 33 ++ .../test-clients/bookings3-client.composite | 33 ++ .../test-clients/bookings4-client.composite | 35 ++ .../test-clients/carbookings1-client.composite | 33 ++ .../test-clients/carbookings2-client.composite | 33 ++ .../test-clients/carbookings3-client.composite | 33 ++ .../test-clients/converter-client.composite | 34 ++ .../test-clients/hotelsdomain-client.composite | 34 ++ .../test-clients/orders1-client.composite | 33 ++ .../test-clients/orders2-client.composite | 33 ++ .../test-clients/toursdomain-client.composite | 33 ++ .../src/main/resources/toursdomain.composite | 39 ++ .../test/java/scatours/AirportCodesTestCase.java | 56 +++ .../src/test/java/scatours/BindingsTestCase.java | 56 +++ .../test/java/scatours/CarAutowireTestCase.java | 56 +++ .../src/test/java/scatours/CarPartnerTestCase.java | 56 +++ .../test/java/scatours/CarWireElementTestCase.java | 56 +++ .../scatours/ComplexPropertyElementTestCase.java | 56 +++ .../java/scatours/ComplexPropertyTypeTestCase.java | 56 +++ .../java/scatours/CurrencyConverterTestCase.java | 56 +++ .../test/java/scatours/MultiDomainTestCase.java | 65 ++++ .../test/java/scatours/TripAutowireTestCase.java | 56 +++ .../test/java/scatours/TripBookingTestCase.java | 56 +++ .../java/scatours/TripWireElementTestCase.java | 56 +++ .../usingsca/src/test/resources/jndi.properties | 38 ++ 554 files changed, 30761 insertions(+) create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/BlogPost.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/feed/impl/AtomBlogFeedImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/feed/impl/BaseBlogFeedImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/feed/impl/GenericBlogFeedImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/feed/impl/RSSBlogFeedImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/resources/blog-feed.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/java/scatours/Bookings.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/java/scatours/Checkout.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/java/scatours/impl/ApplClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/java/scatours/impl/ToursClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/resources/tours-appl-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/resources/tours-impl-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/resources/tours-impl-include-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/test/java/scatours/BuildingBlocksApplTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/test/java/scatours/BuildingBlocksImplIncludeTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/test/java/scatours/BuildingBlocksImplTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/test/resources/jndi.properties create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/budgettours/Tours.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/budgettours/impl/TourProviderImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/goodvaluetrips/Trips.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/Bookings.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/Checkout.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/Updates.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/impl/ShoppingCartImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/impl/TripBookingImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/scatours/impl/TripProviderImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/tours-appl.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/tours-impl-include.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/tours-impl.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/tours.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/test/java/scatours/BuildingBlocksImplIncludeTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/test/java/scatours/BuildingBlocksImplTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/main/java/com/tuscanyscatours/calendar/Calendar.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/main/java/com/tuscanyscatours/calendar/impl/CalendarImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/test/java/scatours/calendar/CalendarTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/test/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/test/resources/calendar.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/src/main/java/com/tuscanyscatours/car/impl/CarImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/src/main/java/com/tuscanyscatours/car/impl/CarInfo.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/Book.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/Search.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/SearchCallback.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/TripItem.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/TripLeg.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/resources/CreditCardPayment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/resources/creditcard.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/resources/definitions.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/test/java/scatours/payment/creditcard/CreditCardPaymentTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/main/resources/CreditCardPayment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/main/resources/creditcard.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/test/java/scatours/payment/creditcard/CreditCardPaymentTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPayment.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/resources/CreditCardPayment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/resources/creditcard.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/test/java/scatours/payment/creditcard/CreditCardPaymentTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/resources/CreditCardPayment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/webapp/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/webapp/META-INF/sca-deployables/web.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/webapp/WEB-INF/web.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/webapp/creditcard.jsp create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-corba/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-corba/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-corba/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-corba/src/main/resources/currency-converter-corba.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jms/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jms/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jms/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jms/src/main/resources/currency-converter-jms.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/src/main/webapp/META-INF/sca-deployables/web.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/src/main/webapp/WEB-INF/web.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/src/main/webapp/currency-converter.jsp create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-rmi/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-rmi/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-rmi/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-rmi/src/main/resources/currency-converter-rmi.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/src/main/java/com/tuscanyscatours/currencyconverter/servlet/CurrencyConverterServlet.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/src/main/webapp/META-INF/sca-deployables/web.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/src/main/webapp/WEB-INF/web.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-ws/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-ws/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-ws/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-ws/src/main/resources/currency-converter-ws.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/src/main/java/com/tuscanyscatours/currencyconverter/CurrencyConverter.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/src/main/java/com/tuscanyscatours/currencyconverter/impl/CurrencyConverterImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/src/main/resources/currency-converter.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/src/main/java/scatours/client/TestClient.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/src/main/resources/client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/main/resources/EmailGateway.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/main/resources/emailgateway.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/test/java/scatours/emailgateway/EmailGatewayTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/test/java/scatours/emailgateway/client/impl/EmailGatewayClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/test/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/test/resources/emailgateway-test.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/src/main/java/com/tuscanyscatours/feedlogger/FeedLogger.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/src/main/java/com/tuscanyscatours/feedlogger/impl/FeedLoggerImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/src/main/resources/feed-logger.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/src/main/java/com/tuscanyscatours/flight/impl/FlightImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/src/main/java/com/tuscanyscatours/flight/impl/FlightInfo.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-bespoketrip/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-bespoketrip/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-bespoketrip/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-bespoketrip/src/main/resources/fullapp-bespoketrip.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-coordination/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-coordination/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-coordination/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-coordination/src/main/resources/fullapp-coordination.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-currency/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-currency/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-currency/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-currency/src/main/resources/fullapp-currency.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-packagedtrip/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-packagedtrip/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-packagedtrip/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-packagedtrip/src/main/resources/fullapp-packagedtrip.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-shoppingcart/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-shoppingcart/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-shoppingcart/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-shoppingcart/src/main/resources/fullapp-shoppingcart.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/fullapp-ui.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/scatours.html create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/scatours.odg create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/scatours.png create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/style.css create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help-pages.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help_pages/BookingAHoliday.html create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help_pages/BookingAHotel.html create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help_pages/MakingPayments.html create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help_pages/index.html create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/src/main/java/com/tuscanyscatours/hotel/HotelInfo.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/src/main/java/com/tuscanyscatours/hotel/HotelManagement.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/src/main/java/com/tuscanyscatours/hotel/impl/HotelImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionConversationClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionLocalClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionOneWayCallbackClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionRemoteClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionRequestResponseClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/resources/client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-service-remote/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-service-remote/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-service-remote/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-service-remote/src/main/resources/service.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/src/main/java/scatours/client/impl/TestClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/src/main/resources/client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/goodvaluetrips/Trips.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/Bookings.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/Checkout.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/Updates.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/impl/ShoppingCartImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/impl/TripBookingImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/resources/tours.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/src/main/java/com/goodvaluetrips/Trips.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/src/main/java/com/goodvaluetrips/impl/TripProviderImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/src/main/resources/trips.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-corba/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-corba/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-corba/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-corba/src/main/resources/notification-corba.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ejb/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ejb/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ejb/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ejb/src/main/resources/notification-ejb.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-jms/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-jms/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-jms/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-jms/src/main/resources/notification-jms.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-rmi/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-rmi/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-rmi/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-rmi/src/main/resources/notification-rmi.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ws/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ws/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ws/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ws/src/main/resources/notification-ws.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/src/main/java/com/tuscanyscatours/notification/Notification.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/src/main/java/com/tuscanyscatours/notification/impl/NotificationImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/src/main/java/com/tuscanyscatours/smsgateway/SMSGateway.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/CreditCardPayment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/EmailGateway.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/Payment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/payment.bpel create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/log4j.properties create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/CreditCardPayment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/EmailGateway.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/Payment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/payment.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/test/java/scatours/payment/PaymentTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/test/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/test/resources/payment-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/EmailGateway.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/Payment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/payment.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/payment/PaymentImpl.groovy create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/test/java/scatours/payment/PaymentTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/test/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/test/resources/payment-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/Customer.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AddressType.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/Authorize.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault_Exception.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeResponse.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CardCompany.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardConfirm.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardDetailsType.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPayment.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPaymentConfirm.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardSecurity.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardTypeType.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/PayerType.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CardCompanyImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentCallbackImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentConfirmImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/CreditCardSecurityImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentCallbackIDImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentCallbackImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentCallbackRedirectImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentConfirmImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/CreditCardPayment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/Payment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/definitions.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/payment.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/test/java/scatours/payment/PaymentTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/customer/Customer.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/CreditCardPayment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/Payment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/definitions.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/payment.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/test/java/scatours/payment/PaymentTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/customer/Customer.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/AddressType.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/Authorize.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault_Exception.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeResponse.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardDetailsType.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPayment.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardTypeType.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/PayerType.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/CreditCardPayment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/Payment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/definitions.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/payment.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/test/java/scatours/payment/PaymentTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/customer/Customer.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/CreditCardPayment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/Payment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/definitions.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/payment.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/test/java/scatours/payment/PaymentTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/EmailGateway.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/Payment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/payment.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/payment/PaymentImpl.py create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/test/java/scatours/payment/PaymentTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/test/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/test/resources/payment-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/Customer.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/CreditCardPayment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/EmailGateway.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/Payment-context.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/Payment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/definitions.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/payment.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/test/java/scatours/payment/PaymentTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/test/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/test/resources/payment-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/CreditCardPayment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/EmailGateway.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/Payment-context.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/Payment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/payment.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/test/java/scatours/payment/PaymentTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/test/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/test/resources/payment-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/customer/Customer.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/CreditCardPayment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/EmailGateway.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/Payment-context.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/Payment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/payment.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/test/java/scatours/payment/PaymentTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/test/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/test/resources/payment-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/src/main/java/scatours/client/TestClient.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/src/main/resources/Payment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/src/main/resources/client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/java/com/tuscanyscatours/SCAToursBooking.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/java/com/tuscanyscatours/SCAToursCart.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/java/com/tuscanyscatours/SCAToursSearch.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/java/com/tuscanyscatours/impl/SCAToursImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/CartCheckout.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/CartInitialize.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/CartStore.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/CartUpdates.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/impl/CartStoreImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/impl/ShoppingCartImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/resources/Payment.wsdl create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/src/main/java/com/tuscanyscatours/travelcatalog/TravelCatalogSearch.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/src/main/java/com/tuscanyscatours/travelcatalog/impl/TravelCatalogImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/java/com/tuscanyscatours/trip/impl/TripImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/java/com/tuscanyscatours/trip/impl/TripInfo.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/resources/definitions.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/resources/trip.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/test/java/scatours/trip/TripTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/main/java/com/tuscanyscatours/trip/impl/TripImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/main/java/com/tuscanyscatours/trip/impl/TripInfo.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/test/java/scatours/trip/TripTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/test/resources/definitions.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/test/resources/trip.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/src/main/java/com/tuscanyscatours/tripbooking/TripBooking.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/src/main/java/com/tuscanyscatours/tripbooking/impl/TripBookingImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/src/main/resources/META-INF/sca-contribution.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/build.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/pom.xml create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscahotels/HotelOffers.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscahotels/impl/HotelOffersImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Address.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/AirportCodes.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/BillingAddress.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Bookings.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Cars.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/CurrencyConverter.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/CustomerInfo.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Flights.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Hotels.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/CarPartnerImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/CarVendorImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/CurrencyConverterImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/CustomerImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/FlightPartnerImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/HotelPartnerImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/TripBookingImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/AirportCodesClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/BookingsClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/BookingsZeroClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/CarBookingsClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/ConverterClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/HotelOffersClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/Orders1ClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/Orders2ClientImpl.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/address.xsd create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/airportcodes.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/bookings1.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/bookings2.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/bookings3.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/bookings4.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/carbookings1.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/carbookings2.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/carbookings3.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/converter.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/hotelsdomain.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/orders1.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/orders2.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/orders2.xsd create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/airportcodes-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/bookings1-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/bookings2-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/bookings3-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/bookings4-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/carbookings1-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/carbookings2-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/carbookings3-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/converter-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/hotelsdomain-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/orders1-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/orders2-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/toursdomain-client.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/toursdomain.composite create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/AirportCodesTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/BindingsTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/CarAutowireTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/CarPartnerTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/CarWireElementTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/ComplexPropertyElementTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/ComplexPropertyTypeTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/CurrencyConverterTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/MultiDomainTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/TripAutowireTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/TripBookingTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/TripWireElementTestCase.java create mode 100644 sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/resources/jndi.properties (limited to 'sca-java-1.x/tags/travelsample-1.0-RC3/contributions') diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/build.xml new file mode 100644 index 0000000000..2f0f6b12a5 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/pom.xml new file mode 100644 index 0000000000..8a214d1057 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/pom.xml @@ -0,0 +1,68 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-blog-feed + Apache Tuscany SCA Tours Blog Feed Contribution + + + + org.apache.tuscany.sca + tuscany-data-api + ${tuscany.version} + + + + org.apache.tuscany.sca + tuscany-binding-atom-abdera + ${tuscany.version} + + + + org.apache.tuscany.sca + tuscany-binding-rss-rome + ${tuscany.version} + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + junit + junit + 4.5 + test + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/BlogPost.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/BlogPost.java new file mode 100644 index 0000000000..f93fe59b9d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/BlogPost.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 com.tuscanyscatours.blog; + +import java.util.Date; + +/** + * Bean for blog posts. + */ +public class BlogPost { + + private final String author; + private final String title; + private final String content; + private final Date updated; + private final String link; + private final String related; + + public BlogPost(String author, String title, String content, Date updated, String link, String related) { + this.author = author; + this.title = title; + this.content = content; + this.updated = updated; + this.link = link; + this.related = related; + } + + public String getAuthor() { + return author; + } + + public String getTitle() { + return title; + } + + public String getContent() { + return content; + } + + public Date getUpdated() { + return updated; + } + + public String getLink() { + return link; + } + + public String getRelated() { + return related; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/feed/impl/AtomBlogFeedImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/feed/impl/AtomBlogFeedImpl.java new file mode 100644 index 0000000000..b7a392f927 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/feed/impl/AtomBlogFeedImpl.java @@ -0,0 +1,124 @@ +/* + * 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.blog.feed.impl; + +import java.util.List; + +import org.apache.abdera.Abdera; +import org.apache.abdera.factory.Factory; +import org.apache.abdera.model.Entry; +import org.apache.abdera.model.Feed; +import org.apache.tuscany.sca.binding.atom.collection.NotFoundException; + +import com.tuscanyscatours.blog.BlogPost; + +/** + * An Atom feed that implements the org.apache.tuscany.sca.binding.atom.collection.Collection + * interface and uses the Atom APIs to construct the Atom feed. + */ +public class AtomBlogFeedImpl extends BaseBlogFeedImpl implements + org.apache.tuscany.sca.binding.atom.collection.Collection { + + /** + * Gets an Atom feed containing all the blog posts. + * + * @return An Atom feed containing all the blog posts. + */ + public Feed getFeed() { + // Create SCA Tours blog Atom feed + final Factory factory = Abdera.getNewFactory(); + final Feed feed = factory.newFeed(); + feed.setTitle(FEED_TITLE); + feed.setSubtitle(FEED_DESCRIPTION); + feed.addAuthor(FEED_AUTHOR); + + // Get all blog posts and convert to Atom entries + final List blogEntries = getAllBlogPosts(); + for (BlogPost blogEntry : blogEntries) { + final Entry entry = factory.newEntry(); + entry.setId(nextBlogID()); + entry.addAuthor(blogEntry.getAuthor()); + entry.setTitle(blogEntry.getTitle()); + entry.setContentAsHtml(blogEntry.getContent()); + entry.setUpdated(blogEntry.getUpdated()); + entry.addLink(blogEntry.getLink()); + feed.addEntry(entry); + } + + return feed; + } + + /** + * Query the feed. + * + * @param query The query + * @return Always returns null as method not implemented + */ + public Feed query(String query) { + // Not implemented + return null; + } + + /** + * Posts a new entry to the blog. + * + * @param entry The new entry + * @return Always returns null as method not implemented + */ + public Entry post(Entry entry) { + // Not implemented + return null; + } + + /** + * Gets the specified entry from the blog. + * + * @param id ID of the entry to get + * @return Not used + * @throws NotFoundException Always thrown as method not implemented + */ + public Entry get(String id) throws NotFoundException { + // Not implemented + throw new NotFoundException("You are not allowed to update entries"); + } + + /** + * Updates the specified entry on the blog. + * + * @param id ID of the entry to update + * @param entry The new entry + * @throws NotFoundException Always thrown as method not implemented + */ + public void put(String id, Entry entry) throws NotFoundException { + // Not implemented + throw new NotFoundException("You are not allowed to update entries"); + } + + /** + * Deletes the specified entry from the blog. + * + * @param id ID of the entry to delete + * @throws NotFoundException Always thrown as method not implemented + */ + public void delete(String id) throws NotFoundException { + // Not implemented + throw new NotFoundException("You are not allowed to delete entries"); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/feed/impl/BaseBlogFeedImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/feed/impl/BaseBlogFeedImpl.java new file mode 100644 index 0000000000..f132d340ea --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/feed/impl/BaseBlogFeedImpl.java @@ -0,0 +1,88 @@ +/* + * 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.blog.feed.impl; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; + +import com.tuscanyscatours.blog.BlogPost; + +/** + * Base class for all blog feeds that provides the common methods + * that are shared by all the blog feed implementations. + */ +public abstract class BaseBlogFeedImpl { + + /** + * Title of the blog.feed. + */ + protected static final String FEED_TITLE = "Tuscany SCA Tours Blog Feed"; + + /** + * Description of the blog feed. + */ + protected static final String FEED_DESCRIPTION = "Feed contianing the latest blog posts from Tuscany SCA Tours"; + + /** + * Author of the blog feed. + */ + protected static final String FEED_AUTHOR = "SCA Tours CEO"; + + /** + * Used to generate unique IDs for the blog entries. + */ + protected static final AtomicInteger ID_GEN = new AtomicInteger(); + + /** + * Generates the next blog entry ID. + * + * @return Next blog entry ID + */ + protected String nextBlogID() { + return Integer.toString(ID_GEN.incrementAndGet()); + } + + /** + * Retrieves a list of all blog posts. + * + * @return A list of all blog posts. + */ + public List getAllBlogPosts() { + // Note: To keep things simple, we will just hard code a sample post. + // A proper implementation would load all blog posts from some resource + // such as files or a database. + List blogEntries = new ArrayList(); + + // Create a sample entry + final BlogPost samplePost = + new BlogPost( + FEED_AUTHOR, + "Apache Tuscany in Action book features SCA Tours", + "We are famous as SCA Tours has been featured in the Apache Tuscany in Action book published by Manning", + new Date(), "http://www.manning.com/laws/", null); + + // Add sample post to the list of posts + blogEntries.add(samplePost); + + return blogEntries; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/feed/impl/GenericBlogFeedImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/feed/impl/GenericBlogFeedImpl.java new file mode 100644 index 0000000000..c427b658a4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/feed/impl/GenericBlogFeedImpl.java @@ -0,0 +1,70 @@ +/* + * 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.blog.feed.impl; + +import java.util.List; + +import org.apache.tuscany.sca.data.collection.Entry; +import org.apache.tuscany.sca.data.collection.Item; + +import com.tuscanyscatours.blog.BlogPost; + +/** + * Implementation of the blog feed that uses the Tuscany Data API so + * that it is independent of any Feed APIs such as Atom and RSS. + */ +public class GenericBlogFeedImpl extends BaseBlogFeedImpl { + + /** + * Implementation of the getAll() method from the Tuscany API + * that will return all of the blog posts as generic Tuscany + * feed items. + * + * @return All blog entries + */ + public Entry[] getAll() { + final List posts = getAllBlogPosts(); + + final Entry[] entries = new Entry[posts.size()]; + int i = 0; + for (BlogPost post : posts) { + entries[i++] = convertBlogPostToFeedItem(post); + } + + return entries; + } + + /** + * Converts a blog post to a Tuscany API feed item. + * + * @param post The blog post to convert + * @return The blog post as a Tuscany API feed item + */ + private Entry convertBlogPostToFeedItem(BlogPost post) { + // Convert Blog entry into an Item + final Item item = + new Item(post.getTitle(), post.getContent(), post.getLink(), post.getRelated(), post.getUpdated()); + + // Add item to entry + final Entry entry = new Entry(nextBlogID(), item); + + return entry; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/feed/impl/RSSBlogFeedImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/feed/impl/RSSBlogFeedImpl.java new file mode 100644 index 0000000000..efccffef67 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/java/com/tuscanyscatours/blog/feed/impl/RSSBlogFeedImpl.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.blog.feed.impl; + +import java.util.List; + +import org.apache.tuscany.sca.binding.rss.collection.NotFoundException; + +import com.sun.syndication.feed.synd.SyndContent; +import com.sun.syndication.feed.synd.SyndContentImpl; +import com.sun.syndication.feed.synd.SyndEntry; +import com.sun.syndication.feed.synd.SyndEntryImpl; +import com.sun.syndication.feed.synd.SyndFeed; +import com.sun.syndication.feed.synd.SyndFeedImpl; +import com.tuscanyscatours.blog.BlogPost; + +/** + * An RSS feed that implements the org.apache.tuscany.sca.binding.rss.collection.Collection + * interface and uses the RSS APIs to construct the RSS feed. + */ +public class RSSBlogFeedImpl extends BaseBlogFeedImpl implements + org.apache.tuscany.sca.binding.rss.collection.Collection { + + /** + * Gets an RSS feed containing all the blog posts. + * + * @return An RSS feed containing all the blog posts. + */ + public SyndFeed getFeed() { + // Create SCA Tours blog RSS feed + SyndFeed feed = new SyndFeedImpl(); + feed.setTitle(FEED_TITLE); + feed.setDescription(FEED_DESCRIPTION); + feed.setAuthor(FEED_AUTHOR); + + // Get all blog posts and convert to RSS entries + final List blogEntries = getAllBlogPosts(); + for (BlogPost blogEntry : blogEntries) { + SyndEntry entry = new SyndEntryImpl(); + entry.setUri(nextBlogID()); + entry.setAuthor(blogEntry.getAuthor()); + entry.setTitle(blogEntry.getTitle()); + + SyndContent content = new SyndContentImpl(); + content.setType("text"); + content.setValue(blogEntry.getContent()); + + entry.setPublishedDate(blogEntry.getUpdated()); + entry.setLink(blogEntry.getLink()); + + feed.getEntries().add(entry); + } + + return feed; + } + + /** + * Query the feed. + * + * @param query The query + * @return Always returns null as method not implemented + */ + public SyndFeed query(String query) { + // Not implemented + return null; + } + + public SyndEntry get(String id) throws NotFoundException { + // Not implemented + return null; + } + + public List getAll() throws NotFoundException { + // Not implemented + return null; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..b4152d6e3f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,21 @@ + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/resources/blog-feed.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/resources/blog-feed.composite new file mode 100644 index 0000000000..751fd33cd2 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/blog-feed/src/main/resources/blog-feed.composite @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/build.xml new file mode 100644 index 0000000000..b2fcc9d3b5 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/build.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/build.xml new file mode 100644 index 0000000000..9ea7438516 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/pom.xml new file mode 100644 index 0000000000..0764dffed3 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/pom.xml @@ -0,0 +1,125 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-buildingblocks-client + Apache Tuscany SCA Tours Building Blocks Client Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + scatours-contribution-buildingblocks + ${pom.version} + provided + + + + org.apache.tuscany.sca + scatours-contribution-introducing-trips + ${pom.version} + provided + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-jms-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-node-api + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-implementation-node-runtime + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-host-jetty + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-host-jms-asf + ${tuscany.version} + test + + + + org.apache.activemq + activemq-all + 5.2.0 + + + org.apache.activemq + activemq-web-demo + + + test + + + + junit + junit + 4.5 + test + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/java/scatours/Bookings.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/java/scatours/Bookings.java new file mode 100644 index 0000000000..e5e994b73c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/java/scatours/Bookings.java @@ -0,0 +1,26 @@ +/* + * 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; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Bookings { + String newBooking(String trip, int people); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/java/scatours/Checkout.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/java/scatours/Checkout.java new file mode 100644 index 0000000000..519b7779fa --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/java/scatours/Checkout.java @@ -0,0 +1,28 @@ +/* + * 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; + +import java.math.BigDecimal; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Checkout { + void makePayment(BigDecimal amount, String cardInfo); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/java/scatours/impl/ApplClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/java/scatours/impl/ApplClientImpl.java new file mode 100644 index 0000000000..278673c67d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/java/scatours/impl/ApplClientImpl.java @@ -0,0 +1,52 @@ +/* + * 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.impl; + +import java.math.BigDecimal; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import scatours.Bookings; +import scatours.Checkout; + +@Service(Runnable.class) +public class ApplClientImpl { + @Reference + protected Bookings bookings1, bookings2; + + @Reference + protected Checkout checkout1, checkout2; + + public ApplClientImpl() { + } + + public void run() { + String bookingCode = bookings1.newBooking("FS1APR4", 1); + System.out.println("Booking code is " + bookingCode); + + checkout1.makePayment(new BigDecimal("1995.00"), "1234567843218765 10/10"); + + bookingCode = bookings2.newBooking("AC3MAY9", 2); + System.out.println("Booking code is " + bookingCode); + + checkout2.makePayment(new BigDecimal("2295.00"), "9876123456784321 11/11"); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/java/scatours/impl/ToursClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/java/scatours/impl/ToursClientImpl.java new file mode 100644 index 0000000000..16934872b9 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/java/scatours/impl/ToursClientImpl.java @@ -0,0 +1,47 @@ +/* + * 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.impl; + +import java.math.BigDecimal; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import scatours.Bookings; +import scatours.Checkout; + +@Service(Runnable.class) +public class ToursClientImpl { + @Reference + protected Bookings bookings; + + @Reference + protected Checkout checkout; + + public ToursClientImpl() { + } + + public void run() { + String bookingCode = bookings.newBooking("FS1APR4", 1); + System.out.println("Booking code is " + bookingCode); + + checkout.makePayment(new BigDecimal("1995.00"), "1234567843218765 10/10"); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..e3f6effcee --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/resources/tours-appl-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/resources/tours-appl-client.composite new file mode 100644 index 0000000000..b9f9d59f43 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/resources/tours-appl-client.composite @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/resources/tours-impl-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/resources/tours-impl-client.composite new file mode 100644 index 0000000000..f8f0b3d4d1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/resources/tours-impl-client.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/resources/tours-impl-include-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/resources/tours-impl-include-client.composite new file mode 100644 index 0000000000..7310d0540d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/main/resources/tours-impl-include-client.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/test/java/scatours/BuildingBlocksApplTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/test/java/scatours/BuildingBlocksApplTestCase.java new file mode 100644 index 0000000000..2cf08ec420 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/test/java/scatours/BuildingBlocksApplTestCase.java @@ -0,0 +1,77 @@ +/* + * 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; + +import org.apache.activemq.broker.BrokerService; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests the Building Blocks Composite Application scenario + */ +public class BuildingBlocksApplTestCase { + + private BrokerService jmsBroker; + private SCANode node1, node2; + + @Before + public void startServer() throws Exception { + jmsBroker = new BrokerService(); + jmsBroker.setPersistent(false); + jmsBroker.setUseJmx(false); + jmsBroker.addConnector("tcp://localhost:61619"); + + node1 = SCANodeFactory.newInstance().createSCANode("tours-appl.composite", + new SCAContribution("introducing-trips", "../introducing-trips/target/classes"), + new SCAContribution("buildingblocks", "../buildingblocks/target/classes")); + + node2 = SCANodeFactory.newInstance().createSCANode("tours-appl-client.composite", + new SCAContribution("buildingblocks-client", "./target/classes")); + + jmsBroker.start(); + node1.start(); + node2.start(); + } + + @Test + public void testAppl() { + Runnable client = ((SCAClient)node2).getService(Runnable.class, "ApplClient/Runnable"); + client.run(); + } + + @After + public void stopServer() throws Exception { + if (node2 != null) { + node2.stop(); + } + if (node1 != null) { + node1.stop(); + } + if (jmsBroker != null) { + jmsBroker.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/test/java/scatours/BuildingBlocksImplIncludeTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/test/java/scatours/BuildingBlocksImplIncludeTestCase.java new file mode 100644 index 0000000000..ad48db5616 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/test/java/scatours/BuildingBlocksImplIncludeTestCase.java @@ -0,0 +1,59 @@ +/* + * 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; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests the Building Blocks Composite Implementation Include scenario + */ +public class BuildingBlocksImplIncludeTestCase { + + private SCANode node; + + @Before + public void startServer() throws Exception { + node = SCANodeFactory.newInstance().createSCANode("tours-impl-include-client.composite", + new SCAContribution("introducing-trips", "../introducing-trips/target/classes"), + new SCAContribution("buildingblocks", "../buildingblocks/target/classes"), + new SCAContribution("buildingblocks-client", "./target/classes")); + + node.start(); + } + + @Test + public void testImplInclude() { + Runnable client = ((SCAClient)node).getService(Runnable.class, "ToursClient/Runnable"); + client.run(); + } + + @After + public void stopServer() throws Exception { + if (node != null) { + node.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/test/java/scatours/BuildingBlocksImplTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/test/java/scatours/BuildingBlocksImplTestCase.java new file mode 100644 index 0000000000..c4cffa3e02 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/test/java/scatours/BuildingBlocksImplTestCase.java @@ -0,0 +1,58 @@ +/* + * 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; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests the Building Blocks Composite Implementation scenario + */ +public class BuildingBlocksImplTestCase { + + private SCANode node; + + @Before + public void startServer() throws Exception { + node = SCANodeFactory.newInstance().createSCANode("tours-impl-client.composite", + new SCAContribution("buildingblocks", "../buildingblocks/target/classes"), + new SCAContribution("buildingblocks-client", "./target/classes")); + + node.start(); + } + + @Test + public void testImpl() { + Runnable client = ((SCAClient)node).getService(Runnable.class, "ToursClient/Runnable"); + client.run(); + } + + @After + public void stopServer() throws Exception { + if (node != null) { + node.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/test/resources/jndi.properties b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/test/resources/jndi.properties new file mode 100644 index 0000000000..88270fd1e0 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks-client/src/test/resources/jndi.properties @@ -0,0 +1,39 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- + +# START SNIPPET: jndi + +java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory + +# use the following property to configure the default connector +java.naming.provider.url = vm://localhost?broker.persistent=false + +# use the following property to specify the JNDI name the connection factory +# should appear as. +#connectionFactoryNames = connectionFactory, queueConnectionFactory, topicConnectionFactry +connectionFactoryNames = ConnectionFactory + +# register some queues in JNDI using the form +# queue.[jndiName] = [physicalName] +queue.BookTrip = BookTripRequestQueue +queue.Checkout = CheckoutRequestQueue + +# register some topics in JNDI using the form +# topic.[jndiName] = [physicalName] +#topic.MyTopic = example.MyTopic + +# END SNIPPET: jndi diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/build.xml new file mode 100644 index 0000000000..1e23144229 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/pom.xml new file mode 100644 index 0000000000..c19d0cca0a --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/pom.xml @@ -0,0 +1,91 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-buildingblocks + Apache Tuscany SCA Tours Building Blocks Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-jms-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + scatours-contribution-introducing-trips + ${pom.version} + provided + + + + org.apache.tuscany.sca + tuscany-node-api + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-implementation-node-runtime + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/budgettours/Tours.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/budgettours/Tours.java new file mode 100644 index 0000000000..38ddc1f099 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/budgettours/Tours.java @@ -0,0 +1,26 @@ +/* + * 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.budgettours; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Tours { + String checkAvailability(String trip, int people); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/budgettours/impl/TourProviderImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/budgettours/impl/TourProviderImpl.java new file mode 100644 index 0000000000..8e48625f0c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/budgettours/impl/TourProviderImpl.java @@ -0,0 +1,28 @@ +/* + * 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.budgettours.impl; + +import com.budgettours.Tours; + +public class TourProviderImpl implements Tours { + public String checkAvailability(String trip, int people) { + // call non-SCA code to reserve trip and return booking code + return "5Q87X"; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/goodvaluetrips/Trips.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/goodvaluetrips/Trips.java new file mode 100644 index 0000000000..365a210368 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/goodvaluetrips/Trips.java @@ -0,0 +1,26 @@ +/* + * 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.goodvaluetrips; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Trips { + String checkAvailability(String trip, int people); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/Bookings.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/Bookings.java new file mode 100644 index 0000000000..9d54d46bb6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/Bookings.java @@ -0,0 +1,26 @@ +/* + * 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; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Bookings { + String newBooking(String trip, int people); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/Checkout.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/Checkout.java new file mode 100644 index 0000000000..29c84d2bc0 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/Checkout.java @@ -0,0 +1,28 @@ +/* + * 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; + +import java.math.BigDecimal; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Checkout { + void makePayment(BigDecimal amount, String cardInfo); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/Updates.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/Updates.java new file mode 100644 index 0000000000..e33b0399cb --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/Updates.java @@ -0,0 +1,26 @@ +/* + * 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; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Updates { + void addTrip(String resCode); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/impl/ShoppingCartImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/impl/ShoppingCartImpl.java new file mode 100644 index 0000000000..629ea7b5ec --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/impl/ShoppingCartImpl.java @@ -0,0 +1,49 @@ +/* + * 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.impl; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import com.tuscanyscatours.Checkout; +import com.tuscanyscatours.Updates; + +public class ShoppingCartImpl implements Checkout, Updates { + private static List bookedTrips = new ArrayList(); + + protected String currency = "USD"; + + public void makePayment(BigDecimal amount, String cardInfo) { + System.out.print("Charged " + currency + " " + amount + + " to card " + + cardInfo + + " for " + + (bookedTrips.size() > 1 ? "trips" : "trip")); + for (String trip : bookedTrips) { + System.out.print(" " + trip); + } + System.out.println(); + bookedTrips.clear(); + } + + public void addTrip(String resCode) { + bookedTrips.add(resCode); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/impl/TripBookingImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/impl/TripBookingImpl.java new file mode 100644 index 0000000000..f2884f87c5 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/com/tuscanyscatours/impl/TripBookingImpl.java @@ -0,0 +1,39 @@ +/* + * 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.impl; + +import org.osoa.sca.annotations.Reference; + +import com.goodvaluetrips.Trips; +import com.tuscanyscatours.Bookings; +import com.tuscanyscatours.Updates; + +public class TripBookingImpl implements Bookings { + @Reference + protected Trips mytrips; + + @Reference + protected Updates cart; + + public String newBooking(String trip, int people) { + String resCode = mytrips.checkAvailability(trip, people); + cart.addTrip(resCode); + return "GV" + resCode; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/scatours/impl/TripProviderImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/scatours/impl/TripProviderImpl.java new file mode 100644 index 0000000000..a95f01c519 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/java/scatours/impl/TripProviderImpl.java @@ -0,0 +1,28 @@ +/* + * 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.impl; + +import com.goodvaluetrips.Trips; + +public class TripProviderImpl implements Trips { + public String checkAvailability(String trip, int people) { + // scaffolded test code to return an arbitrary booking code + return "7S09Z"; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..028c41e415 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,27 @@ + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/tours-appl.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/tours-appl.composite new file mode 100644 index 0000000000..8733c79c5d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/tours-appl.composite @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/tours-impl-include.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/tours-impl-include.composite new file mode 100644 index 0000000000..4080523309 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/tours-impl-include.composite @@ -0,0 +1,33 @@ + + + + + + + + GBP + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/tours-impl.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/tours-impl.composite new file mode 100644 index 0000000000..1d82858f22 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/tours-impl.composite @@ -0,0 +1,34 @@ + + + + + + + + GBP + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/tours.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/tours.composite new file mode 100644 index 0000000000..b66d2344cd --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/main/resources/tours.composite @@ -0,0 +1,43 @@ + + + + + + + + USD + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/test/java/scatours/BuildingBlocksImplIncludeTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/test/java/scatours/BuildingBlocksImplIncludeTestCase.java new file mode 100644 index 0000000000..ccdd2a73bd --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/test/java/scatours/BuildingBlocksImplIncludeTestCase.java @@ -0,0 +1,66 @@ +/* + * 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; + +import java.math.BigDecimal; + +import com.tuscanyscatours.Bookings; +import com.tuscanyscatours.Checkout; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests the Building Blocks Composite Implementation Include scenario + */ +public class BuildingBlocksImplIncludeTestCase { + + private SCANode node; + + @Before + public void startServer() throws Exception { + node = SCANodeFactory.newInstance().createSCANode("tours-impl-include.composite", + new SCAContribution("introducing-trips", "../introducing-trips/target/classes"), + new SCAContribution("buildingblocks", "./target/classes")); + node.start(); + } + + @Test + public void testImplInclude() { + Bookings bookings = ((SCAClient)node).getService(Bookings.class, "MyTours/BookTrip"); + String bookingCode = bookings.newBooking("FS1APR4", 1); + System.out.println("Booking code is " + bookingCode); + + Checkout checkout = ((SCAClient)node).getService(Checkout.class, "MyTours/Checkout"); + checkout.makePayment(new BigDecimal("1995.00"), "1234567801234567 11/10"); + } + + @After + public void stopServer() throws Exception { + if (node != null) { + node.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/test/java/scatours/BuildingBlocksImplTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/test/java/scatours/BuildingBlocksImplTestCase.java new file mode 100644 index 0000000000..35271bc5aa --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/buildingblocks/src/test/java/scatours/BuildingBlocksImplTestCase.java @@ -0,0 +1,65 @@ +/* + * 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; + +import java.math.BigDecimal; + +import com.tuscanyscatours.Bookings; +import com.tuscanyscatours.Checkout; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests the Building Blocks Composite Implementation scenario + */ +public class BuildingBlocksImplTestCase { + + private SCANode node; + + @Before + public void startServer() throws Exception { + node = SCANodeFactory.newInstance().createSCANode("tours-impl.composite", + new SCAContribution("buildingblocks", "./target/classes")); + node.start(); + } + + @Test + public void testImpl() { + Bookings bookings = ((SCAClient)node).getService(Bookings.class, "MyTours/BookTrip"); + String bookingCode = bookings.newBooking("FS1APR4", 1); + System.out.println("Booking code is " + bookingCode); + + Checkout checkout = ((SCAClient)node).getService(Checkout.class, "MyTours/Checkout"); + checkout.makePayment(new BigDecimal("1995.00"), "1234567843218765 10/10"); + } + + @After + public void stopServer() throws Exception { + if (node != null) { + node.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/build.xml new file mode 100644 index 0000000000..ae6a47dafb --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/pom.xml new file mode 100644 index 0000000000..61a0fc42e7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/pom.xml @@ -0,0 +1,64 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-calendar + Apache Tuscany SCA Tours Calendar Contribution + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-node-api + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-implementation-node-runtime + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/main/java/com/tuscanyscatours/calendar/Calendar.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/main/java/com/tuscanyscatours/calendar/Calendar.java new file mode 100644 index 0000000000..daa5127511 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/main/java/com/tuscanyscatours/calendar/Calendar.java @@ -0,0 +1,25 @@ +/* + * 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.calendar; + +public interface Calendar { + + String getEndDate(String startDate, int duration); + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/main/java/com/tuscanyscatours/calendar/impl/CalendarImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/main/java/com/tuscanyscatours/calendar/impl/CalendarImpl.java new file mode 100644 index 0000000000..4e6e7b161b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/main/java/com/tuscanyscatours/calendar/impl/CalendarImpl.java @@ -0,0 +1,47 @@ +/* + * 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.calendar.impl; + +import java.text.DateFormat; +import java.util.Date; + +import com.tuscanyscatours.calendar.Calendar; + +/** + * An implementation of the Calendar service + */ +public class CalendarImpl implements Calendar { + + public String getEndDate(String startDate, int duration) { + String returnDate = "Invalid Date"; + + try { + Date date = DateFormat.getInstance().parse(startDate); + java.util.Calendar calendar = java.util.Calendar.getInstance(); + calendar.setTime(date); + calendar.add(java.util.Calendar.DATE, duration); + returnDate = DateFormat.getInstance().format(calendar.getTime()); + } catch (Exception ex) { + // do nothing + System.out.println(ex.toString()); + } + + return returnDate; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..86f28d7423 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/test/java/scatours/calendar/CalendarTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/test/java/scatours/calendar/CalendarTestCase.java new file mode 100644 index 0000000000..8e0f003c4b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/test/java/scatours/calendar/CalendarTestCase.java @@ -0,0 +1,57 @@ +/* + * 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.calendar; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import com.tuscanyscatours.calendar.Calendar; + +/** + * This shows how to test the Calculator service component. + */ +public class CalendarTestCase { + + private SCANode node; + + @Before + public void startNode() throws Exception { + node = + SCANodeFactory.newInstance().createSCANode("calendar.composite", + new SCAContribution("calendar", "./target/classes"), + new SCAContribution("calendar-test", "./target/test-classes")); + node.start(); + } + + @Test + public void testCalendar() throws Exception { + Calendar calendar = ((SCAClient)node).getService(Calendar.class, "Calendar"); + System.out.println(calendar.getEndDate("07/10/96 04:05", 3)); + } + + @After + public void stopNode() throws Exception { + node.stop(); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/test/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/test/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..e57bf783fc --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/test/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/test/resources/calendar.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/test/resources/calendar.composite new file mode 100644 index 0000000000..076eed15b2 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/calendar/src/test/resources/calendar.composite @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/build.xml new file mode 100644 index 0000000000..46392d4b24 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/build.xml @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/pom.xml new file mode 100644 index 0000000000..be0c72db43 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/pom.xml @@ -0,0 +1,57 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-car + Apache Tuscany SCA Tours Car Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + scatours-contribution-common + ${pom.version} + provided + + + + junit + junit + 4.5 + test + + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/src/main/java/com/tuscanyscatours/car/impl/CarImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/src/main/java/com/tuscanyscatours/car/impl/CarImpl.java new file mode 100644 index 0000000000..f75c772d48 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/src/main/java/com/tuscanyscatours/car/impl/CarImpl.java @@ -0,0 +1,91 @@ +/* + * 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.car.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.osoa.sca.annotations.Callback; +import org.osoa.sca.annotations.Init; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.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 Car service + */ +@Scope("STATELESS") +@Service(interfaces = {Search.class, Book.class}) +public class CarImpl implements Search, Book { + + private List cars = new ArrayList(); + + @Callback + protected SearchCallback searchCallback; + + @Init + public void init() { + cars.add(new CarInfo("Premier Cars", "BMW 5 Series", "FLR", "06/12/09", "5", 100.00, "EUR", + "http://localhost:8085/tbd")); + cars.add(new CarInfo("Premier Cars", "Ford Focus", "FLR", "06/12/09", "4", 60.00, "EUR", + "http://localhost:8085/tbd")); + } + + public TripItem[] searchSynch(TripLeg tripLeg) { + List items = new ArrayList(); + + // find available hotels + for (CarInfo car : cars) { + if (car.getLocation().equals(tripLeg.getToLocation())) { + TripItem item = + new TripItem("", "", TripItem.CAR, car.getName(), car.getDescription(), car.getLocation(), tripLeg + .getFromDate(), tripLeg.getToDate(), car.getPricePerDay(), car.getCurrency(), car.getLink()); + items.add(item); + } + } + + return items.toArray(new TripItem[items.size()]); + } + + public void searchAsynch(TripLeg tripLeg) { + System.out.println("Starting car search"); + + try { + Thread.sleep(4000); + } catch (Exception ex) { + // do nothing + } + + // return available hotels + searchCallback.searchResults(searchSynch(tripLeg)); + } + + public int getPercentComplete() { + return 100; + } + + public String book(TripItem tripItem) { + return "car1"; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/src/main/java/com/tuscanyscatours/car/impl/CarInfo.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/src/main/java/com/tuscanyscatours/car/impl/CarInfo.java new file mode 100644 index 0000000000..c373079ac1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/src/main/java/com/tuscanyscatours/car/impl/CarInfo.java @@ -0,0 +1,118 @@ +/* + * 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.car.impl; + +public class CarInfo { + + private String name; + private String description; + private String location; + private String date; + private String seats; + private double pricePerDay; + private String currency; + private String link; + + public CarInfo() { + } + + public CarInfo(String name, + String description, + String location, + String date, + String seats, + double pricePerDay, + String currency, + String link) { + + this.name = name; + this.description = description; + this.location = location; + this.date = date; + this.seats = seats; + this.pricePerDay = pricePerDay; + 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 getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getDate() { + return date; + } + + public void setDate(String date) { + this.date = date; + } + + public String getSeats() { + return seats; + } + + public void setSeats(String seats) { + this.seats = seats; + } + + public double getPricePerDay() { + return pricePerDay; + } + + public void setPricePerDay(double pricePerDay) { + this.pricePerDay = pricePerDay; + } + + 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-1.x/tags/travelsample-1.0-RC3/contributions/car/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..eb9ffba20d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/car/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/build.xml new file mode 100644 index 0000000000..85cec507ff --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/pom.xml new file mode 100644 index 0000000000..c9b56d8544 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/pom.xml @@ -0,0 +1,50 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-common + Apache Tuscany SCA Tours Common Artefacts Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + junit + junit + 4.5 + test + + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/Book.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/Book.java new file mode 100644 index 0000000000..47b6f50bec --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/Book.java @@ -0,0 +1,27 @@ +/* + * 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.common; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Book { + String book(TripItem tripItem); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/Search.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/Search.java new file mode 100644 index 0000000000..1611c11792 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/Search.java @@ -0,0 +1,36 @@ +/* + * 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.common; + +import org.osoa.sca.annotations.Callback; +import org.osoa.sca.annotations.Conversational; +import org.osoa.sca.annotations.OneWay; +import org.osoa.sca.annotations.Remotable; + +@Remotable +@Callback(SearchCallback.class) +public interface Search { + TripItem[] searchSynch(TripLeg tripLeg); + + @OneWay + void searchAsynch(TripLeg tripLeg); + + int getPercentComplete(); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/SearchCallback.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/SearchCallback.java new file mode 100644 index 0000000000..ad13d0d352 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/SearchCallback.java @@ -0,0 +1,28 @@ +/* + * 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.common; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface SearchCallback { + void searchResults(TripItem[] items); + void setPercentComplete(String searchComponent, int percentComplete); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/TripItem.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/TripItem.java new file mode 100644 index 0000000000..2f2a6299f9 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/TripItem.java @@ -0,0 +1,242 @@ +/* + * 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.common; + +public class TripItem { + + public static String FLIGHT = "Flight"; + public static String HOTEL = "Hotel"; + public static String CAR = "Car"; + public static String TRIP = "Trip"; + + private String id; + private String tripId; + private String type; + private String name; + private String description; + private String location; + private String fromDate; + private String toDate; + private double price; + private String currency; + private String link; + private TripItem[] tripItems; // used for a trip made up of trip items + private String customerDetails; + private String agentDetails; + private String bookingCode; + + public TripItem() { + } + + public TripItem(TripItem item) { + this.id = item.getId(); + this.tripId = item.getTripId(); + this.type = item.getType(); + this.name = item.getName(); + this.description = item.getDescription(); + this.location = item.getLocation(); + this.fromDate = item.getFromDate(); + this.toDate = item.getToDate(); + this.price = item.getPrice(); + this.currency = item.getCurrency(); + this.link = item.getLink(); + } + + public TripItem(String id, + String tripId, + String type, + String name, + String description, + String location, + String fromDate, + String toDate, + double price, + String currency, + String link) { + this.id = id; + this.tripId = tripId; + this.type = type; + this.name = name; + this.description = description; + this.location = location; + this.fromDate = fromDate; + this.toDate = toDate; + this.price = price; + this.currency = currency; + this.link = link; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTripId() { + return tripId; + } + + public void setTripId(String tripId) { + this.tripId = tripId; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + 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 getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + 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 double getPrice() { + return price; + } + + public void setPrice(double price) { + this.price = price; + } + + 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; + } + + public TripItem[] getTripItems() { + return tripItems; + } + + public void setTripItems(TripItem[] tripItems) { + this.tripItems = tripItems; + } + + public String getCustomerDetails() { + return customerDetails; + } + + public void setCustomerDetails(String customerDetails) { + this.customerDetails = customerDetails; + } + + public String getAgentDetails() { + return agentDetails; + } + + public void setAgentDetails(String agentDetails) { + this.agentDetails = agentDetails; + } + + public String getBookingCode() { + return bookingCode; + } + + public void setBookingCode(String bookingCode) { + this.bookingCode = bookingCode; + } + + @Override + public String toString() { + String tripString = + "Trip: id " + this.tripId + + " type " + + this.type + + " name " + + this.name + + " description " + + this.description + + " location " + + this.location + + " fromDate " + + this.fromDate + + " toDate " + + this.toDate + + " price " + + this.price + + " currency " + + this.currency + + " link " + + this.link; + return tripString; + } + + @Override + public boolean equals(Object obj) { + + if (obj instanceof TripItem) { + if (((TripItem)obj).getId().equals(getId())) { + return true; + } + } + + return super.equals(obj); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/TripLeg.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/TripLeg.java new file mode 100644 index 0000000000..663634b1e9 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/java/com/tuscanyscatours/common/TripLeg.java @@ -0,0 +1,85 @@ +/* + * 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.common; + +public class TripLeg { + + private String id; + private String fromLocation; + private String toLocation; + private String fromDate; + private String toDate; + private String noOfPeople; + + public TripLeg() { + } + + public TripLeg(String id, String fromLocation, String toLocation, String fromDate, String toDate, String noOfPeople) { + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + 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 getNoOfPeople() { + return noOfPeople; + } + + public void setNoOfPeople(String noOfPeople) { + this.noOfPeople = noOfPeople; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..d7ada5afe7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/common/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/build.xml new file mode 100644 index 0000000000..93d1c4ad47 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/build.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/pom.xml new file mode 100644 index 0000000000..b0f6388da9 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/pom.xml @@ -0,0 +1,149 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-creditcard-payment-jaxb-policy + Apache Tuscany SCA Tours Credit Card Payment Contribution JAXB Policy + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + tuscany-interface-java-jaxws + ${tuscany.version} + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-node-api + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-host-jetty + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + + + java.net2 + java.net Maven 2.x Repository + http://download.java.net/maven/2 + + false + + + + + + ${artifactId} + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + add-source + generate-sources + + add-source + + + + target/jaxws-source + + + + + + + org.codehaus.mojo + jaxws-maven-plugin + 1.12 + + + wsimport + generate-sources + + wsimport + + + com.tuscanyscatours.payment.creditcard + ${basedir}/src/main/resources + + + CreditCardPayment.wsdl + + ${project.build.directory}/jaxws-source + + false + true + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentImpl.java new file mode 100644 index 0000000000..293f08453f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentImpl.java @@ -0,0 +1,46 @@ +/* + * 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.payment.creditcard.impl; + +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; + +/** + * + */ +@Service(CreditCardPayment.class) +public class CreditCardPaymentImpl implements CreditCardPayment { + + public String authorize(CreditCardDetailsType creditCard, float amount) { + if (creditCard != null) { + System.out.println("Checking card: name = " + creditCard.getCardOwner().getName() + + " number = " + + creditCard.getCreditCardNumber() + + " for amount " + + amount); + } else { + System.out.println("Checking card is null"); + } + + return "OK"; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/resources/CreditCardPayment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/resources/CreditCardPayment.wsdl new file mode 100644 index 0000000000..f313043bf8 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/resources/CreditCardPayment.wsdl @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..21ade03070 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/resources/creditcard.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/resources/creditcard.composite new file mode 100644 index 0000000000..4a91a96255 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/resources/creditcard.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/resources/definitions.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/resources/definitions.xml new file mode 100644 index 0000000000..a6b35f8e19 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/main/resources/definitions.xml @@ -0,0 +1,34 @@ + + + + + + + myname + mypassword + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/test/java/scatours/payment/creditcard/CreditCardPaymentTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/test/java/scatours/payment/creditcard/CreditCardPaymentTestCase.java new file mode 100644 index 0000000000..a33b2b3046 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb-policy/src/test/java/scatours/payment/creditcard/CreditCardPaymentTestCase.java @@ -0,0 +1,100 @@ +/* + * 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.payment.creditcard; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; + +import com.tuscanyscatours.payment.creditcard.AuthorizeFault_Exception; +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; +import com.tuscanyscatours.payment.creditcard.CreditCardTypeType; +import com.tuscanyscatours.payment.creditcard.ObjectFactory; +import com.tuscanyscatours.payment.creditcard.PayerType; + +/** + * + */ +public class CreditCardPaymentTestCase { + private static SCANode node; + + /** + * @throws java.lang.Exception + */ + @BeforeClass + public static void setUpBeforeClass() throws Exception { + try { + node = + SCANodeFactory.newInstance().createSCANode("creditcard.composite", new SCAContribution("creditcard", "./target/classes")); + + node.start(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + @Test + public void testCreditCardPayment() { + SCAClient client = (SCAClient)node; + CreditCardPayment cc = client.getService(CreditCardPayment.class, "CreditCardPayment"); + + ObjectFactory objectFactory = new ObjectFactory(); + CreditCardDetailsType ccDetails = objectFactory.createCreditCardDetailsType(); + ccDetails.setCreditCardType(CreditCardTypeType.fromValue("Visa")); + PayerType ccOwner = objectFactory.createPayerType(); + ccOwner.setName("Fred"); + ccDetails.setCardOwner(ccOwner); + + try { + System.out.println(cc.authorize(ccDetails, 100.00f)); + } catch (AuthorizeFault_Exception e) { + System.err.println("Fault: " + e.getFaultInfo().getErrorCode()); + } + } + + @Test + @Ignore + public void testWaitForInput() { + System.out.println("Press a key to end"); + try { + System.in.read(); + } catch (Exception ex) { + } + System.out.println("Shutting down"); + } + + /** + * @throws java.lang.Exception + */ + @AfterClass + public static void tearDownAfterClass() throws Exception { + if (node != null) { + node.stop(); + node = null; + } + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/build.xml new file mode 100644 index 0000000000..9e0ac7fff9 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/build.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/pom.xml new file mode 100644 index 0000000000..103403e461 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/pom.xml @@ -0,0 +1,149 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-creditcard-payment-jaxb + Apache Tuscany SCA Tours Credit Card Payment Contribution JAXB + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + tuscany-interface-java-jaxws + ${tuscany.version} + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-node-api + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-host-jetty + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + + + java.net2 + java.net Maven 2.x Repository + http://download.java.net/maven/2 + + false + + + + + + ${artifactId} + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + add-source + generate-sources + + add-source + + + + target/jaxws-source + + + + + + + org.codehaus.mojo + jaxws-maven-plugin + 1.12 + + + wsimport + generate-sources + + wsimport + + + com.tuscanyscatours.payment.creditcard + ${basedir}/src/main/resources + + + CreditCardPayment.wsdl + + ${project.build.directory}/jaxws-source + + false + true + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentImpl.java new file mode 100644 index 0000000000..ed817a58bb --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentImpl.java @@ -0,0 +1,46 @@ +/* + * 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.payment.creditcard.impl; + +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; + +/** + * + */ +@Service(CreditCardPayment.class) +public class CreditCardPaymentImpl implements CreditCardPayment { + + public String authorize(CreditCardDetailsType creditCard, float amount) { + if (creditCard != null) { + System.out.println("Checking card: name = " + creditCard.getCardOwner().getName() + + " number = " + + creditCard.getCreditCardNumber() + + " for amount " + + amount); + } else { + System.out.println("Checking card is null"); + } + + return "OK"; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/main/resources/CreditCardPayment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/main/resources/CreditCardPayment.wsdl new file mode 100644 index 0000000000..6dcc619c48 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/main/resources/CreditCardPayment.wsdl @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..8c49211dc3 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/main/resources/creditcard.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/main/resources/creditcard.composite new file mode 100644 index 0000000000..db6907cf7e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/main/resources/creditcard.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/test/java/scatours/payment/creditcard/CreditCardPaymentTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/test/java/scatours/payment/creditcard/CreditCardPaymentTestCase.java new file mode 100644 index 0000000000..65c7beb367 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-jaxb/src/test/java/scatours/payment/creditcard/CreditCardPaymentTestCase.java @@ -0,0 +1,100 @@ +/* + * 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.payment.creditcard; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; + +import com.tuscanyscatours.payment.creditcard.AuthorizeFault_Exception; +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; +import com.tuscanyscatours.payment.creditcard.CreditCardTypeType; +import com.tuscanyscatours.payment.creditcard.ObjectFactory; +import com.tuscanyscatours.payment.creditcard.PayerType; + +/** + * + */ +public class CreditCardPaymentTestCase { + private static SCANode node; + + /** + * @throws java.lang.Exception + */ + @BeforeClass + public static void setUpBeforeClass() throws Exception { + try { + node = + SCANodeFactory.newInstance().createSCANode(null, new SCAContribution("creditcard", "./target/classes")); + + node.start(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + @Test + public void testCreditCardPayment() { + SCAClient client = (SCAClient)node; + CreditCardPayment cc = client.getService(CreditCardPayment.class, "CreditCardPayment"); + + ObjectFactory objectFactory = new ObjectFactory(); + CreditCardDetailsType ccDetails = objectFactory.createCreditCardDetailsType(); + ccDetails.setCreditCardType(CreditCardTypeType.fromValue("Visa")); + PayerType ccOwner = objectFactory.createPayerType(); + ccOwner.setName("Fred"); + ccDetails.setCardOwner(ccOwner); + + try { + System.out.println(cc.authorize(ccDetails, 100.00f)); + } catch (AuthorizeFault_Exception e) { + System.err.println("Fault: " + e.getFaultInfo().getErrorCode()); + } + } + + @Test + @Ignore + public void testWaitForInput() { + System.out.println("Press a key to end"); + try { + System.in.read(); + } catch (Exception ex) { + } + System.out.println("Shutting down"); + } + + /** + * @throws java.lang.Exception + */ + @AfterClass + public static void tearDownAfterClass() throws Exception { + if (node != null) { + node.stop(); + node = null; + } + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/build.xml new file mode 100644 index 0000000000..2f9f3d9625 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/build.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/pom.xml new file mode 100644 index 0000000000..61d35ebbfb --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/pom.xml @@ -0,0 +1,149 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-creditcard-payment-sdo + Apache Tuscany SCA Tours Credit Card Payment Contribution SDO + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + javax.xml.ws + jaxws-api + 2.1 + + + javax.xml.soap + saaj-api + + + + + + org.apache.tuscany.sca + tuscany-databinding-sdo + ${tuscany.version} + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-node-api + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-host-jetty + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + ${artifactId} + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + add-source + generate-sources + + add-source + + + + target/sdo-source + + + + + + + org.apache.tuscany.sdo + tuscany-sdo-plugin + 1.1.1 + + + generate-sdo + generate-sources + + + ${basedir}/src/main/resources/CreditCardPayment.wsdl + + com.tuscanyscatours.payment.creditcard + CreditCardPayment + true + true + true + + + generate + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPayment.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPayment.java new file mode 100644 index 0000000000..4c0a421e42 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPayment.java @@ -0,0 +1,52 @@ +/* + * 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.payment.creditcard; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import javax.jws.WebService; +import javax.xml.ws.RequestWrapper; +import javax.xml.ws.ResponseWrapper; + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.1.3-b02- + * Generated source version: 2.1 + * + */ +@WebService(name = "CreditCardPayment", targetNamespace = "http://tuscanyscatours.com/CreditCardPayment/") +public interface CreditCardPayment { + + /** + * + * @param amount + * @param creditCard + * @return + * returns java.lang.String + */ + @WebMethod(action = "http://tuscanyscatours.com/CreditCardPayment/authorize") + @WebResult(name = "Status", targetNamespace = "") + @RequestWrapper(localName = "authorize", targetNamespace = "http://tuscanyscatours.com/CreditCardPayment/", className = "com.tuscanyscatours.payment.creditcard.AuthorizeType") + @ResponseWrapper(localName = "authorizeResponse", targetNamespace = "http://tuscanyscatours.com/CreditCardPayment/", className = "com.tuscanyscatours.payment.creditcard.AuthorizeResponseType") + public String authorize(@WebParam(name = "CreditCard", targetNamespace = "") CreditCardDetailsType creditCard, + @WebParam(name = "Amount", targetNamespace = "") float amount); + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentImpl.java new file mode 100644 index 0000000000..ed817a58bb --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentImpl.java @@ -0,0 +1,46 @@ +/* + * 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.payment.creditcard.impl; + +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; + +/** + * + */ +@Service(CreditCardPayment.class) +public class CreditCardPaymentImpl implements CreditCardPayment { + + public String authorize(CreditCardDetailsType creditCard, float amount) { + if (creditCard != null) { + System.out.println("Checking card: name = " + creditCard.getCardOwner().getName() + + " number = " + + creditCard.getCreditCardNumber() + + " for amount " + + amount); + } else { + System.out.println("Checking card is null"); + } + + return "OK"; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/resources/CreditCardPayment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/resources/CreditCardPayment.wsdl new file mode 100644 index 0000000000..d7e274aeee --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/resources/CreditCardPayment.wsdl @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..ab31664247 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/resources/creditcard.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/resources/creditcard.composite new file mode 100644 index 0000000000..f5cd7c2506 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/main/resources/creditcard.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/test/java/scatours/payment/creditcard/CreditCardPaymentTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/test/java/scatours/payment/creditcard/CreditCardPaymentTestCase.java new file mode 100644 index 0000000000..b7d76a061f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-sdo/src/test/java/scatours/payment/creditcard/CreditCardPaymentTestCase.java @@ -0,0 +1,80 @@ +/* + * 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.payment.creditcard; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; +import com.tuscanyscatours.payment.creditcard.CreditCardPaymentFactory; +import com.tuscanyscatours.payment.creditcard.PayerType; + +/** + * + */ +public class CreditCardPaymentTestCase { + private static SCANode node; + + /** + * @throws java.lang.Exception + */ + @BeforeClass + public static void setUpBeforeClass() throws Exception { + SCANodeFactory factory = SCANodeFactory.newInstance(); + node = factory.createSCANode(null, new SCAContribution("creditcard-sdo", "./target/classes")); + node.start(); + } + + @Test + public void testCreditCardPayment() { + SCAClient client = (SCAClient)node; + CreditCardPayment cc = client.getService(CreditCardPayment.class, "CreditCardPayment"); + + CreditCardPaymentFactory factory = CreditCardPaymentFactory.INSTANCE; + CreditCardDetailsType ccDetails = factory.createCreditCardDetailsType(); + ccDetails.setCreditCardType("Visa"); + ccDetails.setCreditCardNumber("1111-2222-3333-4444"); + ccDetails.setExpMonth(9); + ccDetails.setExpYear(2010); + PayerType ccOwner = factory.createPayerType(); + ccOwner.setName("Fred"); + ccDetails.setCardOwner(ccOwner); + + System.out.println(cc.authorize(ccDetails, 100.00f)); + } + + /** + * @throws java.lang.Exception + */ + @AfterClass + public static void tearDownAfterClass() throws Exception { + if (node != null) { + node.stop(); + node = null; + } + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/build.xml new file mode 100644 index 0000000000..45441d3098 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/build.xml @@ -0,0 +1,154 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/pom.xml new file mode 100644 index 0000000000..2fcafb6dcb --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/pom.xml @@ -0,0 +1,72 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-creditcard-payment-webapp + war + Apache Tuscany SCA Tours CreditCard Payment WebApp Contribution + + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + compile + + + + org.apache.tuscany.sca + tuscany-implementation-web-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-host-webapp + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + scatours-contribution-creditcard-payment-jaxb + ${pom.version} + runtime + + + javax.servlet + servlet-api + + + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/resources/CreditCardPayment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/resources/CreditCardPayment.wsdl new file mode 100644 index 0000000000..6dcc619c48 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/resources/CreditCardPayment.wsdl @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/webapp/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/webapp/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..898321c510 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/webapp/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/webapp/META-INF/sca-deployables/web.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/webapp/META-INF/sca-deployables/web.composite new file mode 100644 index 0000000000..ac9128a6d5 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/webapp/META-INF/sca-deployables/web.composite @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/webapp/WEB-INF/web.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..a6188e25ba --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,42 @@ + + + + + + SCA Tours Credit Card Payment WebApp + + + tuscany + org.apache.tuscany.sca.host.webapp.TuscanyServletFilter + + + + tuscany + /* + + + + creditcard.jsp + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/webapp/creditcard.jsp b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/webapp/creditcard.jsp new file mode 100644 index 0000000000..98b7f41e7b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/creditcard-payment-webapp/src/main/webapp/creditcard.jsp @@ -0,0 +1,71 @@ + + +<%@ page contentType="text/html;charset=UTF-8" language="java"%> +<%@ taglib uri="http://www.osoa.org/sca/sca_jsp.tld" prefix="sca"%> + + + + +<%@page import="com.tuscanyscatours.payment.creditcard.CreditCardPaymentService"%> +<%@page import="com.tuscanyscatours.payment.creditcard.ObjectFactory"%> +<%@page import="com.tuscanyscatours.payment.creditcard.CreditCardDetailsType"%> +<%@page import="com.tuscanyscatours.payment.creditcard.CreditCardTypeType"%> +<%@page import="com.tuscanyscatours.payment.creditcard.PayerType"%> + + +

SCATours Credit Card Payment Web Application

+ +

+

Card Type:
+Card Number:
+Card Holder:
+Amount (EUR):
+

+

+ +<% + String c = request.getParameter("charge"); + if (c != null) { + ObjectFactory objectFactory = new ObjectFactory(); + CreditCardDetailsType ccDetails = objectFactory.createCreditCardDetailsType(); + ccDetails.setCreditCardType(CreditCardTypeType.fromValue(request.getParameter("type"))); + ccDetails.setCreditCardNumber(request.getParameter("cardNumber")); + ccDetails.setCVV2("123"); + ccDetails.setExpMonth(12); + ccDetails.setExpYear(2011); + PayerType ccOwner = objectFactory.createPayerType(); + ccOwner.setName(request.getParameter("cardHolder")); + ccDetails.setCardOwner(ccOwner); + float amount = Float.parseFloat(request.getParameter("amount")); +%> +<%=service.authorize(ccDetails, amount)%> +<% + } +%> + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-corba/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-corba/build.xml new file mode 100644 index 0000000000..fa2ac47a64 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-corba/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-corba/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-corba/pom.xml new file mode 100644 index 0000000000..824bde6a5c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-corba/pom.xml @@ -0,0 +1,51 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-currency-corba + Apache Tuscany SCA Tours Currency Converter Contribution With CORBA Binding + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + junit + junit + 4.5 + test + + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-corba/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-corba/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..f22dd9b55d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-corba/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-corba/src/main/resources/currency-converter-corba.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-corba/src/main/resources/currency-converter-corba.composite new file mode 100644 index 0000000000..3fde6ea309 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-corba/src/main/resources/currency-converter-corba.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jms/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jms/build.xml new file mode 100644 index 0000000000..1b5cef445b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jms/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jms/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jms/pom.xml new file mode 100644 index 0000000000..1ea492e1d4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jms/pom.xml @@ -0,0 +1,71 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-currency-jms + Apache Tuscany SCA Tours Currency Converter Contribution With JMS Binding + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-jms-runtime + ${tuscany.version} + runtime + + + + junit + junit + 4.5 + test + + + + org.apache.activemq + activemq-all + 5.2.0 + test + + + org.apache.activemq + activemq-web-demo + + + + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jms/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jms/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..89ba1a3578 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jms/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jms/src/main/resources/currency-converter-jms.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jms/src/main/resources/currency-converter-jms.composite new file mode 100644 index 0000000000..ac34d6f562 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jms/src/main/resources/currency-converter-jms.composite @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/build.xml new file mode 100644 index 0000000000..d1b0d955ac --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/build.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/pom.xml new file mode 100644 index 0000000000..0d27322061 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/pom.xml @@ -0,0 +1,58 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-currency-jsp + war + Apache Tuscany SCA Tours Currency Converter JSP Contribution + + + + org.apache.tuscany.sca + tuscany-implementation-web-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-host-webapp + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + scatours-contribution-currency + ${pom.version} + runtime + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/src/main/webapp/META-INF/sca-deployables/web.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/src/main/webapp/META-INF/sca-deployables/web.composite new file mode 100644 index 0000000000..50667b1ac0 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/src/main/webapp/META-INF/sca-deployables/web.composite @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/src/main/webapp/WEB-INF/web.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..3b2c79ca76 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,42 @@ + + + + + + SCA Tours Currency Converter JSP + + + tuscany + org.apache.tuscany.sca.host.webapp.TuscanyServletFilter + + + + tuscany + /* + + + + currency-converter.jsp + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/src/main/webapp/currency-converter.jsp b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/src/main/webapp/currency-converter.jsp new file mode 100644 index 0000000000..daf8c5cff1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-jsp/src/main/webapp/currency-converter.jsp @@ -0,0 +1,49 @@ + +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib uri="http://www.osoa.org/sca/sca_jsp.tld" prefix="sca" %> + + + + + +

SCA Tours Currency Converter JSP

+Welcome to the SCA Tours Currency Converter: +

+ +

+Enter value in US Dollars + +

+ +

+ +

+ +<% + String dollarsStr = request.getParameter( "dollars" ); + if ( dollarsStr != null) { + double dollars = Double.parseDouble(dollarsStr); + double converted = currencyConverter.convert("USD", "GBP", dollars); + out.println(dollars + " US Dollars = " + converted + " GB Pounds"); + } +%> + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-rmi/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-rmi/build.xml new file mode 100644 index 0000000000..a969f0c819 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-rmi/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-rmi/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-rmi/pom.xml new file mode 100644 index 0000000000..dd02d85bd7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-rmi/pom.xml @@ -0,0 +1,51 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-currency-rmi + Apache Tuscany SCA Tours Currency Converter Contribution With RMI Binding + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + junit + junit + 4.5 + test + + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-rmi/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-rmi/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..cf7325d247 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-rmi/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-rmi/src/main/resources/currency-converter-rmi.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-rmi/src/main/resources/currency-converter-rmi.composite new file mode 100644 index 0000000000..52df3a183f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-rmi/src/main/resources/currency-converter-rmi.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/build.xml new file mode 100644 index 0000000000..23edaad6a6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/build.xml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/pom.xml new file mode 100644 index 0000000000..2f444b31d7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/pom.xml @@ -0,0 +1,72 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-currency-servlet + war + Apache Tuscany SCA Tours Currency Converter Servlet Contribution + + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + compile + + + + org.apache.tuscany.sca + tuscany-implementation-web-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-host-webapp + ${tuscany.version} + runtime + + + + javax.servlet + servlet-api + 2.3 + provided + + + + org.apache.tuscany.sca + scatours-contribution-currency + ${pom.version} + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/src/main/java/com/tuscanyscatours/currencyconverter/servlet/CurrencyConverterServlet.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/src/main/java/com/tuscanyscatours/currencyconverter/servlet/CurrencyConverterServlet.java new file mode 100644 index 0000000000..3584ebbb93 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/src/main/java/com/tuscanyscatours/currencyconverter/servlet/CurrencyConverterServlet.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 com.tuscanyscatours.currencyconverter.servlet; + +import java.io.IOException; +import java.io.Writer; + +import javax.servlet.ServletConfig; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.osoa.sca.ComponentContext; +import org.osoa.sca.annotations.Reference; + +import com.tuscanyscatours.currencyconverter.CurrencyConverter; + +public class CurrencyConverterServlet extends HttpServlet { + + @Reference + protected CurrencyConverter currencyConverter; + + @Override + public void init(ServletConfig config) { + if (currencyConverter == null) { + // The Currency Converter reference will only be injected from the @Reference + // annotation in containers supporting SCA "deep" integration. In other + // environments in can be looked up from the ComponentContext. + ComponentContext context = + (ComponentContext)config.getServletContext().getAttribute("org.osoa.sca.ComponentContext"); + currencyConverter = context.getService(CurrencyConverter.class, "currencyConverter"); + } + } + + @Override + protected void service(HttpServletRequest request, HttpServletResponse response) throws IOException { + Writer out = response.getWriter(); + out.write("

SCA Tours Currency Converter Servlet

"); + out.write("Welcome to the SCA Tours Currency Converter Servlet

"); + out.write("

"); + out.write("Enter value in US Dollars"); + out.write("

"); + out.write(""); + out.write("

"); + + String dollarsStr = request.getParameter("dollars"); + if (dollarsStr != null) { + double dollars = Double.parseDouble(dollarsStr); + double converted = currencyConverter.convert("USD", "GBP", dollars); + out.write(dollars + " US Dollars = " + converted + " GB Pounds"); + } + + out.write(""); + out.flush(); + out.close(); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/src/main/webapp/META-INF/sca-deployables/web.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/src/main/webapp/META-INF/sca-deployables/web.composite new file mode 100644 index 0000000000..c9ef16ee1b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/src/main/webapp/META-INF/sca-deployables/web.composite @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/src/main/webapp/WEB-INF/web.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000000..2204c67870 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-servlet/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,52 @@ + + + + + + SCA Tours Currency Converter Servlet + + + tuscany + org.apache.tuscany.sca.host.webapp.TuscanyServletFilter + + + + tuscany + /* + + + + CurrencyConverterServlet + com.tuscanyscatours.currencyconverter.servlet.CurrencyConverterServlet + + + + CurrencyConverterServlet + /CurrencyConverterServlet + + + + CurrencyConverterServlet + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-ws/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-ws/build.xml new file mode 100644 index 0000000000..bf87bbfba6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-ws/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-ws/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-ws/pom.xml new file mode 100644 index 0000000000..5eadf838f4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-ws/pom.xml @@ -0,0 +1,51 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-currency-ws + Apache Tuscany SCA Tours Currency Converter Contribution With Web Service Binding + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + junit + junit + 4.5 + test + + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-ws/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-ws/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..cf7325d247 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-ws/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-ws/src/main/resources/currency-converter-ws.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-ws/src/main/resources/currency-converter-ws.composite new file mode 100644 index 0000000000..b048a826f1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency-ws/src/main/resources/currency-converter-ws.composite @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/build.xml new file mode 100644 index 0000000000..0f5811e299 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/pom.xml new file mode 100644 index 0000000000..6ceb0bd8b1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/pom.xml @@ -0,0 +1,57 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-currency + Apache Tuscany SCA Tours Currency Converter Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + junit + junit + 4.5 + test + + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/src/main/java/com/tuscanyscatours/currencyconverter/CurrencyConverter.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/src/main/java/com/tuscanyscatours/currencyconverter/CurrencyConverter.java new file mode 100644 index 0000000000..b1f783bfba --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/src/main/java/com/tuscanyscatours/currencyconverter/CurrencyConverter.java @@ -0,0 +1,33 @@ +/* + * 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.currencyconverter; + +import org.osoa.sca.annotations.Remotable; + +/** + * The CurrencyConverter service interface + */ +@Remotable +public interface CurrencyConverter { + + double getExchangeRate(String fromCurrencyCode, String toCurrencyCode); + + double convert(String fromCurrencyCode, String toCurrencyCode, double amount); + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/src/main/java/com/tuscanyscatours/currencyconverter/impl/CurrencyConverterImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/src/main/java/com/tuscanyscatours/currencyconverter/impl/CurrencyConverterImpl.java new file mode 100644 index 0000000000..6ad9a957c7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/src/main/java/com/tuscanyscatours/currencyconverter/impl/CurrencyConverterImpl.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 com.tuscanyscatours.currencyconverter.impl; + +import java.util.HashMap; +import java.util.Map; + +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.currencyconverter.CurrencyConverter; + +/** + * An implementation of the CurrencyConverter service + */ +@Service(interfaces = {CurrencyConverter.class}) +public class CurrencyConverterImpl implements CurrencyConverter { + + // currency index + private Map currencyIndex = new HashMap(); + + // exchange rates + private final double rates[][] = { {1.00, 0.50, 0.66}, {2.00, 1.00, 1.33}, {1.50, 0.75, 1.00}}; + + public CurrencyConverterImpl() { + currencyIndex.put("USD", new Integer(0)); + currencyIndex.put("GBP", new Integer(1)); + currencyIndex.put("EUR", new Integer(2)); + } + + public double getExchangeRate(String fromCurrencyCode, String toCurrencyCode) { + return rates[currencyIndex.get(fromCurrencyCode).intValue()][currencyIndex.get(toCurrencyCode).intValue()]; + } + + public double convert(String fromCurrencyCode, String toCurrencyCode, double amount) { + return amount * getExchangeRate(fromCurrencyCode, toCurrencyCode); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..b11328f405 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/src/main/resources/currency-converter.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/src/main/resources/currency-converter.composite new file mode 100644 index 0000000000..41d0d325d4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/currency/src/main/resources/currency-converter.composite @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/build.xml new file mode 100644 index 0000000000..94f9290854 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/build.xml @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/pom.xml new file mode 100644 index 0000000000..91e283d742 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/pom.xml @@ -0,0 +1,48 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-databinding-client + Apache Tuscany SCA Tours Databinding Client Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + scatours-contribution-payment-java + ${pom.version} + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/src/main/java/scatours/client/TestClient.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/src/main/java/scatours/client/TestClient.java new file mode 100644 index 0000000000..f598a6f056 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/src/main/java/scatours/client/TestClient.java @@ -0,0 +1,40 @@ +/* + * 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 com.tuscanyscatours.payment.Payment; + +@Service(Runnable.class) +public class TestClient { + @Reference + protected Payment payment; + + public TestClient() { + } + + public void run() { + System.out.println("Call Payment component"); + System.out.println(payment.makePaymentMember("c-0", 100.00f)); + System.out.println(payment.makePaymentMember("c-1", 100.00f)); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..87e8535676 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/src/main/resources/client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/src/main/resources/client.composite new file mode 100644 index 0000000000..e19697290c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/databinding-client/src/main/resources/client.composite @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/build.xml new file mode 100644 index 0000000000..ec234bcb4a --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/build.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/pom.xml new file mode 100644 index 0000000000..d98af789d4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/pom.xml @@ -0,0 +1,154 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-emailgateway + Apache Tuscany SCA Tours Email Gateway Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + javax.xml.bind + jaxb-api + 2.1 + + + + javax.xml.ws + jaxws-api + 2.1 + + + javax.xml.soap + saaj-api + + + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-host-jetty + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + + + java.net2 + java.net Maven 2.x Repository + http://download.java.net/maven/2 + + false + + + + + + ${artifactId} + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + add-source + generate-sources + + add-source + + + + target/jaxws-source + + + + + + + org.codehaus.mojo + jaxws-maven-plugin + 1.12 + + + wsimport + generate-sources + + wsimport + + + com.tuscanyscatours.emailgateway + ${basedir}/src/main/resources + + + EmailGateway.wsdl + + ${project.build.directory}/jaxws-source + + false + true + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java new file mode 100644 index 0000000000..0ff12b4efa --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java @@ -0,0 +1,38 @@ +/* + * 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.emailgateway.impl; + +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.emailgateway.EmailType; + +/** + * + */ +@Service(EmailGateway.class) +public class EmailGatewayImpl implements EmailGateway { + + public String sendEmail(EmailType email) { + System.out.println("Sending mail to " + email.getTo()); + return "SENT"; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/main/resources/EmailGateway.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/main/resources/EmailGateway.wsdl new file mode 100644 index 0000000000..bb9cd27027 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/main/resources/EmailGateway.wsdl @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..7d8aa000cc --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/main/resources/emailgateway.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/main/resources/emailgateway.composite new file mode 100644 index 0000000000..a401b2a96e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/main/resources/emailgateway.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/test/java/scatours/emailgateway/EmailGatewayTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/test/java/scatours/emailgateway/EmailGatewayTestCase.java new file mode 100644 index 0000000000..8b0ecba024 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/test/java/scatours/emailgateway/EmailGatewayTestCase.java @@ -0,0 +1,76 @@ +/* + * 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.emailgateway; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.emailgateway.EmailType; +import com.tuscanyscatours.emailgateway.ObjectFactory; + +/** + * + */ +public class EmailGatewayTestCase { + private static SCANode node; + + /** + * @throws java.lang.Exception + */ + @BeforeClass + public static void setUpBeforeClass() throws Exception { + SCANodeFactory factory = SCANodeFactory.newInstance(); + node = + factory.createSCANode(null, + new SCAContribution("emailgateway", "./target/classes"), + new SCAContribution("emailgateway-test", "./target/test-classes")); + node.start(); + } + + @Test + public void testEmailGateway() { + SCAClient client = (SCAClient)node; + EmailGateway cc = client.getService(EmailGateway.class, "EmailGatewayClient"); + ObjectFactory objectFactory = new ObjectFactory(); + EmailType email = objectFactory.createEmailType(); + email.setTo("Fred"); + email.setTitle("An email"); + email.setBody("A message"); + System.out.println(cc.sendEmail(email)); + } + + /** + * @throws java.lang.Exception + */ + @AfterClass + public static void tearDownAfterClass() throws Exception { + if (node != null) { + node.stop(); + node = null; + } + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/test/java/scatours/emailgateway/client/impl/EmailGatewayClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/test/java/scatours/emailgateway/client/impl/EmailGatewayClientImpl.java new file mode 100644 index 0000000000..10d4984665 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/test/java/scatours/emailgateway/client/impl/EmailGatewayClientImpl.java @@ -0,0 +1,41 @@ +/* + * 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.emailgateway.client.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.emailgateway.EmailType; + +/** + * + */ +@Service(EmailGateway.class) +public class EmailGatewayClientImpl implements EmailGateway { + @Reference + protected EmailGateway emailGateway; + + public String sendEmail(EmailType email) { + // Delegate the external web service + return emailGateway.sendEmail(email); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/test/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/test/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..cc141d7703 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/test/resources/META-INF/sca-contribution.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/test/resources/emailgateway-test.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/test/resources/emailgateway-test.composite new file mode 100644 index 0000000000..8305356bda --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/emailgateway/src/test/resources/emailgateway-test.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/build.xml new file mode 100644 index 0000000000..c23a99e6ca --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/pom.xml new file mode 100644 index 0000000000..2c9422ef70 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/pom.xml @@ -0,0 +1,68 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-feed-logger + Apache Tuscany SCA Tours Feed Logger Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + tuscany-binding-atom-abdera + ${tuscany.version} + + + + org.apache.tuscany.sca + tuscany-binding-rss-rome + ${tuscany.version} + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + junit + junit + 4.5 + test + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/src/main/java/com/tuscanyscatours/feedlogger/FeedLogger.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/src/main/java/com/tuscanyscatours/feedlogger/FeedLogger.java new file mode 100644 index 0000000000..0f5d18d53b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/src/main/java/com/tuscanyscatours/feedlogger/FeedLogger.java @@ -0,0 +1,30 @@ +/* + * 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.feedlogger; + +public interface FeedLogger { + + /** + * Captures the configured feeds and logs the feed entries. + * + * @param maxEntriesPerFeed The maximum number of entries to log per feed + */ + public void logFeeds(int maxEntriesPerFeed); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/src/main/java/com/tuscanyscatours/feedlogger/impl/FeedLoggerImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/src/main/java/com/tuscanyscatours/feedlogger/impl/FeedLoggerImpl.java new file mode 100644 index 0000000000..a949d63383 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/src/main/java/com/tuscanyscatours/feedlogger/impl/FeedLoggerImpl.java @@ -0,0 +1,99 @@ +/* + * 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.feedlogger.impl; + +import java.util.List; + +import org.apache.abdera.model.Entry; +import org.apache.abdera.model.Feed; +import org.osoa.sca.annotations.Reference; + +import com.sun.syndication.feed.synd.SyndEntry; +import com.sun.syndication.feed.synd.SyndFeed; +import com.tuscanyscatours.feedlogger.FeedLogger; + +public class FeedLoggerImpl implements FeedLogger { + + /** + * Reference to the SCA Tours Blog Atom feed. + */ + @Reference + public org.apache.tuscany.sca.binding.atom.collection.Collection scaToursBlogAtom; + + /** + * Reference to the SCA Tours Blog RSS feed. + */ + @Reference + public org.apache.tuscany.sca.binding.rss.collection.Collection scaToursBlogRSS; + + /** + * Reference to the BBC News RSS feed. + */ + @Reference + public org.apache.tuscany.sca.binding.rss.collection.Collection bbcNews; + + /** + * {@inheritDoc} + */ + public void logFeeds(int maxEntriesPerFeed) { + System.out.println("Logging SCA Tours Blog Atom feed:"); + logAtomFeed(scaToursBlogAtom, maxEntriesPerFeed); + + System.out.println("Logging SCA Tours Blog RSS feed:"); + logRSSFeed(scaToursBlogRSS, maxEntriesPerFeed); + + System.out.println("Logging BBC News feed:"); + logRSSFeed(bbcNews, maxEntriesPerFeed); + } + + /** + * Logs up to maxEntries entries from the specified feed. + * + * @param maxEntries The maximum number of entries to log per feed + */ + private void logAtomFeed(org.apache.tuscany.sca.binding.atom.collection.Collection atomFeed, int maxEntries) { + final Feed feed = atomFeed.getFeed(); + System.out.println("Feed: " + feed.getTitle()); + final List entries = feed.getEntries(); + + for (int i = 0; i < entries.size() && i < maxEntries; i++) { + Entry entry = entries.get(i); + System.out.println("Entry: " + entry.getTitle()); + } + System.out.println(); + } + + /** + * Logs up to maxEntries entries from the specified feed. + * + * @param maxEntries The maximum number of entries to log + */ + private void logRSSFeed(org.apache.tuscany.sca.binding.rss.collection.Collection rssFeed, int maxEntries) { + SyndFeed feed = rssFeed.getFeed(); + System.out.println("Feed: " + feed.getTitle()); + + List entries = feed.getEntries(); + for (int i = 0; i < entries.size() && i < maxEntries; i++) { + SyndEntry entry = entries.get(i); + System.out.println("Entry: " + entry.getTitle()); + } + System.out.println(); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..556807a0f0 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,21 @@ + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/src/main/resources/feed-logger.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/src/main/resources/feed-logger.composite new file mode 100644 index 0000000000..17c24adefb --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/feed-logger/src/main/resources/feed-logger.composite @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/build.xml new file mode 100644 index 0000000000..0a151c1a20 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/build.xml @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/pom.xml new file mode 100644 index 0000000000..6e2fea39b1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/pom.xml @@ -0,0 +1,57 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-flight + Apache Tuscany SCA Tours Flight Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + scatours-contribution-common + ${pom.version} + provided + + + + junit + junit + 4.5 + test + + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/src/main/java/com/tuscanyscatours/flight/impl/FlightImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/src/main/java/com/tuscanyscatours/flight/impl/FlightImpl.java new file mode 100644 index 0000000000..36407de5b3 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/src/main/java/com/tuscanyscatours/flight/impl/FlightImpl.java @@ -0,0 +1,121 @@ +/* + * 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.flight.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.osoa.sca.annotations.Callback; +import org.osoa.sca.annotations.ComponentName; +import org.osoa.sca.annotations.Init; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.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 Flight service + */ +@Scope("CONVERSATION") +@Service(interfaces = {Search.class, Book.class}) +public class FlightImpl implements Search, Book { + + private List flights = new ArrayList(); + + @Callback + protected SearchCallback searchCallback; + + @ComponentName + protected String componentName; + + private int percentComplete = 0; + + @Init + public void init() { + flights.add(new FlightInfo("EA26", "Europe Airlines Airbus A300", "LGW", "FLR", "06/12/09", "06/12/09", "350", + 250, "EUR", "http://localhost:8085/tbd")); + flights.add(new FlightInfo("EA27", "Europe Airlines Airbus A300", "FLR", "LGW", "13/12/09", "13/12/09", "350", + 250, "EUR", "http://localhost:8085/tbd")); + + } + + public TripItem[] searchSynch(TripLeg tripLeg) { + List items = new ArrayList(); + + // find outbound leg + for (FlightInfo flight : flights) { + if ((flight.getFromLocation().equals(tripLeg.getFromLocation())) && (flight.getToLocation().equals(tripLeg + .getToLocation())) + && (flight.getFromDate().equals(tripLeg.getFromDate()))) { + TripItem item = + new TripItem("", "", TripItem.FLIGHT, flight.getName(), flight.getDescription(), flight + .getFromLocation() + " - " + + flight.getToLocation(), flight.getFromDate(), flight.getToDate(), flight.getPricePerSeat(), + flight.getCurrency(), flight.getLink()); + items.add(item); + } + } + + // find return leg + for (FlightInfo flight : flights) { + if ((flight.getFromLocation().equals(tripLeg.getToLocation())) && (flight.getToLocation().equals(tripLeg + .getFromLocation())) + && (flight.getFromDate().equals(tripLeg.getToDate()))) { + TripItem item = + new TripItem("", "", TripItem.FLIGHT, flight.getName(), flight.getDescription(), flight + .getFromLocation() + " - " + + flight.getToLocation(), flight.getFromDate(), tripLeg.getToDate(), flight.getPricePerSeat(), + flight.getCurrency(), flight.getLink()); + items.add(item); + } + } + + return items.toArray(new TripItem[items.size()]); + } + + public void searchAsynch(TripLeg tripLeg) { + System.out.println("Starting flight search"); + + // pretend that this processing takes some time to complete + while (percentComplete < 100) { + try { + Thread.sleep(50); + } catch (Exception ex) { + // do nothing + } + percentComplete = percentComplete + 10; + searchCallback.setPercentComplete(componentName, percentComplete); + } + + // return available flights + searchCallback.searchResults(searchSynch(tripLeg)); + } + + public int getPercentComplete() { + return 100; + } + + public String book(TripItem tripItem) { + return "flight1"; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/src/main/java/com/tuscanyscatours/flight/impl/FlightInfo.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/src/main/java/com/tuscanyscatours/flight/impl/FlightInfo.java new file mode 100644 index 0000000000..5f7de69229 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/src/main/java/com/tuscanyscatours/flight/impl/FlightInfo.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.flight.impl; + +public class FlightInfo { + + private String name; + private String description; + private String fromLocation; + private String toLocation; + private String fromDate; + private String toDate; + private String seats; + private double pricePerSeat; + private String currency; + private String link; + + public FlightInfo() { + } + + public FlightInfo(String name, + String description, + String fromLocation, + String toLocation, + String fromDate, + String toDate, + String seats, + double pricePerSeat, + String currency, + String link) { + + this.name = name; + this.description = description; + this.fromLocation = fromLocation; + this.toLocation = toLocation; + this.fromDate = fromDate; + this.toDate = toDate; + this.seats = seats; + this.pricePerSeat = pricePerSeat; + 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 getSeats() { + return seats; + } + + public void setSeats(String seats) { + this.seats = seats; + } + + public double getPricePerSeat() { + return pricePerSeat; + } + + public void setPricePerSeat(double pricePerSeat) { + this.pricePerSeat = pricePerSeat; + } + + 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-1.x/tags/travelsample-1.0-RC3/contributions/flight/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..1e539bf13b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/flight/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-bespoketrip/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-bespoketrip/build.xml new file mode 100644 index 0000000000..8428af49f5 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-bespoketrip/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-bespoketrip/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-bespoketrip/pom.xml new file mode 100644 index 0000000000..38a94c12f4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-bespoketrip/pom.xml @@ -0,0 +1,34 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-fullapp-bespoketrip + Apache Tuscany SCA Tours Full Application Bespoke Contribution + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-bespoketrip/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-bespoketrip/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..9ae204d8f7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-bespoketrip/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,28 @@ + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-bespoketrip/src/main/resources/fullapp-bespoketrip.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-bespoketrip/src/main/resources/fullapp-bespoketrip.composite new file mode 100644 index 0000000000..76c91b7887 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-bespoketrip/src/main/resources/fullapp-bespoketrip.composite @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-coordination/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-coordination/build.xml new file mode 100644 index 0000000000..0da4e5aebd --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-coordination/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-coordination/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-coordination/pom.xml new file mode 100644 index 0000000000..e4dadacaed --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-coordination/pom.xml @@ -0,0 +1,34 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-fullapp-coordination + Apache Tuscany SCA Tours Full Application Coordination Contribution + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-coordination/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-coordination/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..a6eb8bcce2 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-coordination/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-coordination/src/main/resources/fullapp-coordination.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-coordination/src/main/resources/fullapp-coordination.composite new file mode 100644 index 0000000000..2d6564ffa3 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-coordination/src/main/resources/fullapp-coordination.composite @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GBP + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-currency/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-currency/build.xml new file mode 100644 index 0000000000..aa6127daf0 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-currency/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-currency/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-currency/pom.xml new file mode 100644 index 0000000000..a1bf4b4ce8 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-currency/pom.xml @@ -0,0 +1,34 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-fullapp-currency + Apache Tuscany SCA Tours Full Application Currency Contribution + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-currency/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-currency/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..dc66ed8db6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-currency/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-currency/src/main/resources/fullapp-currency.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-currency/src/main/resources/fullapp-currency.composite new file mode 100644 index 0000000000..654ff60c41 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-currency/src/main/resources/fullapp-currency.composite @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-packagedtrip/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-packagedtrip/build.xml new file mode 100644 index 0000000000..491f9cafd1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-packagedtrip/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-packagedtrip/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-packagedtrip/pom.xml new file mode 100644 index 0000000000..fe5a2fc96f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-packagedtrip/pom.xml @@ -0,0 +1,34 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-fullapp-packagedtrip + Apache Tuscany SCA Tours Full Application Packaged Trip Contribution + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-packagedtrip/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-packagedtrip/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..3059c49911 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-packagedtrip/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-packagedtrip/src/main/resources/fullapp-packagedtrip.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-packagedtrip/src/main/resources/fullapp-packagedtrip.composite new file mode 100644 index 0000000000..0f8dd33060 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-packagedtrip/src/main/resources/fullapp-packagedtrip.composite @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-shoppingcart/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-shoppingcart/build.xml new file mode 100644 index 0000000000..eccff2291f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-shoppingcart/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-shoppingcart/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-shoppingcart/pom.xml new file mode 100644 index 0000000000..6867d487dc --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-shoppingcart/pom.xml @@ -0,0 +1,34 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-fullapp-shoppingcart + Apache Tuscany SCA Tours Full Application Shopping Cart Contribution + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-shoppingcart/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-shoppingcart/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..384887f792 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-shoppingcart/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-shoppingcart/src/main/resources/fullapp-shoppingcart.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-shoppingcart/src/main/resources/fullapp-shoppingcart.composite new file mode 100644 index 0000000000..ed4fce84d6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-shoppingcart/src/main/resources/fullapp-shoppingcart.composite @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/build.xml new file mode 100644 index 0000000000..51aef70837 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/pom.xml new file mode 100644 index 0000000000..edf5ae7c48 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/pom.xml @@ -0,0 +1,34 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-fullapp-ui + Apache Tuscany SCA Tours Full Application User Interface Contribution + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..104a78cd92 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,28 @@ + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/fullapp-ui.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/fullapp-ui.composite new file mode 100644 index 0000000000..bcfa894ca6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/fullapp-ui.composite @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/scatours.html b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/scatours.html new file mode 100644 index 0000000000..52479c1cde --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/scatours.html @@ -0,0 +1,399 @@ + + + +SCA Tours + + + + + + + + + + + +

+
+

Search for trips, hotels, flights and cars

+
+ + + + + + + + + + + + + + + + + +
From Location:To Location:
Start Date:End Date:
Number of people: + +
+
+ +
+
+
+
+
+
+
+
+

Shopping Cart

+
+
+ Total Price:
+
+ +
+
+ + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/scatours.odg b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/scatours.odg new file mode 100644 index 0000000000..8466377374 Binary files /dev/null and b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/scatours.odg differ diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/scatours.png b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/scatours.png new file mode 100644 index 0000000000..563bf4ea91 Binary files /dev/null and b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/scatours.png differ diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/style.css b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/style.css new file mode 100644 index 0000000000..6e17c2747b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/fullapp-ui/src/main/resources/style.css @@ -0,0 +1,135 @@ +/* + * 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. + */ + + + +/*******************************************/ + +p,table,li,h1,h2,h3 +{ +font-family: verdana, arial, 'sans serif'; +} + +p, h1, h2, h3, table, li, hr +{ +margin-left: 10pt; +} + +table +{ +border-color: black; +border-collapse: separate; +border-spacing: 0px 1px; + +margin-right: 10pt; +margin-left: 10pt; +width: 800px; +} + +.sourceDetailsTable +{ +width: 600px; +} + +tr, td +{ +margin-left: 0pt; +margin-right: 0pt; +padding-left: 10pt; +font-size: 90%; +} + +p,li,th +{ +font-size: 90%; +margin-left: 10pt; +} + +pre +{ +margin-left: 10pt; +} + +body +{ +#ffffff; +} + +h1,h2,h3,hr +{ +color: firebrick; +} + +a:link {COLOR: firebrick;} +a:visited {COLOR: firebrick;} +a:active {COLOR: navy;} + +.link +{ +COLOR: firebrick; +text-decoration: underline; +} + +.clickable +{ +cursor: pointer +} + +.unread_title +{ +font-weight: bold; +} + +.read_title +{ +font-weight: normal; +} + +.summary +{ +color: DimGrey; +} + +.hidden +{ +display: none; +} + +.source_name +{ +width: 600px; +} + +.alert_text +{ +width: 600px; +} + +.alert_data +{ +margin-left: 10px; +width: 800px; +height: 800px; +} + +.source_0 +{ +background-color: LightGreen; +} + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/build.xml new file mode 100644 index 0000000000..7f77b9270d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/pom.xml new file mode 100644 index 0000000000..cc4a64a56f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/pom.xml @@ -0,0 +1,50 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-help-pages + Apache Tuscany SCA Tours Help Pages Contribution + + + + org.apache.tuscany.sca + tuscany-implementation-resource-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-http-runtime + ${tuscany.version} + runtime + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..038f9260b4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,22 @@ + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help-pages.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help-pages.composite new file mode 100644 index 0000000000..1ef8c0a6b1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help-pages.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help_pages/BookingAHoliday.html b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help_pages/BookingAHoliday.html new file mode 100644 index 0000000000..194ecd1183 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help_pages/BookingAHoliday.html @@ -0,0 +1,34 @@ + + + + + +Tuscany SCA Tours Help - Booking a holiday + + + +

Tuscany SCA Tours Help Pages - Booking a holiday

+ +

This page contains instructions on how to book a holiday with SCA Tours

+ +

More help text would go here.....

+ + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help_pages/BookingAHotel.html b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help_pages/BookingAHotel.html new file mode 100644 index 0000000000..bde4d25226 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help_pages/BookingAHotel.html @@ -0,0 +1,34 @@ + + + + + +Tuscany SCA Tours Help - Booking a hotel + + + +

Tuscany SCA Tours Help Pages - Booking a hotel

+ +

This page contains instructions on how to book a hotel with SCA Tours

+ +

More help text would go here.....

+ + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help_pages/MakingPayments.html b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help_pages/MakingPayments.html new file mode 100644 index 0000000000..a1b24f4d23 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help_pages/MakingPayments.html @@ -0,0 +1,34 @@ + + + + + +Tuscany SCA Tours Help - Making Payments + + + +

Tuscany SCA Tours Help Pages - Making Payments

+ +

This page contains instructions on how to make payments to SCA Tours

+ +

More help text would go here.....

+ + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help_pages/index.html b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help_pages/index.html new file mode 100644 index 0000000000..4972752ea1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/help-pages/src/main/resources/help_pages/index.html @@ -0,0 +1,59 @@ + + + + + +Tuscany SCA Tours Help + + + +

Tuscany SCA Tours Help Pages

+ +

Welcome to the Tuscany SCA Tours help pages.

+

How can we help you?

+ +

Making a booking

+ + +

Making payments

+ + +

Preparing to travel

+
    +
  • Passports and Visas
  • +
  • Pre-travel health checks
  • +
  • Things to pack checklist
  • +
+ +

Contact customer support

+
    +
  • By Email
  • +
  • By Phone
  • +
  • By Post
  • +
+ + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/build.xml new file mode 100644 index 0000000000..f624c43a01 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/build.xml @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/pom.xml new file mode 100644 index 0000000000..fa05bc968a --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/pom.xml @@ -0,0 +1,49 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-hotel + Apache Tuscany SCA Tours Hotel Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + scatours-contribution-common + ${pom.version} + provided + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/src/main/java/com/tuscanyscatours/hotel/HotelInfo.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/src/main/java/com/tuscanyscatours/hotel/HotelInfo.java new file mode 100644 index 0000000000..e2912c50fc --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/src/main/java/com/tuscanyscatours/hotel/HotelInfo.java @@ -0,0 +1,118 @@ +/* + * 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.hotel; + +public class HotelInfo { + + private String name; + private String description; + private String location; + private String date; + private String beds; + private double pricePerBed; + private String currency; + private String link; + + public HotelInfo() { + } + + public HotelInfo(String name, + String description, + String location, + String date, + String beds, + double pricePerBed, + String currency, + String link) { + + this.name = name; + this.description = description; + this.location = location; + this.date = date; + this.beds = beds; + this.pricePerBed = pricePerBed; + 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 getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getDate() { + return date; + } + + public void setDate(String date) { + this.date = date; + } + + public String getBeds() { + return beds; + } + + public void setBeds(String beds) { + this.beds = beds; + } + + public double getPricePerBed() { + return pricePerBed; + } + + public void setPricePerBed(double pricePerBed) { + this.pricePerBed = pricePerBed; + } + + 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-1.x/tags/travelsample-1.0-RC3/contributions/hotel/src/main/java/com/tuscanyscatours/hotel/HotelManagement.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/src/main/java/com/tuscanyscatours/hotel/HotelManagement.java new file mode 100644 index 0000000000..476da9a544 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/src/main/java/com/tuscanyscatours/hotel/HotelManagement.java @@ -0,0 +1,24 @@ +/* + * 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.hotel; + +public interface HotelManagement { + void addHotelInfo(HotelInfo hotelInfo); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/src/main/java/com/tuscanyscatours/hotel/impl/HotelImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/src/main/java/com/tuscanyscatours/hotel/impl/HotelImpl.java new file mode 100644 index 0000000000..fe8953ea0e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/src/main/java/com/tuscanyscatours/hotel/impl/HotelImpl.java @@ -0,0 +1,105 @@ +/* + * 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.hotel.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.osoa.sca.annotations.Callback; +import org.osoa.sca.annotations.Init; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.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; +import com.tuscanyscatours.hotel.HotelInfo; +import com.tuscanyscatours.hotel.HotelManagement; + +/** + * An implementation of the Hotel service + */ +@Scope("STATELESS") +@Service(interfaces = {Search.class, Book.class, HotelManagement.class}) +public class HotelImpl implements Search, Book, HotelManagement { + + private List hotels = new ArrayList(); + + @Callback + protected SearchCallback searchCallback; + + @Init + public void init() { + hotels.add(new HotelInfo("Deep Bay Hotel", "Wonderful sea views and a relaxed atmosphere", "FLR", "06/12/09", + "200", 100, "EUR", "http://localhost:8085/tbd")); + hotels.add(new HotelInfo("Long Bay Hotel", "Friendly staff and an ocean breeze", "FLR", "06/12/09", "200", 100, + "EUR", "http://localhost:8085/tbd")); + hotels.add(new HotelInfo("City Hotel", "Smart rooms and early breakfasts", "FLR", "06/12/09", "200", 100, + "EUR", "http://localhost:8085/tbd")); + hotels.add(new HotelInfo("County Hotel", "The smell of the open country", "FLR", "06/12/09", "200", 100, "EUR", + "http://localhost:8085/tbd")); + } + + public TripItem[] searchSynch(TripLeg tripLeg) { + List items = new ArrayList(); + + // find available hotels + for (HotelInfo hotel : hotels) { + if (hotel.getLocation().equals(tripLeg.getToLocation())) { + TripItem item = + new TripItem("", "", TripItem.HOTEL, hotel.getName(), hotel.getDescription(), hotel.getLocation(), + tripLeg.getFromDate(), tripLeg.getToDate(), hotel.getPricePerBed(), hotel + .getCurrency(), hotel.getLink()); + items.add(item); + } + } + + return items.toArray(new TripItem[items.size()]); + } + + public void searchAsynch(TripLeg tripLeg) { + System.out.println("Starting hotel search"); + + // pretend that this processing takes some time to complete + try { + Thread.sleep(3000); + } catch (Exception ex) { + // do nothing + } + + // return available hotels + TripItem[] items = searchSynch(tripLeg); + searchCallback.searchResults(items); + } + + public int getPercentComplete() { + return 100; + } + + public String book(TripItem tripItem) { + return "hotel1"; + } + + public void addHotelInfo(HotelInfo hotelInfo) { + hotels.add(hotelInfo); + System.out.println("Added hotel info - " + hotelInfo.getName()); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..40382221a5 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/hotel/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/build.xml new file mode 100644 index 0000000000..0d03b5401d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/build.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/pom.xml new file mode 100644 index 0000000000..72b335074a --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/pom.xml @@ -0,0 +1,77 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-interaction-client + Apache Tuscany SCA Tours Interaction Client Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + scatours-contribution-common + ${pom.version} + provided + + + + org.apache.tuscany.sca + scatours-contribution-calendar + ${pom.version} + provided + + + + org.apache.tuscany.sca + scatours-contribution-hotel + ${pom.version} + provided + + + + org.apache.tuscany.sca + scatours-contribution-currency + ${pom.version} + provided + + + + org.apache.tuscany.sca + scatours-contribution-shoppingcart + ${pom.version} + provided + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionConversationClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionConversationClientImpl.java new file mode 100644 index 0000000000..290e6e6aee --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionConversationClientImpl.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.client.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.common.TripItem; +import com.tuscanyscatours.shoppingcart.CartStore; + +@Scope("COMPOSITE") +@Service(Runnable.class) +public class InteractionConversationClientImpl implements Runnable { + + @Reference + protected CartStore cartStoreConversation; + + public void run() { + System.out.println("\nCalling cart store using the conversational interaction pattern"); + + // add some trip items to the cart store + TripItem tripItem = getTestTripItem(); + cartStoreConversation.addTrip(tripItem); + + tripItem.setDescription("2nd trip item"); + cartStoreConversation.addTrip(tripItem); + + tripItem.setDescription("3rd trip item"); + cartStoreConversation.addTrip(tripItem); + + System.out.println("Trip items now in cart"); + TripItem[] tripItems = cartStoreConversation.getTrips(); + for (TripItem item : tripItems) { + System.out.println("Item - " + item.getDescription()); + } + + System.out.println("Reset the cart"); + cartStoreConversation.reset(); + + System.out.println("Trip items now in cart"); + tripItems = cartStoreConversation.getTrips(); + for (TripItem item : tripItems) { + System.out.println("Item - " + item.getDescription()); + } + } + + private TripItem getTestTripItem() { + TripItem tripItem = new TripItem(); + tripItem.setLocation("FLR"); + tripItem.setFromDate("06/12/09 00:00"); + tripItem.setToDate("13/12/09 00:00"); + tripItem.setDescription("1st trip item"); + return tripItem; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionLocalClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionLocalClientImpl.java new file mode 100644 index 0000000000..ca3cb2874a --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionLocalClientImpl.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.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.calendar.Calendar; +import com.tuscanyscatours.common.TripLeg; + +@Service(Runnable.class) +public class InteractionLocalClientImpl implements Runnable { + + @Reference + protected Calendar calendarLocal; + + public void run() { + System.out.println("\nCalling calendar component over a 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/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionOneWayCallbackClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionOneWayCallbackClientImpl.java new file mode 100644 index 0000000000..9689ce8e0c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionOneWayCallbackClientImpl.java @@ -0,0 +1,78 @@ +/* + * 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.impl; + +import java.util.concurrent.CountDownLatch; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.common.Search; +import com.tuscanyscatours.common.SearchCallback; +import com.tuscanyscatours.common.TripItem; +import com.tuscanyscatours.common.TripLeg; + +@Scope("COMPOSITE") +@Service(Runnable.class) +public class InteractionOneWayCallbackClientImpl implements Runnable, SearchCallback { + + @Reference + protected Search hotelSearchOneWayCallback; + + CountDownLatch resultsReceivedCountdown; + + public void run() { + System.out.println("\nCalling hotel component using both one way and callback interation patterns"); + resultsReceivedCountdown = new CountDownLatch(1); + TripLeg tripLeg = getTestTripLeg(); + hotelSearchOneWayCallback.searchAsynch(tripLeg); + + // start other searched here while the hotel search progresses + + // wait for responses to come back + try { + resultsReceivedCountdown.await(); + } catch (InterruptedException ex) { + } + } + + public void searchResults(TripItem[] items) { + for (TripItem tripItem : items) { + System.out.println("Found hotel - " + tripItem.getName()); + } + resultsReceivedCountdown.countDown(); + } + + public void setPercentComplete(String searchComponent, int percentComplete) { + // Not used in this sample + } + + 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/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionRemoteClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionRemoteClientImpl.java new file mode 100644 index 0000000000..1fd9d9cbe8 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionRemoteClientImpl.java @@ -0,0 +1,64 @@ +/* + * 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.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.common.Search; +import com.tuscanyscatours.common.SearchCallback; +import com.tuscanyscatours.common.TripItem; +import com.tuscanyscatours.common.TripLeg; + +@Service(Runnable.class) +public class InteractionRemoteClientImpl implements Runnable, SearchCallback { + + @Reference + protected Search hotelSearchRemote; + + public void run() { + System.out.println("\nCalling hotel component over a 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 + } + + public void setPercentComplete(String searchComponent, int percentComplete) { + // Not used in this sample + } + + 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/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionRequestResponseClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionRequestResponseClientImpl.java new file mode 100644 index 0000000000..d1438434ae --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/java/scatours/client/impl/InteractionRequestResponseClientImpl.java @@ -0,0 +1,39 @@ +/* + * 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.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.currencyconverter.CurrencyConverter; + +@Service(Runnable.class) +public class InteractionRequestResponseClientImpl implements Runnable { + + @Reference + protected CurrencyConverter currencyConverterRequestResponse; + + public void run() { + System.out.println("\nCalling currency converter component using request response interation pattern"); + double exchangeRate = currencyConverterRequestResponse.getExchangeRate("GBP", "USD"); + System.out.println("GBP to USD exchange rate is " + exchangeRate); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..283a1588df --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/resources/client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/resources/client.composite new file mode 100644 index 0000000000..1c8552974b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-client/src/main/resources/client.composite @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-service-remote/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-service-remote/build.xml new file mode 100644 index 0000000000..10451b6248 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-service-remote/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-service-remote/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-service-remote/pom.xml new file mode 100644 index 0000000000..ebe4f813d5 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-service-remote/pom.xml @@ -0,0 +1,34 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-interaction-service-remote + Apache Tuscany SCA Tours Interaction Service Remote Contribution + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-service-remote/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-service-remote/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..c26d63563b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-service-remote/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-service-remote/src/main/resources/service.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-service-remote/src/main/resources/service.composite new file mode 100644 index 0000000000..0f368da1ed --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/interaction-service-remote/src/main/resources/service.composite @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/build.xml new file mode 100644 index 0000000000..6a85f2066e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/build.xml @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/pom.xml new file mode 100644 index 0000000000..0f65f7f5e2 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/pom.xml @@ -0,0 +1,49 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-introducing-client + Apache Tuscany SCA Tours Introducing Client Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + scatours-contribution-introducing-tours + ${pom.version} + provided + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/src/main/java/scatours/client/impl/TestClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/src/main/java/scatours/client/impl/TestClientImpl.java new file mode 100644 index 0000000000..f81a2c7304 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/src/main/java/scatours/client/impl/TestClientImpl.java @@ -0,0 +1,47 @@ +/* + * 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.impl; + +import java.math.BigDecimal; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.Bookings; +import com.tuscanyscatours.Checkout; + +@Service(Runnable.class) +public class TestClientImpl { + @Reference + protected Bookings bookings; + + @Reference + protected Checkout checkout; + + public TestClientImpl() { + } + + public void run() { + String bookingCode = bookings.newBooking("FS1APR4", 1); + System.out.println("Booking code is " + bookingCode); + + checkout.makePayment(new BigDecimal("1995.00"), "1234567843218765 10/10"); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..9ce11f16ef --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/src/main/resources/client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/src/main/resources/client.composite new file mode 100644 index 0000000000..3a404eb10d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-client/src/main/resources/client.composite @@ -0,0 +1,29 @@ + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/build.xml new file mode 100644 index 0000000000..f269f6577b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/pom.xml new file mode 100644 index 0000000000..e3647bee6a --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/pom.xml @@ -0,0 +1,42 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-introducing-tours + Apache Tuscany SCA Tours Introducing Tours Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/goodvaluetrips/Trips.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/goodvaluetrips/Trips.java new file mode 100644 index 0000000000..365a210368 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/goodvaluetrips/Trips.java @@ -0,0 +1,26 @@ +/* + * 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.goodvaluetrips; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Trips { + String checkAvailability(String trip, int people); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/Bookings.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/Bookings.java new file mode 100644 index 0000000000..9d54d46bb6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/Bookings.java @@ -0,0 +1,26 @@ +/* + * 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; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Bookings { + String newBooking(String trip, int people); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/Checkout.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/Checkout.java new file mode 100644 index 0000000000..29c84d2bc0 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/Checkout.java @@ -0,0 +1,28 @@ +/* + * 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; + +import java.math.BigDecimal; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Checkout { + void makePayment(BigDecimal amount, String cardInfo); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/Updates.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/Updates.java new file mode 100644 index 0000000000..e33b0399cb --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/Updates.java @@ -0,0 +1,26 @@ +/* + * 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; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Updates { + void addTrip(String resCode); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/impl/ShoppingCartImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/impl/ShoppingCartImpl.java new file mode 100644 index 0000000000..629ea7b5ec --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/impl/ShoppingCartImpl.java @@ -0,0 +1,49 @@ +/* + * 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.impl; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +import com.tuscanyscatours.Checkout; +import com.tuscanyscatours.Updates; + +public class ShoppingCartImpl implements Checkout, Updates { + private static List bookedTrips = new ArrayList(); + + protected String currency = "USD"; + + public void makePayment(BigDecimal amount, String cardInfo) { + System.out.print("Charged " + currency + " " + amount + + " to card " + + cardInfo + + " for " + + (bookedTrips.size() > 1 ? "trips" : "trip")); + for (String trip : bookedTrips) { + System.out.print(" " + trip); + } + System.out.println(); + bookedTrips.clear(); + } + + public void addTrip(String resCode) { + bookedTrips.add(resCode); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/impl/TripBookingImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/impl/TripBookingImpl.java new file mode 100644 index 0000000000..f2884f87c5 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/java/com/tuscanyscatours/impl/TripBookingImpl.java @@ -0,0 +1,39 @@ +/* + * 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.impl; + +import org.osoa.sca.annotations.Reference; + +import com.goodvaluetrips.Trips; +import com.tuscanyscatours.Bookings; +import com.tuscanyscatours.Updates; + +public class TripBookingImpl implements Bookings { + @Reference + protected Trips mytrips; + + @Reference + protected Updates cart; + + public String newBooking(String trip, int people) { + String resCode = mytrips.checkAvailability(trip, people); + cart.addTrip(resCode); + return "GV" + resCode; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..5f76588dad --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/resources/tours.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/resources/tours.composite new file mode 100644 index 0000000000..6d47793aa4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-tours/src/main/resources/tours.composite @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/build.xml new file mode 100644 index 0000000000..9d65c703b7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/pom.xml new file mode 100644 index 0000000000..b1d29e8bcb --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/pom.xml @@ -0,0 +1,42 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-introducing-trips + Apache Tuscany SCA Tours Introducing Trips Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/src/main/java/com/goodvaluetrips/Trips.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/src/main/java/com/goodvaluetrips/Trips.java new file mode 100644 index 0000000000..365a210368 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/src/main/java/com/goodvaluetrips/Trips.java @@ -0,0 +1,26 @@ +/* + * 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.goodvaluetrips; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Trips { + String checkAvailability(String trip, int people); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/src/main/java/com/goodvaluetrips/impl/TripProviderImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/src/main/java/com/goodvaluetrips/impl/TripProviderImpl.java new file mode 100644 index 0000000000..06f93f2637 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/src/main/java/com/goodvaluetrips/impl/TripProviderImpl.java @@ -0,0 +1,28 @@ +/* + * 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.goodvaluetrips.impl; + +import com.goodvaluetrips.Trips; + +public class TripProviderImpl implements Trips { + public String checkAvailability(String trip, int people) { + // call non-SCA code to reserve trip and return booking code + return "6R98Y"; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..85e064b1a2 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/src/main/resources/trips.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/src/main/resources/trips.composite new file mode 100644 index 0000000000..8d1db35b1f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/introducing-trips/src/main/resources/trips.composite @@ -0,0 +1,30 @@ + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-corba/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-corba/build.xml new file mode 100644 index 0000000000..1baf6ab153 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-corba/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-corba/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-corba/pom.xml new file mode 100644 index 0000000000..1d543221a4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-corba/pom.xml @@ -0,0 +1,43 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-notification-corba + Apache Tuscany SCA Tours Notification Contribution Which Uses SMSGateway CORBA Service + + + + org.apache.tuscany.sca + tuscany-binding-corba-runtime + ${tuscany.version} + runtime + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-corba/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-corba/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..373d1494f6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-corba/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-corba/src/main/resources/notification-corba.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-corba/src/main/resources/notification-corba.composite new file mode 100644 index 0000000000..8baca02509 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-corba/src/main/resources/notification-corba.composite @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ejb/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ejb/build.xml new file mode 100644 index 0000000000..3b7e660a5d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ejb/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ejb/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ejb/pom.xml new file mode 100644 index 0000000000..36d43ef326 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ejb/pom.xml @@ -0,0 +1,43 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-notification-ejb + Apache Tuscany SCA Tours Notification Contribution Which Uses SMSGateway EJB Service + + + + org.apache.tuscany.sca + tuscany-binding-ejb-runtime + ${tuscany.version} + runtime + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ejb/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ejb/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..373d1494f6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ejb/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ejb/src/main/resources/notification-ejb.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ejb/src/main/resources/notification-ejb.composite new file mode 100644 index 0000000000..11b632fd79 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ejb/src/main/resources/notification-ejb.composite @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-jms/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-jms/build.xml new file mode 100644 index 0000000000..0b1b80c44f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-jms/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-jms/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-jms/pom.xml new file mode 100644 index 0000000000..f90cbd9cc5 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-jms/pom.xml @@ -0,0 +1,43 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-notification-jms + Apache Tuscany SCA Tours Notification Contribution Which Uses SMSGateway JMS Service + + + + org.apache.tuscany.sca + tuscany-binding-jms-runtime + ${tuscany.version} + runtime + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-jms/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-jms/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..373d1494f6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-jms/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-jms/src/main/resources/notification-jms.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-jms/src/main/resources/notification-jms.composite new file mode 100644 index 0000000000..dfd96ae918 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-jms/src/main/resources/notification-jms.composite @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-rmi/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-rmi/build.xml new file mode 100644 index 0000000000..de8d5bbb06 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-rmi/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-rmi/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-rmi/pom.xml new file mode 100644 index 0000000000..44ecdbc9cd --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-rmi/pom.xml @@ -0,0 +1,43 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-notification-rmi + Apache Tuscany SCA Tours Notification Contribution Which Uses SMSGateway RMI Service + + + + org.apache.tuscany.sca + tuscany-binding-rmi-runtime + ${tuscany.version} + runtime + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-rmi/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-rmi/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..373d1494f6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-rmi/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-rmi/src/main/resources/notification-rmi.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-rmi/src/main/resources/notification-rmi.composite new file mode 100644 index 0000000000..e80c381b55 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-rmi/src/main/resources/notification-rmi.composite @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ws/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ws/build.xml new file mode 100644 index 0000000000..bac935bc5a --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ws/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ws/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ws/pom.xml new file mode 100644 index 0000000000..a3b00f1500 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ws/pom.xml @@ -0,0 +1,43 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-notification-ws + Apache Tuscany SCA Tours Notification Contribution Which Uses SMSGateway Web Service + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ws/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ws/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..373d1494f6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ws/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ws/src/main/resources/notification-ws.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ws/src/main/resources/notification-ws.composite new file mode 100644 index 0000000000..e2051ad612 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification-ws/src/main/resources/notification-ws.composite @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/build.xml new file mode 100644 index 0000000000..ff7e56c8b7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/pom.xml new file mode 100644 index 0000000000..cc6c38c267 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/pom.xml @@ -0,0 +1,49 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-notification + Apache Tuscany SCA Tours Notification Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/src/main/java/com/tuscanyscatours/notification/Notification.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/src/main/java/com/tuscanyscatours/notification/Notification.java new file mode 100644 index 0000000000..7ae26b93e4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/src/main/java/com/tuscanyscatours/notification/Notification.java @@ -0,0 +1,26 @@ +/* + * 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.notification; + +public interface Notification { + + boolean notify(String accountID, String subject, String message); + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/src/main/java/com/tuscanyscatours/notification/impl/NotificationImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/src/main/java/com/tuscanyscatours/notification/impl/NotificationImpl.java new file mode 100644 index 0000000000..58d590242d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/src/main/java/com/tuscanyscatours/notification/impl/NotificationImpl.java @@ -0,0 +1,58 @@ +/* + * 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.notification.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.notification.Notification; +import com.tuscanyscatours.smsgateway.SMSGateway; + +@Service(Notification.class) +public class NotificationImpl implements Notification { + + /** + * Use "Fake" phone number that has been reserved by Ofcom. + * See: http://www.ofcom.org.uk/telecoms/ioi/numbers/num_drama?a=87101 + */ + private static final String SCA_TOURS_SMS = "+44(0)2079460723"; + + @Reference + protected SMSGateway smsGateway; + + public boolean notify(String accountID, String subject, String message) { + + boolean result = true; + + String sms = getSMSAddress(accountID); + if (sms != null) { + System.out.println("Sending SMS to " + sms + " for accountID " + accountID); + result &= smsGateway.sendSMS(SCA_TOURS_SMS, sms, subject + ". " + message); + } + + return result; + } + + private String getSMSAddress(String accountID) { + // Use "Fake" phone number that has been reserved by Ofcom. + // See: http://www.ofcom.org.uk/telecoms/ioi/numbers/num_drama?a=87101 + return "+44(0)7700900812"; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/src/main/java/com/tuscanyscatours/smsgateway/SMSGateway.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/src/main/java/com/tuscanyscatours/smsgateway/SMSGateway.java new file mode 100644 index 0000000000..fdf5872565 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/src/main/java/com/tuscanyscatours/smsgateway/SMSGateway.java @@ -0,0 +1,30 @@ +/* + * 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.smsgateway; + +import org.osoa.sca.annotations.Remotable; + +/** + * A gateway to send SMS messages. + */ +@Remotable +public interface SMSGateway { + boolean sendSMS(String fromNumber, String toNumber, String text); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..518c7e363b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/notification/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/build.xml new file mode 100644 index 0000000000..5e2921995c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/build.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/pom.xml new file mode 100644 index 0000000000..ab331b303b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/pom.xml @@ -0,0 +1,46 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-payment-bpel-process + Apache Tuscany SCA Tours Payment BPEL Process Contribution + + + ${artifactId} + + + org.apache.maven.plugins + maven-jar-plugin + 2.2 + + + **/*.cbp + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/CreditCardPayment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/CreditCardPayment.wsdl new file mode 100644 index 0000000000..22ef6de317 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/CreditCardPayment.wsdl @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/EmailGateway.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/EmailGateway.wsdl new file mode 100644 index 0000000000..a097d9b7e4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/EmailGateway.wsdl @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..f32584eee1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/Payment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/Payment.wsdl new file mode 100644 index 0000000000..e2c4062f2e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/Payment.wsdl @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/payment.bpel b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/payment.bpel new file mode 100644 index 0000000000..e304d3a349 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel-process/src/main/resources/payment.bpel @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Visa + 12345678 + 2 + 2010 + + Empty +
+ 1 The Road + Winchester + Hampshire + AB1 2CD + 12345678 +
+
+
+ 0.0 +
+
+
+ $authorizeRequestMessage.parameters +
+ + $makePaymentMemberRequestMessage.parameters/CustomerId/text() + $authorizeRequestMessage.parameters/CreditCard/CardOwner/Name + + + $makePaymentMemberRequestMessage.parameters/Amount/text() + $authorizeRequestMessage.parameters/Amount + +
+ + + + + + + + + + + Default + Payment Confirmation + Your payment has been confirmed + + + + + $sendEmailRequestMessage.parameters + + + $makePaymentMemberRequestMessage.parameters/CustomerId/text() + $sendEmailRequestMessage.parameters/Email/To + + + + + + + + + + + + OK + + + $makePaymentMemberResponseMessage.parameters + + + + + + +
+
diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/build.xml new file mode 100644 index 0000000000..a725645c77 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/build.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/log4j.properties b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/log4j.properties new file mode 100644 index 0000000000..7ed0bcaf77 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/log4j.properties @@ -0,0 +1,36 @@ +# +# 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. +# + +# Set root logger level to WARN and its only appender to CONSOLE +log4j.rootLogger=OFF, CONSOLE + +# log4j properties to work with commandline tools. +log4j.category.org.mortbay=OFF +log4j.category.org.hibernate.type=OFF +log4j.category.org.objectweb=OFF +log4j.category.org.apache.ode.axis2=OFF +log4j.category.org.apache.ode.bpel.engine=DEBUG +log4j.category.org.apache.ode.daohib.bpel.CorrelatorDaoImpl=OFF +log4j.category.org.apache.ode.bpel.epr=OFF +log4j.category.org.apache.tuscany.sca.implementation.bpel=DEBUG +log4j.category.org.apache.tuscany.sca.implementation.bpel.ode=DEBUG +log4j.category.org.apache.tuscany.sca.implementation.bpel.provider=DEBUG + +# Console appender +log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender +log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout +log4j.appender.CONSOLE.layout.ConversionPattern=[%p] - %C{1}.%M(%L) | %m%n diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/pom.xml new file mode 100644 index 0000000000..6d1089c5da --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/pom.xml @@ -0,0 +1,214 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-payment-bpel + Apache Tuscany SCA Tours Payment BPEL Contribution + + + + javax.xml.bind + jaxb-api + 2.1 + + + + javax.xml.ws + jaxws-api + 2.1 + + + javax.xml.soap + saaj-api + + + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-implementation-bpel-ode + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-host-jetty + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + ${artifactId} + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + add-source + generate-sources + + add-source + + + + target/jaxws-source + + + + + + + org.codehaus.mojo + jaxws-maven-plugin + 1.12 + + + wsimport + generate-sources + + wsimport + + + com.tuscanyscatours.payment + ${basedir}/src/main/resources + + Payment.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/payment.stale + false + true + + + + payment.creditcard + process-sources + + wsimport + + + com.tuscanyscatours.payment.creditcard + ${basedir}/src/main/resources + + CreditCardPayment.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/creditcard.stale + false + true + + + + emailgateway + process-sources + + wsimport + + + com.tuscanyscatours.emailgateway + ${basedir}/src/main/resources + + EmailGateway.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/emailgateway.stale + false + true + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + 2.3.1 + + false + false + true + + + + org.apache.maven.plugins + maven-dependency-plugin + + + unpack + test-compile + + unpack + + + + + org.apache.ode + ode-dao-jpa-ojpa-derby + 1.1.1 + zip + true + ${project.build.directory}/test-classes/ + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/CreditCardPayment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/CreditCardPayment.wsdl new file mode 100644 index 0000000000..22ef6de317 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/CreditCardPayment.wsdl @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/EmailGateway.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/EmailGateway.wsdl new file mode 100644 index 0000000000..a097d9b7e4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/EmailGateway.wsdl @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..e95a8bf0a3 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/Payment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/Payment.wsdl new file mode 100644 index 0000000000..e2c4062f2e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/Payment.wsdl @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/payment.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/payment.composite new file mode 100644 index 0000000000..5c337799a7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/main/resources/payment.composite @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/test/java/scatours/payment/PaymentTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/test/java/scatours/payment/PaymentTestCase.java new file mode 100644 index 0000000000..6db4934edf --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/test/java/scatours/payment/PaymentTestCase.java @@ -0,0 +1,87 @@ +/* + * 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.payment; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.tuscanyscatours.payment.Payment; + +/** + * + */ +public class PaymentTestCase { + private static SCANode paymentNode; + private static SCANode creditCardNode; + private static SCANode emailGatewayNode; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + creditCardNode = + SCANodeFactory.newInstance() + .createSCANode("creditcard.composite", + new SCAContribution("creditcard", "../creditcard-payment-jaxb/target/classes")); + + creditCardNode.start(); + + emailGatewayNode = + SCANodeFactory.newInstance().createSCANode("emailgateway.composite", + new SCAContribution("emailgateway", + "../emailgateway/target/classes"), + new SCAContribution("emailgateway-test", + "../emailgateway/target/test-classes")); + + emailGatewayNode.start(); + + paymentNode = + SCANodeFactory.newInstance() + .createSCANode(null, + new SCAContribution("payment-bpel-process", + "../payment-bpel-process/target/classes"), + new SCAContribution("payment-bpel", "./target/classes"), + new SCAContribution("payment-bpel-test", "./target/test-classes")); + + paymentNode.start(); + } + + @Test + public void testPayment() { + SCAClient client = (SCAClient)paymentNode; + Payment payment = client.getService(Payment.class, "PaymentClient"); + String result = payment.makePaymentMember("Fred", 100.00f); + System.out.println("Result = " + result); + if (!"OK".equals(result)) { + throw new RuntimeException(result); + } + } + + @AfterClass + public static void tearDownAfterClass() throws Exception { + paymentNode.stop(); + creditCardNode.stop(); + emailGatewayNode.stop(); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java new file mode 100644 index 0000000000..a38ba51ac5 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java @@ -0,0 +1,37 @@ +/* + * 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.payment.client.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.payment.Payment; + +@Service(Payment.class) +public class PaymentClientImpl implements Payment { + @Reference + protected Payment payment; + + public String makePaymentMember(String customerId, float amount) { + // Delegate the external web service + return payment.makePaymentMember(customerId, amount); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/test/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/test/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..fcfc2d7c61 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/test/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/test/resources/payment-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/test/resources/payment-client.composite new file mode 100644 index 0000000000..a5110aacff --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-bpel/src/test/resources/payment-client.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/build.xml new file mode 100644 index 0000000000..bc16f99976 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/build.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/pom.xml new file mode 100644 index 0000000000..8294c5d66e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/pom.xml @@ -0,0 +1,161 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-payment-groovy + Apache Tuscany SCA Tours Payment Groovy Contribution + + + + + javax.xml.bind + jaxb-api + 2.1 + + + + javax.xml.ws + jaxws-api + 2.1 + + + javax.xml.soap + saaj-api + + + + + + org.apache.tuscany.sca + tuscany-implementation-script + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-host-jetty + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + ${artifactId} + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + add-source + generate-sources + + add-source + + + + target/jaxws-source + + + + + + + org.codehaus.mojo + jaxws-maven-plugin + 1.12 + + + payment + generate-sources + + wsimport + + + com.tuscanyscatours.payment + ${basedir}/src/main/resources + + Payment.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/payment.stale + false + true + + + + emailgateway + process-sources + + wsimport + + + com.tuscanyscatours.emailgateway + ${basedir}/src/main/resources + + EmailGateway.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/emailgateway.stale + false + true + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/EmailGateway.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/EmailGateway.wsdl new file mode 100644 index 0000000000..a097d9b7e4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/EmailGateway.wsdl @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..36e2990be1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/Payment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/Payment.wsdl new file mode 100644 index 0000000000..2519d7642e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/Payment.wsdl @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/payment.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/payment.composite new file mode 100644 index 0000000000..071c6786d1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/payment.composite @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + 0.02 + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/payment/PaymentImpl.groovy b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/payment/PaymentImpl.groovy new file mode 100644 index 0000000000..854fbd2f4a --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/main/resources/payment/PaymentImpl.groovy @@ -0,0 +1,31 @@ +/* + * 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. + */ + +def makePaymentMember(customerId, amount) { + + def finalAmount = amount + transactionFee; + + com.tuscanyscatours.emailgateway.EmailType email = new com.tuscanyscatours.emailgateway.EmailType(); + email.setTo(customerId); + email.setTitle("Payment " + finalAmount + " Received"); + + emailGateway.sendEmail(email); + + return "Success"; +} \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/test/java/scatours/payment/PaymentTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/test/java/scatours/payment/PaymentTestCase.java new file mode 100644 index 0000000000..c96fddb6b3 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/test/java/scatours/payment/PaymentTestCase.java @@ -0,0 +1,77 @@ +/* + * 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.payment; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.tuscanyscatours.payment.Payment; + +/** + * + */ +public class PaymentTestCase { + + private static SCANode paymentNode; + private static SCANode emailGatewayNode; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + emailGatewayNode = + SCANodeFactory.newInstance().createSCANode("emailgateway.composite", + new SCAContribution("emailgateway", + "../emailgateway/target/classes"), + new SCAContribution("emailgateway-test", + "../emailgateway/target/test-classes")); + + emailGatewayNode.start(); + + paymentNode = + SCANodeFactory.newInstance().createSCANode(null, + new SCAContribution("payment-groovy", "./target/classes"), + new SCAContribution("payment-groovy-test", + "./target/test-classes")); + + paymentNode.start(); + } + + @Test + public void testPayment() { + SCAClient client = (SCAClient)paymentNode; + Payment payment = client.getService(Payment.class, "PaymentClient"); + String result = payment.makePaymentMember("Fred", 100.00f); + System.out.println("Result = " + result); + if (!"Success".equals(result)) { + throw new RuntimeException(result); + } + } + + @AfterClass + public static void tearDownAfterClass() throws Exception { + paymentNode.stop(); + emailGatewayNode.stop(); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java new file mode 100644 index 0000000000..a38ba51ac5 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java @@ -0,0 +1,37 @@ +/* + * 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.payment.client.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.payment.Payment; + +@Service(Payment.class) +public class PaymentClientImpl implements Payment { + @Reference + protected Payment payment; + + public String makePaymentMember(String customerId, float amount) { + // Delegate the external web service + return payment.makePaymentMember(customerId, amount); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/test/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/test/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..9b3e309d11 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/test/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/test/resources/payment-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/test/resources/payment-client.composite new file mode 100644 index 0000000000..353c1cea04 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-groovy/src/test/resources/payment-client.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/build.xml new file mode 100644 index 0000000000..c20d49800e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/build.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/pom.xml new file mode 100644 index 0000000000..aad39e76ac --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/pom.xml @@ -0,0 +1,153 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-payment-java-callback + Apache Tuscany SCA Tours Payment Java Callback Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + javax.xml.bind + jaxb-api + 2.1 + + + + javax.xml.ws + jaxws-api + 2.1 + + + javax.xml.soap + saaj-api + + + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-host-jetty + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + + + java.net2 + java.net Maven 2.x Repository + http://download.java.net/maven/2 + + false + + + + + + ${artifactId} + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + add-source + generate-sources + + add-source + + + + target/jaxws-source + + + + + + + org.codehaus.mojo + jaxws-maven-plugin + 1.12 + + + payment + generate-sources + + wsimport + + + com.tuscanyscatours.payment + ${basedir}/src/main/resources + + Payment.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/payment.stale + false + true + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/Customer.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/Customer.java new file mode 100644 index 0000000000..3b72f81b33 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/Customer.java @@ -0,0 +1,70 @@ +/* + * 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.customer; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; + +/** + * Customer data + */ +public class Customer { + private String id; + private String email; + private String name; + + private CreditCardDetailsType creditCard; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public CreditCardDetailsType getCreditCard() { + return creditCard; + } + + public void setCreditCard(CreditCardDetailsType creditCard) { + this.creditCard = creditCard; + } + + public String toString() { + return "id: " + id + " name: " + name + " e-mail: " + email; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java new file mode 100644 index 0000000000..b08f76e0fa --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java @@ -0,0 +1,57 @@ +/* + * 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.customer; + +public class CustomerNotFoundException extends Exception { + private static final long serialVersionUID = -129752837478357452L; + + /** + * + */ + public CustomerNotFoundException() { + + } + + /** + * @param message + */ + public CustomerNotFoundException(String message) { + super(message); + + } + + /** + * @param cause + */ + public CustomerNotFoundException(Throwable cause) { + super(cause); + + } + + /** + * @param message + * @param cause + */ + public CustomerNotFoundException(String message, Throwable cause) { + super(message, cause); + + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java new file mode 100644 index 0000000000..706167d567 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java @@ -0,0 +1,39 @@ +/* + * 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.customer; + +import java.util.Collection; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; + +/** + * Customer registry interface + */ +public interface CustomerRegistry { + Customer createCustomer(String name, String email, CreditCardDetailsType creditCard); + + boolean updateCustomer(Customer customer); + + Customer getCustomer(String id) throws CustomerNotFoundException; + + Collection getAllCustomers(); + + boolean deleteCustomer(String id); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java new file mode 100644 index 0000000000..bdf99dec72 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java @@ -0,0 +1,114 @@ +/* + * 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.customer.impl; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +import org.osoa.sca.annotations.Destroy; +import org.osoa.sca.annotations.EagerInit; +import org.osoa.sca.annotations.Init; +import org.osoa.sca.annotations.Requires; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.customer.Customer; +import com.tuscanyscatours.customer.CustomerNotFoundException; +import com.tuscanyscatours.customer.CustomerRegistry; +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; +import com.tuscanyscatours.payment.creditcard.CreditCardTypeType; +import com.tuscanyscatours.payment.creditcard.PayerType; + +/** + * An in-memory customer registry implementation + */ +@Service(CustomerRegistry.class) +@Scope("COMPOSITE") +@EagerInit +@Requires("{http://www.osoa.org/xmlns/sca/1.0}managedTransaction.global") +public class CustomerRegistryImpl implements CustomerRegistry { + private volatile static int idGenerator = 0; + private Map customers = new HashMap(); + + @Init + public void init() { + // Load the customers + + CreditCardDetailsType cc = new CreditCardDetailsType(); + PayerType john = new PayerType(); + john.setName("John Smith"); + cc.setCardOwner(john); + cc.setCreditCardNumber("1111-2222-3333-4444"); + cc.setCreditCardType(CreditCardTypeType.VISA); + cc.setCVV2("1234"); + cc.setExpMonth(1); + cc.setExpYear(2012); + createCustomer("John Smith", "john@xyz.com", cc); + } + + @Destroy + public void destroy() { + // Save the customers + } + + public Customer createCustomer(String name, String email, CreditCardDetailsType creditCard) { + Customer customer = new Customer(); + customer.setId("c-" + idGenerator++); + customer.setName(name); + customer.setEmail(email); + customer.setCreditCard(creditCard); + customers.put(customer.getId(), customer); + return customer; + } + + public boolean deleteCustomer(String id) { + return customers.remove(id) != null; + } + + public Collection getAllCustomers() { + return customers.values(); + } + + public Customer getCustomer(String id) throws CustomerNotFoundException { + Customer customer = customers.get(id); + + if (customer == null) { + throw new CustomerNotFoundException("Customer " + id + " not found"); + } + + return customer; + } + + public boolean updateCustomer(Customer customer) { + Customer current = null; + try { + current = getCustomer(customer.getId()); + } catch (Exception ex) { + return false; + } + + current.setEmail(customer.getEmail()); + current.setName(customer.getName()); + current.setCreditCard(customer.getCreditCard()); + return true; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java new file mode 100644 index 0000000000..0fbf63d6bc --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java @@ -0,0 +1,30 @@ +/* + * 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.emailgateway; + +import org.osoa.sca.annotations.Remotable; + +/** + * A gateway to send e-mail + */ +@Remotable +public interface EmailGateway { + public boolean sendEmail(String sender, String recipient, String subject, String body); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java new file mode 100644 index 0000000000..d9798e436a --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java @@ -0,0 +1,37 @@ +/* + * 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.emailgateway.impl; + +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.emailgateway.EmailGateway; + +@Service(EmailGateway.class) +public class EmailGatewayImpl implements EmailGateway { + + public boolean sendEmail(String sender, String recipient, String subject, String body) { + System.out.println("From: " + sender); + System.out.println("To: " + recipient); + System.out.println("Subject: " + subject); + System.out.println(body); + return true; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AddressType.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AddressType.java new file mode 100644 index 0000000000..ca3724a4f5 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AddressType.java @@ -0,0 +1,191 @@ +/* + * 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.payment.creditcard; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for AddressType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="AddressType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Street" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="City" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="State" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="ZipCode" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="HomePhone" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "AddressType", propOrder = { + "street", + "city", + "state", + "zipCode", + "homePhone" +}) +public class AddressType { + + @XmlElement(name = "Street", required = true) + protected String street; + @XmlElement(name = "City", required = true) + protected String city; + @XmlElement(name = "State", required = true) + protected String state; + @XmlElement(name = "ZipCode", required = true) + protected String zipCode; + @XmlElement(name = "HomePhone", required = true) + protected String homePhone; + + /** + * Gets the value of the street property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getStreet() { + return street; + } + + /** + * Sets the value of the street property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setStreet(String value) { + this.street = value; + } + + /** + * Gets the value of the city property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCity() { + return city; + } + + /** + * Sets the value of the city property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCity(String value) { + this.city = value; + } + + /** + * Gets the value of the state property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getState() { + return state; + } + + /** + * Sets the value of the state property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setState(String value) { + this.state = value; + } + + /** + * Gets the value of the zipCode property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getZipCode() { + return zipCode; + } + + /** + * Sets the value of the zipCode property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setZipCode(String value) { + this.zipCode = value; + } + + /** + * Gets the value of the homePhone property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getHomePhone() { + return homePhone; + } + + /** + * Sets the value of the homePhone property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setHomePhone(String value) { + this.homePhone = value; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/Authorize.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/Authorize.java new file mode 100644 index 0000000000..7c0b38198e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/Authorize.java @@ -0,0 +1,101 @@ +/* + * 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.payment.creditcard; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="CreditCard" type="{http://www.tuscanyscatours.com/CreditCardPayment/}CreditCardDetailsType"/>
+ *         <element name="Amount" type="{http://www.w3.org/2001/XMLSchema}float"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "creditCard", + "amount" +}) +@XmlRootElement(name = "authorize") +public class Authorize { + + @XmlElement(name = "CreditCard", required = true) + protected CreditCardDetailsType creditCard; + @XmlElement(name = "Amount") + protected float amount; + + /** + * Gets the value of the creditCard property. + * + * @return + * possible object is + * {@link CreditCardDetailsType } + * + */ + public CreditCardDetailsType getCreditCard() { + return creditCard; + } + + /** + * Sets the value of the creditCard property. + * + * @param value + * allowed object is + * {@link CreditCardDetailsType } + * + */ + public void setCreditCard(CreditCardDetailsType value) { + this.creditCard = value; + } + + /** + * Gets the value of the amount property. + * + */ + public float getAmount() { + return amount; + } + + /** + * Sets the value of the amount property. + * + */ + public void setAmount(float value) { + this.amount = value; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault.java new file mode 100644 index 0000000000..84278aa508 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault.java @@ -0,0 +1,81 @@ +/* + * 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.payment.creditcard; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="errorCode" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "errorCode" +}) +@XmlRootElement(name = "authorizeFault") +public class AuthorizeFault { + + @XmlElement(required = true) + protected String errorCode; + + /** + * Gets the value of the errorCode property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getErrorCode() { + return errorCode; + } + + /** + * Sets the value of the errorCode property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setErrorCode(String value) { + this.errorCode = value; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault_Exception.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault_Exception.java new file mode 100644 index 0000000000..ec0f8768da --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault_Exception.java @@ -0,0 +1,71 @@ +/* + * 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.payment.creditcard; + +import javax.xml.ws.WebFault; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.1.7-b01- + * Generated source version: 2.1 + * + */ +@WebFault(name = "authorizeFault", targetNamespace = "http://www.tuscanyscatours.com/CreditCardPayment/") +public class AuthorizeFault_Exception + extends Exception +{ + + /** + * Java type that goes as soapenv:Fault detail element. + * + */ + private AuthorizeFault faultInfo; + + /** + * + * @param message + * @param faultInfo + */ + public AuthorizeFault_Exception(String message, AuthorizeFault faultInfo) { + super(message); + this.faultInfo = faultInfo; + } + + /** + * + * @param message + * @param faultInfo + * @param cause + */ + public AuthorizeFault_Exception(String message, AuthorizeFault faultInfo, Throwable cause) { + super(message, cause); + this.faultInfo = faultInfo; + } + + /** + * + * @return + * returns fault bean: com.tuscanyscatours.payment.creditcard.AuthorizeFault + */ + public AuthorizeFault getFaultInfo() { + return faultInfo; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeResponse.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeResponse.java new file mode 100644 index 0000000000..05f3479804 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeResponse.java @@ -0,0 +1,81 @@ +/* + * 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.payment.creditcard; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Status" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "status" +}) +@XmlRootElement(name = "authorizeResponse") +public class AuthorizeResponse { + + @XmlElement(name = "Status", required = true) + protected String status; + + /** + * Gets the value of the status property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getStatus() { + return status; + } + + /** + * Sets the value of the status property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setStatus(String value) { + this.status = value; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CardCompany.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CardCompany.java new file mode 100644 index 0000000000..dbffbe2c19 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CardCompany.java @@ -0,0 +1,31 @@ +/* + * 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.payment.creditcard; + +import org.osoa.sca.CallableReference; +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface CardCompany { + + public String makePayment(CreditCardDetailsType ccDetails, + float amount, + CallableReference callbackRef); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardConfirm.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardConfirm.java new file mode 100644 index 0000000000..ff3b2d74b4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardConfirm.java @@ -0,0 +1,27 @@ +/* + * 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.payment.creditcard; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface CreditCardConfirm { + void confirmPayment(String paymentRef); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardDetailsType.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardDetailsType.java new file mode 100644 index 0000000000..8bac29f6bd --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardDetailsType.java @@ -0,0 +1,219 @@ +/* + * 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.payment.creditcard; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for CreditCardDetailsType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="CreditCardDetailsType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="CreditCardType" type="{http://www.tuscanyscatours.com/CreditCardPayment/}CreditCardTypeType" minOccurs="0"/>
+ *         <element name="CreditCardNumber" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ExpMonth" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="ExpYear" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="CardOwner" type="{http://www.tuscanyscatours.com/CreditCardPayment/}PayerType" minOccurs="0"/>
+ *         <element name="CVV2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "CreditCardDetailsType", propOrder = { + "creditCardType", + "creditCardNumber", + "expMonth", + "expYear", + "cardOwner", + "cvv2" +}) +public class CreditCardDetailsType { + + @XmlElement(name = "CreditCardType") + protected CreditCardTypeType creditCardType; + @XmlElement(name = "CreditCardNumber") + protected String creditCardNumber; + @XmlElement(name = "ExpMonth") + protected Integer expMonth; + @XmlElement(name = "ExpYear") + protected Integer expYear; + @XmlElement(name = "CardOwner") + protected PayerType cardOwner; + @XmlElement(name = "CVV2") + protected String cvv2; + + /** + * Gets the value of the creditCardType property. + * + * @return + * possible object is + * {@link CreditCardTypeType } + * + */ + public CreditCardTypeType getCreditCardType() { + return creditCardType; + } + + /** + * Sets the value of the creditCardType property. + * + * @param value + * allowed object is + * {@link CreditCardTypeType } + * + */ + public void setCreditCardType(CreditCardTypeType value) { + this.creditCardType = value; + } + + /** + * Gets the value of the creditCardNumber property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCreditCardNumber() { + return creditCardNumber; + } + + /** + * Sets the value of the creditCardNumber property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCreditCardNumber(String value) { + this.creditCardNumber = value; + } + + /** + * Gets the value of the expMonth property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getExpMonth() { + return expMonth; + } + + /** + * Sets the value of the expMonth property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setExpMonth(Integer value) { + this.expMonth = value; + } + + /** + * Gets the value of the expYear property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getExpYear() { + return expYear; + } + + /** + * Sets the value of the expYear property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setExpYear(Integer value) { + this.expYear = value; + } + + /** + * Gets the value of the cardOwner property. + * + * @return + * possible object is + * {@link PayerType } + * + */ + public PayerType getCardOwner() { + return cardOwner; + } + + /** + * Sets the value of the cardOwner property. + * + * @param value + * allowed object is + * {@link PayerType } + * + */ + public void setCardOwner(PayerType value) { + this.cardOwner = value; + } + + /** + * Gets the value of the cvv2 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCVV2() { + return cvv2; + } + + /** + * Sets the value of the cvv2 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCVV2(String value) { + this.cvv2 = value; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPayment.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPayment.java new file mode 100644 index 0000000000..da3d32fc0b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPayment.java @@ -0,0 +1,31 @@ +/* + * 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.payment.creditcard; + +import org.osoa.sca.annotations.Callback; +import org.osoa.sca.annotations.Remotable; + +@Remotable +@Callback(CreditCardSecurity.class) +public interface CreditCardPayment { + + public String authorize(CreditCardDetailsType ccDetails, float amount) + throws AuthorizeFault_Exception; +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPaymentConfirm.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPaymentConfirm.java new file mode 100644 index 0000000000..0c775f3621 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPaymentConfirm.java @@ -0,0 +1,31 @@ +/* + * 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.payment.creditcard; + +import org.osoa.sca.annotations.Callback; +import org.osoa.sca.annotations.Remotable; + +@Remotable +@Callback(CreditCardConfirm.class) +public interface CreditCardPaymentConfirm { + + public String authorize(CreditCardDetailsType ccDetails, float amount) + throws AuthorizeFault_Exception; +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardSecurity.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardSecurity.java new file mode 100644 index 0000000000..ae367c9f1e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardSecurity.java @@ -0,0 +1,27 @@ +/* + * 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.payment.creditcard; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface CreditCardSecurity { + String checkSecurity(String securityPrompt); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardTypeType.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardTypeType.java new file mode 100644 index 0000000000..0467078279 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardTypeType.java @@ -0,0 +1,74 @@ +/* + * 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.payment.creditcard; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for CreditCardTypeType. + * + *

The following schema fragment specifies the expected content contained within this class. + *

+ *

+ * <simpleType name="CreditCardTypeType">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}token">
+ *     <enumeration value="Visa"/>
+ *     <enumeration value="MasterCard"/>
+ *     <enumeration value="Discover"/>
+ *     <enumeration value="Amex"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "CreditCardTypeType") +@XmlEnum +public enum CreditCardTypeType { + + @XmlEnumValue("Visa") + VISA("Visa"), + @XmlEnumValue("MasterCard") + MASTER_CARD("MasterCard"), + @XmlEnumValue("Discover") + DISCOVER("Discover"), + @XmlEnumValue("Amex") + AMEX("Amex"); + private final String value; + + CreditCardTypeType(String v) { + value = v; + } + + public String value() { + return value; + } + + public static CreditCardTypeType fromValue(String v) { + for (CreditCardTypeType c: CreditCardTypeType.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/PayerType.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/PayerType.java new file mode 100644 index 0000000000..f36fe35bdf --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/PayerType.java @@ -0,0 +1,107 @@ +/* + * 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.payment.creditcard; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for PayerType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="PayerType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Name" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="Address" type="{http://www.tuscanyscatours.com/CreditCardPayment/}AddressType"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "PayerType", propOrder = { + "name", + "address" +}) +public class PayerType { + + @XmlElement(name = "Name", required = true) + protected String name; + @XmlElement(name = "Address", required = true) + protected AddressType address; + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the address property. + * + * @return + * possible object is + * {@link AddressType } + * + */ + public AddressType getAddress() { + return address; + } + + /** + * Sets the value of the address property. + * + * @param value + * allowed object is + * {@link AddressType } + * + */ + public void setAddress(AddressType value) { + this.address = value; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CardCompanyImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CardCompanyImpl.java new file mode 100644 index 0000000000..55759e7b20 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CardCompanyImpl.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 com.tuscanyscatours.payment.creditcard.impl; + +import org.osoa.sca.CallableReference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.payment.creditcard.CardCompany; +import com.tuscanyscatours.payment.creditcard.CreditCardConfirm; +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; + + +@Service(CardCompany.class) +public class CardCompanyImpl implements CardCompany { + + public String makePayment(CreditCardDetailsType ccDetails, + float amount, + CallableReference callbackRef){ + // payment processing happens asynchronously + Thread app = new Thread(new AsycnhPaymentProcessing(callbackRef)); + app.start(); + return "OK"; + } + + class AsycnhPaymentProcessing implements Runnable { + CallableReference callbackRef; + + AsycnhPaymentProcessing(CallableReference callbackRef){ + this.callbackRef = callbackRef; + } + public void run() { + String paymentRef = "123456"; + + try { + Thread.sleep(1000); + } catch (Exception ex) { + // do nothing + } + + callbackRef.getService().confirmPayment(paymentRef); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentCallbackImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentCallbackImpl.java new file mode 100644 index 0000000000..bd578bc810 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentCallbackImpl.java @@ -0,0 +1,78 @@ +/* + * 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.payment.creditcard.impl; + +import org.osoa.sca.RequestContext; +import org.osoa.sca.annotations.Callback; +import org.osoa.sca.annotations.Context; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; +import com.tuscanyscatours.payment.creditcard.CreditCardSecurity; + +@Service(CreditCardPayment.class) +public class CreditCardPaymentCallbackImpl implements CreditCardPayment { + + @Callback + protected CreditCardSecurity ccSecurity; + + @Context + protected RequestContext rqContext; + + + public String authorize(CreditCardDetailsType card, float amount) { + if (amount > 1000) { + for (int i = 0; i < 3; i++) { + String pwd = null; + if (amount < 10000) { + // using injected callback proxy + pwd = ccSecurity.checkSecurity("Enter password"); + } else { + // using request context to get callback proxy + CreditCardSecurity ccSecurity = rqContext.getCallback(); + pwd = ccSecurity.checkSecurity("Enter password"); + } + + if (verifyPassword(card, pwd)) { + break; + } + if (i == 2) { + return "BadPassword"; + } + } + } + makePayment(card, amount); + return "OK"; + } + + private boolean verifyPassword(CreditCardDetailsType card, String pw) { + if (pw.equals("abcxyz")){ + return true; + } else { + return false; + } + } + + private void makePayment(CreditCardDetailsType card, float amount) { + // payment processing + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentConfirmImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentConfirmImpl.java new file mode 100644 index 0000000000..02f1f46f82 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentConfirmImpl.java @@ -0,0 +1,48 @@ +/* + * 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.payment.creditcard.impl; + +import org.osoa.sca.CallableReference; +import org.osoa.sca.annotations.Callback; +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.payment.creditcard.CardCompany; +import com.tuscanyscatours.payment.creditcard.CreditCardConfirm; +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; +import com.tuscanyscatours.payment.creditcard.CreditCardPaymentConfirm; + +@Service(CreditCardPaymentConfirm.class) +public class CreditCardPaymentConfirmImpl implements CreditCardPaymentConfirm { + + @Callback + protected CallableReference callbackRef; + + @Reference + protected CardCompany cardCompany; + + public String authorize(CreditCardDetailsType card, + float amount) { + cardCompany.makePayment(card, amount, callbackRef); + return "InProgress"; + } + + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/CreditCardSecurityImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/CreditCardSecurityImpl.java new file mode 100644 index 0000000000..94ffead262 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/CreditCardSecurityImpl.java @@ -0,0 +1,38 @@ +/* + * 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.payment.impl; + +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.payment.creditcard.CreditCardSecurity; + +/** + * The payment implementation + */ +@Service(CreditCardSecurity.class) +public class CreditCardSecurityImpl implements CreditCardSecurity { + + public String checkSecurity(String securityPrompt) { + System.out.println("Extra securiy - " + securityPrompt); + System.out.println("password = abcxyz"); + return "abcxyz"; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentCallbackIDImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentCallbackIDImpl.java new file mode 100644 index 0000000000..887d54c4e7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentCallbackIDImpl.java @@ -0,0 +1,90 @@ +/* + * 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.payment.impl; + +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.Service; + +import com.tuscanyscatours.customer.Customer; +import com.tuscanyscatours.customer.CustomerNotFoundException; +import com.tuscanyscatours.customer.CustomerRegistry; +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.payment.Payment; +import com.tuscanyscatours.payment.creditcard.AuthorizeFault_Exception; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; +import com.tuscanyscatours.payment.creditcard.CreditCardSecurity; + +/** + * The payment implementation + */ +@Service(Payment.class) +public class PaymentCallbackIDImpl implements Payment, + CreditCardSecurity { + + @Reference + protected CustomerRegistry customerRegistry; + + @Reference(name="creditCardPayment") + protected ServiceReference cpRef; +; + + @Reference + protected EmailGateway emailGateway; + + @Property + protected float transactionFee = 0.01f; + + @Context + protected RequestContext rqContext; + + public String makePaymentMember(String customerId, float amount) { + try { + Customer customer = customerRegistry.getCustomer(customerId); + String auditID = "987654321"; + cpRef.setCallbackID(auditID); + String status = cpRef.getService().authorize(customer.getCreditCard(), amount + transactionFee); + emailGateway.sendEmail("order@tuscanyscatours.com", + customer.getEmail(), + "Status for your payment", + customer + " >>> Status = " + status); + return status; + } catch (CustomerNotFoundException ex) { + return "Payment failed due to " + ex.getMessage(); + } catch (AuthorizeFault_Exception e) { + return e.getFaultInfo().getErrorCode(); + } catch (Throwable t) { + return "Payment failed due to system error " + t.getMessage(); + } + } + + public String checkSecurity(String securityPrompt) { + System.out.println("Extra securiy - " + securityPrompt); + System.out.println("password = abcxyz"); + Object cbID = rqContext.getServiceReference().getCallbackID(); + System.out.println("callback ID = " + cbID); + + return "abcxyz"; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentCallbackImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentCallbackImpl.java new file mode 100644 index 0000000000..63b61d685d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentCallbackImpl.java @@ -0,0 +1,78 @@ +/* + * 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.payment.impl; + +import org.osoa.sca.annotations.Property; +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.customer.Customer; +import com.tuscanyscatours.customer.CustomerNotFoundException; +import com.tuscanyscatours.customer.CustomerRegistry; +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.payment.Payment; +import com.tuscanyscatours.payment.creditcard.AuthorizeFault_Exception; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; +import com.tuscanyscatours.payment.creditcard.CreditCardSecurity; + +/** + * The payment implementation + */ +@Service(Payment.class) +public class PaymentCallbackImpl implements Payment, + CreditCardSecurity { + + @Reference + protected CustomerRegistry customerRegistry; + + @Reference + protected CreditCardPayment creditCardPayment; + + @Reference + protected EmailGateway emailGateway; + + @Property + protected float transactionFee = 0.01f; + + public String makePaymentMember(String customerId, float amount) { + try { + Customer customer = customerRegistry.getCustomer(customerId); + String status = creditCardPayment.authorize(customer.getCreditCard(), amount + transactionFee); + emailGateway.sendEmail("order@tuscanyscatours.com", + customer.getEmail(), + "Status for your payment", + customer + " >>> Status = " + status); + return status; + } catch (CustomerNotFoundException ex) { + return "Payment failed due to " + ex.getMessage(); + } catch (AuthorizeFault_Exception e) { + return e.getFaultInfo().getErrorCode(); + } catch (Throwable t) { + return "Payment failed due to system error " + t.getMessage(); + } + } + + public String checkSecurity(String securityPrompt) { + System.out.println("Extra securiy - " + securityPrompt); + System.out.println("password = abcxyz"); + return "abcxyz"; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentCallbackRedirectImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentCallbackRedirectImpl.java new file mode 100644 index 0000000000..bf554dbad5 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentCallbackRedirectImpl.java @@ -0,0 +1,83 @@ +/* + * 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.payment.impl; + +import org.osoa.sca.ServiceReference; +import org.osoa.sca.annotations.Property; +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.customer.Customer; +import com.tuscanyscatours.customer.CustomerNotFoundException; +import com.tuscanyscatours.customer.CustomerRegistry; +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.payment.Payment; +import com.tuscanyscatours.payment.creditcard.AuthorizeFault_Exception; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; +import com.tuscanyscatours.payment.creditcard.CreditCardSecurity; + +/** + * The payment implementation + */ +@Service(Payment.class) +public class PaymentCallbackRedirectImpl implements Payment, + CreditCardSecurity { + + @Reference + protected CustomerRegistry customerRegistry; + + @Reference(name="creditCardPayment") + protected ServiceReference cpRef; + + @Reference(name="creditCardSecurity") + protected ServiceReference csRef; + + @Reference + protected EmailGateway emailGateway; + + @Property + protected float transactionFee = 0.01f; + + public String makePaymentMember(String customerId, float amount) { + try { + Customer customer = customerRegistry.getCustomer(customerId); + cpRef.setCallback(csRef); + String status = cpRef.getService().authorize(customer.getCreditCard(), amount + transactionFee); + emailGateway.sendEmail("order@tuscanyscatours.com", + customer.getEmail(), + "Status for your payment", + customer + " >>> Status = " + status); + return status; + } catch (CustomerNotFoundException ex) { + return "Payment failed due to " + ex.getMessage(); + } catch (AuthorizeFault_Exception e) { + return e.getFaultInfo().getErrorCode(); + } catch (Throwable t) { + return "Payment failed due to system error " + t.getMessage(); + } + } + + public String checkSecurity(String securityPrompt) { + System.out.println("Extra securiy - " + securityPrompt); + System.out.println("password = abcxyz"); + return "abcxyz"; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentConfirmImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentConfirmImpl.java new file mode 100644 index 0000000000..1a9c35c65d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentConfirmImpl.java @@ -0,0 +1,77 @@ +/* + * 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.payment.impl; + +import org.osoa.sca.annotations.Property; +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.customer.Customer; +import com.tuscanyscatours.customer.CustomerNotFoundException; +import com.tuscanyscatours.customer.CustomerRegistry; +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.payment.Payment; +import com.tuscanyscatours.payment.creditcard.AuthorizeFault_Exception; +import com.tuscanyscatours.payment.creditcard.CreditCardConfirm; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; +import com.tuscanyscatours.payment.creditcard.CreditCardPaymentConfirm; + +/** + * The payment implementation + */ +@Service(Payment.class) +public class PaymentConfirmImpl implements Payment, + CreditCardConfirm { + + @Reference + protected CustomerRegistry customerRegistry; + + @Reference + protected CreditCardPaymentConfirm creditCardPayment; + + @Reference + protected EmailGateway emailGateway; + + @Property + protected float transactionFee = 0.01f; + + public String makePaymentMember(String customerId, float amount) { + try { + Customer customer = customerRegistry.getCustomer(customerId); + String status = creditCardPayment.authorize(customer.getCreditCard(), amount + transactionFee); + emailGateway.sendEmail("order@tuscanyscatours.com", + customer.getEmail(), + "Status for your payment", + customer + " >>> Status = " + status); + return status; + } catch (CustomerNotFoundException ex) { + return "Payment failed due to " + ex.getMessage(); + } catch (AuthorizeFault_Exception e) { + return e.getFaultInfo().getErrorCode(); + } catch (Throwable t) { + return "Payment failed due to system error " + t.getMessage(); + } + } + + public void confirmPayment(String paymentRef) { + System.out.println("Pament ref is - " + paymentRef); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/CreditCardPayment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/CreditCardPayment.wsdl new file mode 100644 index 0000000000..08be3dc2e2 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/CreditCardPayment.wsdl @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..5f8c0bbb18 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/Payment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/Payment.wsdl new file mode 100644 index 0000000000..2519d7642e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/Payment.wsdl @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/definitions.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/definitions.xml new file mode 100644 index 0000000000..b304bbfc2b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/definitions.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/payment.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/payment.composite new file mode 100644 index 0000000000..6707b8a6cc --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/main/resources/payment.composite @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + 0.02 + + + + + + + + + + + + 0.02 + + + + + + + + + + + + + 0.02 + + + + + + + + + + + + + + + + + + + + + + + 0.02 + + + + + + + + + + + + + + + 0.02 + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/test/java/scatours/payment/PaymentTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/test/java/scatours/payment/PaymentTestCase.java new file mode 100644 index 0000000000..330dc15385 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-callback/src/test/java/scatours/payment/PaymentTestCase.java @@ -0,0 +1,111 @@ +/* + * 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.payment; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; + +import com.tuscanyscatours.payment.Payment; + +public class PaymentTestCase { + private static SCANode node; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + node = + SCANodeFactory.newInstance() + .createSCANode(null, + new SCAContribution("payment", "./target/classes")); + node.start(); + } + + @Test + public void testPayment() { + SCAClient client = (SCAClient)node; + Payment payment1 = client.getService(Payment.class, "Payment1"); + Payment payment2 = client.getService(Payment.class, "Payment2"); + Payment paymentConfirm = client.getService(Payment.class, "PaymentConfirm"); + Payment paymentCallbackID = client.getService(Payment.class, "PaymentCallbackID"); + Payment paymentCallbackRedirect = client.getService(Payment.class, "PaymentCallbackRedirect"); + + System.out.println("==================================================="); + System.out.println("\n\nPayment1 under limit - Status = \n\n" + payment1.makePaymentMember("c-0", 100.00f)); + System.out.println("==================================================="); + System.out.println("\n\nPayment2 under limit - Status = \n\n" + payment2.makePaymentMember("c-0", 100.00f)); + System.out.println("==================================================="); + System.out.println("\n\nPayment1 over limit - Status = \n\n" + payment1.makePaymentMember("c-0", 1500.00f)); + System.out.println("==================================================="); + System.out.println("\n\nPayment2 over limit - Status = \n\n" + payment2.makePaymentMember("c-0", 1500.00f)); + System.out.println("==================================================="); + System.out.println("\n\nPayment2 using request context - Status = \n\n" + payment2.makePaymentMember("c-0", 20000.00f)); + System.out.println("==================================================="); + System.out.println("\n\nPaymentConfirm - Status = \n\n" + paymentConfirm.makePaymentMember("c-0", 20000.00f)); + System.out.println("==================================================="); + + // wait for longer that the asynch payment processing waits. + try { + Thread.sleep(2000); + } catch (Exception ex) { + // do nothing + } + + System.out.println("==================================================="); + String result = paymentCallbackID.makePaymentMember("c-0", 20000.00f); + System.out.println("\n\nPaymentCallbackID - Status = \n\n" + result); + if (!"OK".equals(result)) { + throw new RuntimeException(result); + } + System.out.println("==================================================="); + result = paymentCallbackRedirect.makePaymentMember("c-0", 20000.00f); + System.out.println("\n\nPaymentCallbackRedirect - Status = \n\n" + result); + if (!"OK".equals(result)) { + throw new RuntimeException(result); + } + System.out.println("==================================================="); + + + } + + @Test + @Ignore + public void testWaitForInput() { + System.out.println("Press a key to end"); + try { + System.in.read(); + } catch (Exception ex) { + } + System.out.println("Shutting down"); + } + + @AfterClass + public static void tearDownAfterClass() throws Exception { + if (node != null) { + node.stop(); + node = null; + } + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/build.xml new file mode 100644 index 0000000000..4c943a7370 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/build.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/pom.xml new file mode 100644 index 0000000000..672e129012 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/pom.xml @@ -0,0 +1,195 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-payment-java-policy + Apache Tuscany SCA Tours Payment Java Policy Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + javax.xml.bind + jaxb-api + 2.1 + + + + javax.xml.ws + jaxws-api + 2.1 + + + javax.xml.soap + saaj-api + + + + + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-policy-security + ${tuscany.version} + runtime + + + + + + org.apache.tuscany.sca + tuscany-host-jetty + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + + + java.net2 + java.net Maven 2.x Repository + http://download.java.net/maven/2 + + false + + + + + + ${artifactId} + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + add-source + generate-sources + + add-source + + + + target/jaxws-source + + + + + + + org.codehaus.mojo + jaxws-maven-plugin + 1.12 + + + payment + generate-sources + + wsimport + + + com.tuscanyscatours.payment + ${basedir}/src/main/resources + + Payment.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/payment.stale + false + true + + + + payment.creditcard + process-sources + + wsimport + + + com.tuscanyscatours.payment.creditcard + ${basedir}/src/main/resources + + CreditCardPayment.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/creditcard.stale + false + true + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/customer/Customer.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/customer/Customer.java new file mode 100644 index 0000000000..3b72f81b33 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/customer/Customer.java @@ -0,0 +1,70 @@ +/* + * 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.customer; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; + +/** + * Customer data + */ +public class Customer { + private String id; + private String email; + private String name; + + private CreditCardDetailsType creditCard; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public CreditCardDetailsType getCreditCard() { + return creditCard; + } + + public void setCreditCard(CreditCardDetailsType creditCard) { + this.creditCard = creditCard; + } + + public String toString() { + return "id: " + id + " name: " + name + " e-mail: " + email; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java new file mode 100644 index 0000000000..b08f76e0fa --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java @@ -0,0 +1,57 @@ +/* + * 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.customer; + +public class CustomerNotFoundException extends Exception { + private static final long serialVersionUID = -129752837478357452L; + + /** + * + */ + public CustomerNotFoundException() { + + } + + /** + * @param message + */ + public CustomerNotFoundException(String message) { + super(message); + + } + + /** + * @param cause + */ + public CustomerNotFoundException(Throwable cause) { + super(cause); + + } + + /** + * @param message + * @param cause + */ + public CustomerNotFoundException(String message, Throwable cause) { + super(message, cause); + + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java new file mode 100644 index 0000000000..706167d567 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java @@ -0,0 +1,39 @@ +/* + * 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.customer; + +import java.util.Collection; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; + +/** + * Customer registry interface + */ +public interface CustomerRegistry { + Customer createCustomer(String name, String email, CreditCardDetailsType creditCard); + + boolean updateCustomer(Customer customer); + + Customer getCustomer(String id) throws CustomerNotFoundException; + + Collection getAllCustomers(); + + boolean deleteCustomer(String id); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java new file mode 100644 index 0000000000..26926c7764 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java @@ -0,0 +1,115 @@ +/* + * 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.customer.impl; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +import org.osoa.sca.annotations.Destroy; +import org.osoa.sca.annotations.EagerInit; +import org.osoa.sca.annotations.Init; +import org.osoa.sca.annotations.Requires; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.customer.Customer; +import com.tuscanyscatours.customer.CustomerNotFoundException; +import com.tuscanyscatours.customer.CustomerRegistry; +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; +import com.tuscanyscatours.payment.creditcard.CreditCardTypeType; +import com.tuscanyscatours.payment.creditcard.ObjectFactory; +import com.tuscanyscatours.payment.creditcard.PayerType; + +/** + * An in-memory customer registry implementation + */ +@Service(CustomerRegistry.class) +@Scope("COMPOSITE") +@EagerInit +@Requires("{http://www.osoa.org/xmlns/sca/1.0}managedTransaction.global") +public class CustomerRegistryImpl implements CustomerRegistry { + private volatile static int idGenerator = 0; + private Map customers = new HashMap(); + + @Init + public void init() { + // Load the customers + ObjectFactory factory = new ObjectFactory(); + CreditCardDetailsType cc = factory.createCreditCardDetailsType(); + PayerType john = factory.createPayerType(); + john.setName("John Smith"); + cc.setCardOwner(john); + cc.setCreditCardNumber("1111-2222-3333-4444"); + cc.setCreditCardType(CreditCardTypeType.VISA); + cc.setCVV2("1234"); + cc.setExpMonth(1); + cc.setExpYear(2012); + createCustomer("John Smith", "john@xyz.com", cc); + } + + @Destroy + public void destroy() { + // Save the customers + } + + public Customer createCustomer(String name, String email, CreditCardDetailsType creditCard) { + Customer customer = new Customer(); + customer.setId("c-" + idGenerator++); + customer.setName(name); + customer.setEmail(email); + customer.setCreditCard(creditCard); + customers.put(customer.getId(), customer); + return customer; + } + + public boolean deleteCustomer(String id) { + return customers.remove(id) != null; + } + + public Collection getAllCustomers() { + return customers.values(); + } + + public Customer getCustomer(String id) throws CustomerNotFoundException { + Customer customer = customers.get(id); + + if (customer == null) { + throw new CustomerNotFoundException("Customer " + id + " not found"); + } + + return customer; + } + + public boolean updateCustomer(Customer customer) { + Customer current = null; + try { + current = getCustomer(customer.getId()); + } catch (Exception ex) { + return false; + } + + current.setEmail(customer.getEmail()); + current.setName(customer.getName()); + current.setCreditCard(customer.getCreditCard()); + return true; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java new file mode 100644 index 0000000000..0fbf63d6bc --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java @@ -0,0 +1,30 @@ +/* + * 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.emailgateway; + +import org.osoa.sca.annotations.Remotable; + +/** + * A gateway to send e-mail + */ +@Remotable +public interface EmailGateway { + public boolean sendEmail(String sender, String recipient, String subject, String body); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java new file mode 100644 index 0000000000..d9798e436a --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java @@ -0,0 +1,37 @@ +/* + * 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.emailgateway.impl; + +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.emailgateway.EmailGateway; + +@Service(EmailGateway.class) +public class EmailGatewayImpl implements EmailGateway { + + public boolean sendEmail(String sender, String recipient, String subject, String body) { + System.out.println("From: " + sender); + System.out.println("To: " + recipient); + System.out.println("Subject: " + subject); + System.out.println(body); + return true; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java new file mode 100644 index 0000000000..b3eb95b44b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java @@ -0,0 +1,74 @@ +/* + * 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.payment.impl; + +import org.osoa.sca.annotations.Property; +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Requires; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.customer.Customer; +import com.tuscanyscatours.customer.CustomerNotFoundException; +import com.tuscanyscatours.customer.CustomerRegistry; +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.payment.Payment; +import com.tuscanyscatours.payment.creditcard.AuthorizeFault_Exception; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; + +/** + * The payment implementation + */ +@Service(Payment.class) +//@RolesAllowed({"Admin", "Billing"}) +//@RunAs("Billing") +public class PaymentImpl implements Payment { + + @Reference + protected CustomerRegistry customerRegistry; + + @Reference + //@Authentication - not supported + @Requires("{http://www.osoa.org/xmlns/sca/1.0}authentication") + protected CreditCardPayment creditCardPayment; + + @Reference + protected EmailGateway emailGateway; + + @Property + protected float transactionFee = 0.01f; + + public String makePaymentMember(String customerId, float amount) { + try { + Customer customer = customerRegistry.getCustomer(customerId); + String status = creditCardPayment.authorize(customer.getCreditCard(), amount + transactionFee); + emailGateway.sendEmail("order@tuscanyscatours.com", + customer.getEmail(), + "Status for your payment", + customer + " >>> Status = " + status); + return status; + } catch (CustomerNotFoundException ex) { + return "Payment failed due to " + ex.getMessage(); + } catch (AuthorizeFault_Exception e) { + return e.getFaultInfo().getErrorCode(); + } catch (Throwable t) { + return "Payment failed due to system error " + t.getMessage(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/CreditCardPayment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/CreditCardPayment.wsdl new file mode 100644 index 0000000000..9a87f1d2ae --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/CreditCardPayment.wsdl @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..0fd7cb9910 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/Payment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/Payment.wsdl new file mode 100644 index 0000000000..2519d7642e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/Payment.wsdl @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/definitions.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/definitions.xml new file mode 100644 index 0000000000..edaa250b10 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/definitions.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + myname + mypassword + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/payment.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/payment.composite new file mode 100644 index 0000000000..710583ae5d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/main/resources/payment.composite @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + 0.02 + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/test/java/scatours/payment/PaymentTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/test/java/scatours/payment/PaymentTestCase.java new file mode 100644 index 0000000000..5539d6b1fe --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-policy/src/test/java/scatours/payment/PaymentTestCase.java @@ -0,0 +1,89 @@ +/* + * 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.payment; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; + +import com.tuscanyscatours.payment.Payment; + +public class PaymentTestCase { + private static SCANode node1; + private static SCANode node2; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + node1 = + SCANodeFactory.newInstance() + .createSCANode("payment.composite", + new SCAContribution("payment", "./target/classes")); + node2 = + SCANodeFactory.newInstance() + .createSCANode("creditcard.composite", + new SCAContribution("creditcard", + "../../contributions/creditcard-payment-jaxb/target/classes")); + node1.start(); + node2.start(); + } + + @Test + public void testPayment() { + SCAClient client = (SCAClient)node1; + Payment payment = client.getService(Payment.class, "Payment"); + + String result = payment.makePaymentMember("c-0", 100.00f); + System.out.println("\n\nSuccessful Payment - Status = \n\n" + result); + if (!"OK".equals(result)) { + throw new RuntimeException(result); + } + System.out.println("\n\nFailed Payment - Status = \n\n" + payment.makePaymentMember("c-1", 100.00f)); + } + + @Test + @Ignore + public void testWaitForInput() { + System.out.println("Press a key to end"); + try { + System.in.read(); + } catch (Exception ex) { + } + System.out.println("Shutting down"); + } + + @AfterClass + public static void tearDownAfterClass() throws Exception { + if (node1 != null) { + node1.stop(); + node1 = null; + } + + if (node2 != null) { + node2.stop(); + node2 = null; + } + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/build.xml new file mode 100644 index 0000000000..2873b6790a --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/build.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/pom.xml new file mode 100644 index 0000000000..0c70dbc27c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/pom.xml @@ -0,0 +1,153 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-payment-java-reference-pass + Apache Tuscany SCA Tours Payment Java Reference Pass Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + javax.xml.bind + jaxb-api + 2.1 + + + + javax.xml.ws + jaxws-api + 2.1 + + + javax.xml.soap + saaj-api + + + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-host-jetty + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + + + java.net2 + java.net Maven 2.x Repository + http://download.java.net/maven/2 + + false + + + + + + ${artifactId} + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + add-source + generate-sources + + add-source + + + + target/jaxws-source + + + + + + + org.codehaus.mojo + jaxws-maven-plugin + 1.12 + + + payment + generate-sources + + wsimport + + + com.tuscanyscatours.payment + ${basedir}/src/main/resources + + Payment.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/payment.stale + false + true + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/customer/Customer.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/customer/Customer.java new file mode 100644 index 0000000000..3b72f81b33 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/customer/Customer.java @@ -0,0 +1,70 @@ +/* + * 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.customer; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; + +/** + * Customer data + */ +public class Customer { + private String id; + private String email; + private String name; + + private CreditCardDetailsType creditCard; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public CreditCardDetailsType getCreditCard() { + return creditCard; + } + + public void setCreditCard(CreditCardDetailsType creditCard) { + this.creditCard = creditCard; + } + + public String toString() { + return "id: " + id + " name: " + name + " e-mail: " + email; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java new file mode 100644 index 0000000000..b08f76e0fa --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java @@ -0,0 +1,57 @@ +/* + * 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.customer; + +public class CustomerNotFoundException extends Exception { + private static final long serialVersionUID = -129752837478357452L; + + /** + * + */ + public CustomerNotFoundException() { + + } + + /** + * @param message + */ + public CustomerNotFoundException(String message) { + super(message); + + } + + /** + * @param cause + */ + public CustomerNotFoundException(Throwable cause) { + super(cause); + + } + + /** + * @param message + * @param cause + */ + public CustomerNotFoundException(String message, Throwable cause) { + super(message, cause); + + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java new file mode 100644 index 0000000000..706167d567 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java @@ -0,0 +1,39 @@ +/* + * 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.customer; + +import java.util.Collection; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; + +/** + * Customer registry interface + */ +public interface CustomerRegistry { + Customer createCustomer(String name, String email, CreditCardDetailsType creditCard); + + boolean updateCustomer(Customer customer); + + Customer getCustomer(String id) throws CustomerNotFoundException; + + Collection getAllCustomers(); + + boolean deleteCustomer(String id); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java new file mode 100644 index 0000000000..bdf99dec72 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java @@ -0,0 +1,114 @@ +/* + * 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.customer.impl; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +import org.osoa.sca.annotations.Destroy; +import org.osoa.sca.annotations.EagerInit; +import org.osoa.sca.annotations.Init; +import org.osoa.sca.annotations.Requires; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.customer.Customer; +import com.tuscanyscatours.customer.CustomerNotFoundException; +import com.tuscanyscatours.customer.CustomerRegistry; +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; +import com.tuscanyscatours.payment.creditcard.CreditCardTypeType; +import com.tuscanyscatours.payment.creditcard.PayerType; + +/** + * An in-memory customer registry implementation + */ +@Service(CustomerRegistry.class) +@Scope("COMPOSITE") +@EagerInit +@Requires("{http://www.osoa.org/xmlns/sca/1.0}managedTransaction.global") +public class CustomerRegistryImpl implements CustomerRegistry { + private volatile static int idGenerator = 0; + private Map customers = new HashMap(); + + @Init + public void init() { + // Load the customers + + CreditCardDetailsType cc = new CreditCardDetailsType(); + PayerType john = new PayerType(); + john.setName("John Smith"); + cc.setCardOwner(john); + cc.setCreditCardNumber("1111-2222-3333-4444"); + cc.setCreditCardType(CreditCardTypeType.VISA); + cc.setCVV2("1234"); + cc.setExpMonth(1); + cc.setExpYear(2012); + createCustomer("John Smith", "john@xyz.com", cc); + } + + @Destroy + public void destroy() { + // Save the customers + } + + public Customer createCustomer(String name, String email, CreditCardDetailsType creditCard) { + Customer customer = new Customer(); + customer.setId("c-" + idGenerator++); + customer.setName(name); + customer.setEmail(email); + customer.setCreditCard(creditCard); + customers.put(customer.getId(), customer); + return customer; + } + + public boolean deleteCustomer(String id) { + return customers.remove(id) != null; + } + + public Collection getAllCustomers() { + return customers.values(); + } + + public Customer getCustomer(String id) throws CustomerNotFoundException { + Customer customer = customers.get(id); + + if (customer == null) { + throw new CustomerNotFoundException("Customer " + id + " not found"); + } + + return customer; + } + + public boolean updateCustomer(Customer customer) { + Customer current = null; + try { + current = getCustomer(customer.getId()); + } catch (Exception ex) { + return false; + } + + current.setEmail(customer.getEmail()); + current.setName(customer.getName()); + current.setCreditCard(customer.getCreditCard()); + return true; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java new file mode 100644 index 0000000000..0fbf63d6bc --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java @@ -0,0 +1,30 @@ +/* + * 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.emailgateway; + +import org.osoa.sca.annotations.Remotable; + +/** + * A gateway to send e-mail + */ +@Remotable +public interface EmailGateway { + public boolean sendEmail(String sender, String recipient, String subject, String body); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java new file mode 100644 index 0000000000..d9798e436a --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java @@ -0,0 +1,37 @@ +/* + * 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.emailgateway.impl; + +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.emailgateway.EmailGateway; + +@Service(EmailGateway.class) +public class EmailGatewayImpl implements EmailGateway { + + public boolean sendEmail(String sender, String recipient, String subject, String body) { + System.out.println("From: " + sender); + System.out.println("To: " + recipient); + System.out.println("Subject: " + subject); + System.out.println(body); + return true; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/AddressType.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/AddressType.java new file mode 100644 index 0000000000..ca3724a4f5 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/AddressType.java @@ -0,0 +1,191 @@ +/* + * 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.payment.creditcard; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for AddressType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="AddressType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Street" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="City" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="State" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="ZipCode" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="HomePhone" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "AddressType", propOrder = { + "street", + "city", + "state", + "zipCode", + "homePhone" +}) +public class AddressType { + + @XmlElement(name = "Street", required = true) + protected String street; + @XmlElement(name = "City", required = true) + protected String city; + @XmlElement(name = "State", required = true) + protected String state; + @XmlElement(name = "ZipCode", required = true) + protected String zipCode; + @XmlElement(name = "HomePhone", required = true) + protected String homePhone; + + /** + * Gets the value of the street property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getStreet() { + return street; + } + + /** + * Sets the value of the street property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setStreet(String value) { + this.street = value; + } + + /** + * Gets the value of the city property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCity() { + return city; + } + + /** + * Sets the value of the city property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCity(String value) { + this.city = value; + } + + /** + * Gets the value of the state property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getState() { + return state; + } + + /** + * Sets the value of the state property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setState(String value) { + this.state = value; + } + + /** + * Gets the value of the zipCode property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getZipCode() { + return zipCode; + } + + /** + * Sets the value of the zipCode property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setZipCode(String value) { + this.zipCode = value; + } + + /** + * Gets the value of the homePhone property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getHomePhone() { + return homePhone; + } + + /** + * Sets the value of the homePhone property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setHomePhone(String value) { + this.homePhone = value; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/Authorize.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/Authorize.java new file mode 100644 index 0000000000..7c0b38198e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/Authorize.java @@ -0,0 +1,101 @@ +/* + * 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.payment.creditcard; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="CreditCard" type="{http://www.tuscanyscatours.com/CreditCardPayment/}CreditCardDetailsType"/>
+ *         <element name="Amount" type="{http://www.w3.org/2001/XMLSchema}float"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "creditCard", + "amount" +}) +@XmlRootElement(name = "authorize") +public class Authorize { + + @XmlElement(name = "CreditCard", required = true) + protected CreditCardDetailsType creditCard; + @XmlElement(name = "Amount") + protected float amount; + + /** + * Gets the value of the creditCard property. + * + * @return + * possible object is + * {@link CreditCardDetailsType } + * + */ + public CreditCardDetailsType getCreditCard() { + return creditCard; + } + + /** + * Sets the value of the creditCard property. + * + * @param value + * allowed object is + * {@link CreditCardDetailsType } + * + */ + public void setCreditCard(CreditCardDetailsType value) { + this.creditCard = value; + } + + /** + * Gets the value of the amount property. + * + */ + public float getAmount() { + return amount; + } + + /** + * Sets the value of the amount property. + * + */ + public void setAmount(float value) { + this.amount = value; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault.java new file mode 100644 index 0000000000..84278aa508 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault.java @@ -0,0 +1,81 @@ +/* + * 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.payment.creditcard; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="errorCode" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "errorCode" +}) +@XmlRootElement(name = "authorizeFault") +public class AuthorizeFault { + + @XmlElement(required = true) + protected String errorCode; + + /** + * Gets the value of the errorCode property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getErrorCode() { + return errorCode; + } + + /** + * Sets the value of the errorCode property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setErrorCode(String value) { + this.errorCode = value; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault_Exception.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault_Exception.java new file mode 100644 index 0000000000..ec0f8768da --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault_Exception.java @@ -0,0 +1,71 @@ +/* + * 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.payment.creditcard; + +import javax.xml.ws.WebFault; + + +/** + * This class was generated by the JAX-WS RI. + * JAX-WS RI 2.1.7-b01- + * Generated source version: 2.1 + * + */ +@WebFault(name = "authorizeFault", targetNamespace = "http://www.tuscanyscatours.com/CreditCardPayment/") +public class AuthorizeFault_Exception + extends Exception +{ + + /** + * Java type that goes as soapenv:Fault detail element. + * + */ + private AuthorizeFault faultInfo; + + /** + * + * @param message + * @param faultInfo + */ + public AuthorizeFault_Exception(String message, AuthorizeFault faultInfo) { + super(message); + this.faultInfo = faultInfo; + } + + /** + * + * @param message + * @param faultInfo + * @param cause + */ + public AuthorizeFault_Exception(String message, AuthorizeFault faultInfo, Throwable cause) { + super(message, cause); + this.faultInfo = faultInfo; + } + + /** + * + * @return + * returns fault bean: com.tuscanyscatours.payment.creditcard.AuthorizeFault + */ + public AuthorizeFault getFaultInfo() { + return faultInfo; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeResponse.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeResponse.java new file mode 100644 index 0000000000..05f3479804 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeResponse.java @@ -0,0 +1,81 @@ +/* + * 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.payment.creditcard; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Status" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "status" +}) +@XmlRootElement(name = "authorizeResponse") +public class AuthorizeResponse { + + @XmlElement(name = "Status", required = true) + protected String status; + + /** + * Gets the value of the status property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getStatus() { + return status; + } + + /** + * Sets the value of the status property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setStatus(String value) { + this.status = value; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardDetailsType.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardDetailsType.java new file mode 100644 index 0000000000..8bac29f6bd --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardDetailsType.java @@ -0,0 +1,219 @@ +/* + * 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.payment.creditcard; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for CreditCardDetailsType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="CreditCardDetailsType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="CreditCardType" type="{http://www.tuscanyscatours.com/CreditCardPayment/}CreditCardTypeType" minOccurs="0"/>
+ *         <element name="CreditCardNumber" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *         <element name="ExpMonth" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="ExpYear" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ *         <element name="CardOwner" type="{http://www.tuscanyscatours.com/CreditCardPayment/}PayerType" minOccurs="0"/>
+ *         <element name="CVV2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "CreditCardDetailsType", propOrder = { + "creditCardType", + "creditCardNumber", + "expMonth", + "expYear", + "cardOwner", + "cvv2" +}) +public class CreditCardDetailsType { + + @XmlElement(name = "CreditCardType") + protected CreditCardTypeType creditCardType; + @XmlElement(name = "CreditCardNumber") + protected String creditCardNumber; + @XmlElement(name = "ExpMonth") + protected Integer expMonth; + @XmlElement(name = "ExpYear") + protected Integer expYear; + @XmlElement(name = "CardOwner") + protected PayerType cardOwner; + @XmlElement(name = "CVV2") + protected String cvv2; + + /** + * Gets the value of the creditCardType property. + * + * @return + * possible object is + * {@link CreditCardTypeType } + * + */ + public CreditCardTypeType getCreditCardType() { + return creditCardType; + } + + /** + * Sets the value of the creditCardType property. + * + * @param value + * allowed object is + * {@link CreditCardTypeType } + * + */ + public void setCreditCardType(CreditCardTypeType value) { + this.creditCardType = value; + } + + /** + * Gets the value of the creditCardNumber property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCreditCardNumber() { + return creditCardNumber; + } + + /** + * Sets the value of the creditCardNumber property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCreditCardNumber(String value) { + this.creditCardNumber = value; + } + + /** + * Gets the value of the expMonth property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getExpMonth() { + return expMonth; + } + + /** + * Sets the value of the expMonth property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setExpMonth(Integer value) { + this.expMonth = value; + } + + /** + * Gets the value of the expYear property. + * + * @return + * possible object is + * {@link Integer } + * + */ + public Integer getExpYear() { + return expYear; + } + + /** + * Sets the value of the expYear property. + * + * @param value + * allowed object is + * {@link Integer } + * + */ + public void setExpYear(Integer value) { + this.expYear = value; + } + + /** + * Gets the value of the cardOwner property. + * + * @return + * possible object is + * {@link PayerType } + * + */ + public PayerType getCardOwner() { + return cardOwner; + } + + /** + * Sets the value of the cardOwner property. + * + * @param value + * allowed object is + * {@link PayerType } + * + */ + public void setCardOwner(PayerType value) { + this.cardOwner = value; + } + + /** + * Gets the value of the cvv2 property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCVV2() { + return cvv2; + } + + /** + * Sets the value of the cvv2 property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCVV2(String value) { + this.cvv2 = value; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPayment.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPayment.java new file mode 100644 index 0000000000..8150b3ccfd --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPayment.java @@ -0,0 +1,36 @@ +/* + * 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.payment.creditcard; + +import org.osoa.sca.ServiceReference; +import org.osoa.sca.annotations.Remotable; + +import com.tuscanyscatours.emailgateway.EmailGateway; + +@Remotable +public interface CreditCardPayment { + + public String authorize(CreditCardDetailsType ccDetails, + float amount, + ServiceReference emailGateway, + String emailAddress) + throws AuthorizeFault_Exception; + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardTypeType.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardTypeType.java new file mode 100644 index 0000000000..0467078279 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardTypeType.java @@ -0,0 +1,74 @@ +/* + * 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.payment.creditcard; + +import javax.xml.bind.annotation.XmlEnum; +import javax.xml.bind.annotation.XmlEnumValue; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for CreditCardTypeType. + * + *

The following schema fragment specifies the expected content contained within this class. + *

+ *

+ * <simpleType name="CreditCardTypeType">
+ *   <restriction base="{http://www.w3.org/2001/XMLSchema}token">
+ *     <enumeration value="Visa"/>
+ *     <enumeration value="MasterCard"/>
+ *     <enumeration value="Discover"/>
+ *     <enumeration value="Amex"/>
+ *   </restriction>
+ * </simpleType>
+ * 
+ * + */ +@XmlType(name = "CreditCardTypeType") +@XmlEnum +public enum CreditCardTypeType { + + @XmlEnumValue("Visa") + VISA("Visa"), + @XmlEnumValue("MasterCard") + MASTER_CARD("MasterCard"), + @XmlEnumValue("Discover") + DISCOVER("Discover"), + @XmlEnumValue("Amex") + AMEX("Amex"); + private final String value; + + CreditCardTypeType(String v) { + value = v; + } + + public String value() { + return value; + } + + public static CreditCardTypeType fromValue(String v) { + for (CreditCardTypeType c: CreditCardTypeType.values()) { + if (c.value.equals(v)) { + return c; + } + } + throw new IllegalArgumentException(v); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/PayerType.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/PayerType.java new file mode 100644 index 0000000000..f36fe35bdf --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/PayerType.java @@ -0,0 +1,107 @@ +/* + * 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.payment.creditcard; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for PayerType complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="PayerType">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="Name" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="Address" type="{http://www.tuscanyscatours.com/CreditCardPayment/}AddressType"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "PayerType", propOrder = { + "name", + "address" +}) +public class PayerType { + + @XmlElement(name = "Name", required = true) + protected String name; + @XmlElement(name = "Address", required = true) + protected AddressType address; + + /** + * Gets the value of the name property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the address property. + * + * @return + * possible object is + * {@link AddressType } + * + */ + public AddressType getAddress() { + return address; + } + + /** + * Sets the value of the address property. + * + * @param value + * allowed object is + * {@link AddressType } + * + */ + public void setAddress(AddressType value) { + this.address = value; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentImpl.java new file mode 100644 index 0000000000..46b51f40c8 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentImpl.java @@ -0,0 +1,47 @@ +/* + * 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.payment.creditcard.impl; + +import org.osoa.sca.ServiceReference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; + +@Service(CreditCardPayment.class) +public class CreditCardPaymentImpl implements CreditCardPayment { + + public String authorize(CreditCardDetailsType card, + float amount, + ServiceReference emailGateway, + String emailAddress) { + + // payment processing + + emailGateway.getService().sendEmail("order@tuscanyscatours.com", + emailAddress, + "Status for your payment", + "Authorized"); + + return "OK"; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java new file mode 100644 index 0000000000..089ea4a183 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java @@ -0,0 +1,76 @@ +/* + * 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.payment.impl; + +import org.osoa.sca.ServiceReference; +import org.osoa.sca.annotations.Property; +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.customer.Customer; +import com.tuscanyscatours.customer.CustomerNotFoundException; +import com.tuscanyscatours.customer.CustomerRegistry; +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.payment.Payment; +import com.tuscanyscatours.payment.creditcard.AuthorizeFault_Exception; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; + +/** + * The payment implementation + */ +@Service(Payment.class) +public class PaymentImpl implements Payment { + + @Reference + protected CustomerRegistry customerRegistry; + + @Reference + protected CreditCardPayment creditCardPayment; + + @Reference + protected ServiceReference emailGateway; + + @Property + protected float transactionFee = 0.01f; + + public String makePaymentMember(String customerId, float amount) { + try { + Customer customer = customerRegistry.getCustomer(customerId); + String status = creditCardPayment.authorize(customer.getCreditCard(), + amount + transactionFee, + emailGateway, + customer.getEmail()); + return status; + } catch (CustomerNotFoundException ex) { + return "Payment failed due to " + ex.getMessage(); + } catch (AuthorizeFault_Exception e) { + return e.getFaultInfo().getErrorCode(); + } catch (Throwable t) { + return "Payment failed due to system error " + t.getMessage(); + } + } + + public String checkSecurity(String securityPrompt) { + System.out.println("Extra securiy - " + securityPrompt); + System.out.println("password = abcxyz"); + return "abcxyz"; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/CreditCardPayment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/CreditCardPayment.wsdl new file mode 100644 index 0000000000..08be3dc2e2 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/CreditCardPayment.wsdl @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..5f8c0bbb18 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/Payment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/Payment.wsdl new file mode 100644 index 0000000000..2519d7642e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/Payment.wsdl @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/definitions.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/definitions.xml new file mode 100644 index 0000000000..b304bbfc2b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/definitions.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/payment.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/payment.composite new file mode 100644 index 0000000000..92f316804d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/main/resources/payment.composite @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + 0.02 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/test/java/scatours/payment/PaymentTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/test/java/scatours/payment/PaymentTestCase.java new file mode 100644 index 0000000000..52a1469da7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java-reference-pass/src/test/java/scatours/payment/PaymentTestCase.java @@ -0,0 +1,79 @@ +/* + * 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.payment; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; + +import com.tuscanyscatours.payment.Payment; + +public class PaymentTestCase { + private static SCANode node; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + node = + SCANodeFactory.newInstance() + .createSCANode(null, + new SCAContribution("payment", "./target/classes")); + node.start(); + } + + @Test + public void testPayment() { + SCAClient client = (SCAClient)node; + Payment payment = client.getService(Payment.class, "Payment"); + + System.out.println("==================================================="); + String result = payment.makePaymentMember("c-0", 100.00f); + System.out.println("\n\nPayment - Status = \n\n" + result); + if (!"OK".equals(result)) { + throw new RuntimeException(result); + } + System.out.println("==================================================="); + + } + + @Test + @Ignore + public void testWaitForInput() { + System.out.println("Press a key to end"); + try { + System.in.read(); + } catch (Exception ex) { + } + System.out.println("Shutting down"); + } + + @AfterClass + public static void tearDownAfterClass() throws Exception { + if (node != null) { + node.stop(); + node = null; + } + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/build.xml new file mode 100644 index 0000000000..4ddd9fbba0 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/build.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/pom.xml new file mode 100644 index 0000000000..556cdc9d8c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/pom.xml @@ -0,0 +1,171 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-payment-java + Apache Tuscany SCA Tours Payment Java Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + javax.xml.bind + jaxb-api + 2.1 + + + + javax.xml.ws + jaxws-api + 2.1 + + + javax.xml.soap + saaj-api + + + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-host-jetty + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + + + java.net2 + java.net Maven 2.x Repository + http://download.java.net/maven/2 + + false + + + + + + ${artifactId} + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + add-source + generate-sources + + add-source + + + + target/jaxws-source + + + + + + + org.codehaus.mojo + jaxws-maven-plugin + 1.12 + + + payment + generate-sources + + wsimport + + + com.tuscanyscatours.payment + ${basedir}/src/main/resources + + Payment.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/payment.stale + false + true + + + + payment.creditcard + process-sources + + wsimport + + + com.tuscanyscatours.payment.creditcard + ${basedir}/src/main/resources + + CreditCardPayment.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/creditcard.stale + false + true + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/customer/Customer.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/customer/Customer.java new file mode 100644 index 0000000000..c97ba8fb9f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/customer/Customer.java @@ -0,0 +1,70 @@ +/* + * 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.customer; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; + +/** + * Customer data + */ +public class Customer { + private String id; + private String email; + private String name; + + private CreditCardDetailsType creditCard; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public CreditCardDetailsType getCreditCard() { + return creditCard; + } + + public void setCreditCard(CreditCardDetailsType creditCard) { + this.creditCard = creditCard; + } + + public String toString() { + return "id: " + id + " name: " + name + " e-mail: " + email; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java new file mode 100644 index 0000000000..7f028c301e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java @@ -0,0 +1,57 @@ +/* + * 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.customer; + +public class CustomerNotFoundException extends Exception { + private static final long serialVersionUID = -129752837478357452L; + + /** + * + */ + public CustomerNotFoundException() { + + } + + /** + * @param message + */ + public CustomerNotFoundException(String message) { + super(message); + + } + + /** + * @param cause + */ + public CustomerNotFoundException(Throwable cause) { + super(cause); + + } + + /** + * @param message + * @param cause + */ + public CustomerNotFoundException(String message, Throwable cause) { + super(message, cause); + + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java new file mode 100644 index 0000000000..38a2759660 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java @@ -0,0 +1,39 @@ +/* + * 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.customer; + +import java.util.Collection; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; + +/** + * Customer registry interface + */ +public interface CustomerRegistry { + Customer createCustomer(String name, String email, CreditCardDetailsType creditCard); + + boolean updateCustomer(Customer customer); + + Customer getCustomer(String id) throws CustomerNotFoundException; + + Collection getAllCustomers(); + + boolean deleteCustomer(String id); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java new file mode 100644 index 0000000000..bc76f411f3 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java @@ -0,0 +1,115 @@ +/* + * 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.customer.impl; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +import org.osoa.sca.annotations.Destroy; +import org.osoa.sca.annotations.EagerInit; +import org.osoa.sca.annotations.Init; +import org.osoa.sca.annotations.Requires; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.customer.Customer; +import com.tuscanyscatours.customer.CustomerNotFoundException; +import com.tuscanyscatours.customer.CustomerRegistry; +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; +import com.tuscanyscatours.payment.creditcard.CreditCardTypeType; +import com.tuscanyscatours.payment.creditcard.ObjectFactory; +import com.tuscanyscatours.payment.creditcard.PayerType; + +/** + * An in-memory customer registry implementation + */ +@Service(CustomerRegistry.class) +@Scope("COMPOSITE") +@EagerInit +@Requires("{http://www.osoa.org/xmlns/sca/1.0}managedTransaction.global") +public class CustomerRegistryImpl implements CustomerRegistry { + private volatile static int idGenerator = 0; + private Map customers = new HashMap(); + + @Init + public void init() { + // Load the customers + ObjectFactory factory = new ObjectFactory(); + CreditCardDetailsType cc = factory.createCreditCardDetailsType(); + PayerType john = factory.createPayerType(); + john.setName("John Smith"); + cc.setCardOwner(john); + cc.setCreditCardNumber("1111-2222-3333-4444"); + cc.setCreditCardType(CreditCardTypeType.VISA); + cc.setCVV2("1234"); + cc.setExpMonth(1); + cc.setExpYear(2012); + createCustomer("John Smith", "john@xyz.com", cc); + } + + @Destroy + public void destroy() { + // Save the customers + } + + public Customer createCustomer(String name, String email, CreditCardDetailsType creditCard) { + Customer customer = new Customer(); + customer.setId("c-" + idGenerator++); + customer.setName(name); + customer.setEmail(email); + customer.setCreditCard(creditCard); + customers.put(customer.getId(), customer); + return customer; + } + + public boolean deleteCustomer(String id) { + return customers.remove(id) != null; + } + + public Collection getAllCustomers() { + return customers.values(); + } + + public Customer getCustomer(String id) throws CustomerNotFoundException { + Customer customer = customers.get(id); + + if (customer == null) { + throw new CustomerNotFoundException("Customer " + id + " not found"); + } + + return customer; + } + + public boolean updateCustomer(Customer customer) { + Customer current = null; + try { + current = getCustomer(customer.getId()); + } catch (Exception ex) { + return false; + } + + current.setEmail(customer.getEmail()); + current.setName(customer.getName()); + current.setCreditCard(customer.getCreditCard()); + return true; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java new file mode 100644 index 0000000000..8c6ca806d2 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java @@ -0,0 +1,30 @@ +/* + * 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.emailgateway; + +import org.osoa.sca.annotations.Remotable; + +/** + * A gateway to send e-mail + */ +@Remotable +public interface EmailGateway { + public boolean sendEmail(String sender, String recipient, String subject, String body); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java new file mode 100644 index 0000000000..a6a162d5c3 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java @@ -0,0 +1,37 @@ +/* + * 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.emailgateway.impl; + +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.emailgateway.EmailGateway; + +@Service(EmailGateway.class) +public class EmailGatewayImpl implements EmailGateway { + + public boolean sendEmail(String sender, String recipient, String subject, String body) { + System.out.println("From: " + sender); + System.out.println("To: " + recipient); + System.out.println("Subject: " + subject); + System.out.println(body); + return true; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java new file mode 100644 index 0000000000..988605f7cd --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java @@ -0,0 +1,69 @@ +/* + * 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.payment.impl; + +import org.osoa.sca.annotations.Property; +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.customer.Customer; +import com.tuscanyscatours.customer.CustomerNotFoundException; +import com.tuscanyscatours.customer.CustomerRegistry; +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.payment.Payment; +import com.tuscanyscatours.payment.creditcard.AuthorizeFault_Exception; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; + +/** + * The payment implementation + */ +@Service(Payment.class) +public class PaymentImpl implements Payment { + + @Reference + protected CustomerRegistry customerRegistry; + + @Reference + protected CreditCardPayment creditCardPayment; + + @Reference + protected EmailGateway emailGateway; + + @Property + protected float transactionFee = 0.01f; + + public String makePaymentMember(String customerId, float amount) { + try { + Customer customer = customerRegistry.getCustomer(customerId); + String status = creditCardPayment.authorize(customer.getCreditCard(), amount + transactionFee); + emailGateway.sendEmail("order@tuscanyscatours.com", + customer.getEmail(), + "Status for your payment", + customer + " >>> Status = " + status); + return status; + } catch (CustomerNotFoundException ex) { + return "Payment failed due to " + ex.getMessage(); + } catch (AuthorizeFault_Exception e) { + return e.getFaultInfo().getErrorCode(); + } catch (Throwable t) { + return "Payment failed due to system error " + t.getMessage(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/CreditCardPayment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/CreditCardPayment.wsdl new file mode 100644 index 0000000000..d17497d1f6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/CreditCardPayment.wsdl @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..f8ff7b4623 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/Payment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/Payment.wsdl new file mode 100644 index 0000000000..3885764899 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/Payment.wsdl @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/definitions.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/definitions.xml new file mode 100644 index 0000000000..dc47395e9b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/definitions.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/payment.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/payment.composite new file mode 100644 index 0000000000..b4dcd328b1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/main/resources/payment.composite @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + 0.02 + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/test/java/scatours/payment/PaymentTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/test/java/scatours/payment/PaymentTestCase.java new file mode 100644 index 0000000000..ee4e3a5e96 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-java/src/test/java/scatours/payment/PaymentTestCase.java @@ -0,0 +1,79 @@ +/* + * 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.payment; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; + +import com.tuscanyscatours.payment.Payment; + +public class PaymentTestCase { + private static SCANode node; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + node = + SCANodeFactory.newInstance() + .createSCANode(null, + new SCAContribution("payment", "./target/classes"), + new SCAContribution("creditcard", + "../../contributions/creditcard-payment-jaxb/target/classes")); + node.start(); + } + + @Test + public void testPayment() { + SCAClient client = (SCAClient)node; + Payment payment = client.getService(Payment.class, "Payment"); + + String result = payment.makePaymentMember("c-0", 100.00f); + System.out.println("\n\nSuccessful Payment - Status = \n\n" + result); + if (!"OK".equals(result)) { + throw new RuntimeException(result); + } + System.out.println("\n\nFailed Payment - Status = \n\n" + payment.makePaymentMember("c-1", 100.00f)); + } + + @Test + @Ignore + public void testWaitForInput() { + System.out.println("Press a key to end"); + try { + System.in.read(); + } catch (Exception ex) { + } + System.out.println("Shutting down"); + } + + @AfterClass + public static void tearDownAfterClass() throws Exception { + if (node != null) { + node.stop(); + node = null; + } + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/build.xml new file mode 100644 index 0000000000..d3dd869069 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/build.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/pom.xml new file mode 100644 index 0000000000..8ddf9b13bb --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/pom.xml @@ -0,0 +1,161 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-payment-python + Apache Tuscany SCA Tours Payment Python Contribution + + + + + javax.xml.bind + jaxb-api + 2.1 + + + + javax.xml.ws + jaxws-api + 2.1 + + + javax.xml.soap + saaj-api + + + + + + org.apache.tuscany.sca + tuscany-implementation-script + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-host-jetty + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + ${artifactId} + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + add-source + generate-sources + + add-source + + + + target/jaxws-source + + + + + + + org.codehaus.mojo + jaxws-maven-plugin + 1.12 + + + payment + generate-sources + + wsimport + + + com.tuscanyscatours.payment + ${basedir}/src/main/resources + + Payment.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/payment.stale + false + true + + + + emailgateway + process-sources + + wsimport + + + com.tuscanyscatours.emailgateway + ${basedir}/src/main/resources + + EmailGateway.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/emailgateway.stale + false + true + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/EmailGateway.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/EmailGateway.wsdl new file mode 100644 index 0000000000..a097d9b7e4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/EmailGateway.wsdl @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..36e2990be1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/Payment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/Payment.wsdl new file mode 100644 index 0000000000..2519d7642e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/Payment.wsdl @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/payment.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/payment.composite new file mode 100644 index 0000000000..a0de3e9d67 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/payment.composite @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + 0.02 + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/payment/PaymentImpl.py b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/payment/PaymentImpl.py new file mode 100644 index 0000000000..095c549789 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/main/resources/payment/PaymentImpl.py @@ -0,0 +1,26 @@ +# 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. + +from com.tuscanyscatours.emailgateway import EmailType + +def makePaymentMember(customerId, amount): + finalAmount = amount + transactionFee; + print "Total amount = ", finalAmount + email = EmailType() + email.setTo(customerId) + emailGateway.sendEmail(email) + return "Success" diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/test/java/scatours/payment/PaymentTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/test/java/scatours/payment/PaymentTestCase.java new file mode 100644 index 0000000000..0b61db2bf8 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/test/java/scatours/payment/PaymentTestCase.java @@ -0,0 +1,77 @@ +/* + * 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.payment; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.tuscanyscatours.payment.Payment; + +/** + * + */ +public class PaymentTestCase { + + private static SCANode paymentNode; + private static SCANode emailGatewayNode; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + emailGatewayNode = + SCANodeFactory.newInstance().createSCANode("emailgateway.composite", + new SCAContribution("emailgateway", + "../emailgateway/target/classes"), + new SCAContribution("emailgateway-test", + "../emailgateway/target/test-classes")); + + emailGatewayNode.start(); + + paymentNode = + SCANodeFactory.newInstance().createSCANode(null, + new SCAContribution("payment-python", "./target/classes"), + new SCAContribution("payment-python-test", + "./target/test-classes")); + + paymentNode.start(); + } + + @Test + public void testPayment() { + SCAClient client = (SCAClient)paymentNode; + Payment payment = client.getService(Payment.class, "PaymentClient"); + String result = payment.makePaymentMember("Fred", 100.00f); + System.out.println("Result = " + result); + if (!"Success".equals(result)) { + throw new RuntimeException(result); + } + } + + @AfterClass + public static void tearDownAfterClass() throws Exception { + paymentNode.stop(); + emailGatewayNode.stop(); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java new file mode 100644 index 0000000000..4f64b20c4e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java @@ -0,0 +1,37 @@ +/* + * 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.payment.client.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.payment.Payment; + +@Service(Payment.class) +public class PaymentClientImpl implements Payment { + @Reference + protected Payment payment; + + public String makePaymentMember(String customerId, float amount) { + // Delegate the external web service + return payment.makePaymentMember(customerId, amount); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/test/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/test/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..9b3e309d11 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/test/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/test/resources/payment-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/test/resources/payment-client.composite new file mode 100644 index 0000000000..353c1cea04 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-python/src/test/resources/payment-client.composite @@ -0,0 +1,32 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/build.xml new file mode 100644 index 0000000000..db0e41b22f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/build.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/pom.xml new file mode 100644 index 0000000000..1ab605e145 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/pom.xml @@ -0,0 +1,206 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-payment-spring-policy + Apache Tuscany SCA Tours Payment Spring Policy Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + javax.xml.bind + jaxb-api + 2.1 + + + + javax.xml.ws + jaxws-api + 2.1 + + + javax.xml.soap + saaj-api + + + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + + org.apache.tuscany.sca + tuscany-implementation-spring + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-implementation-spring-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-host-jetty + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + + + java.net2 + java.net Maven 2.x Repository + http://download.java.net/maven/2 + + false + + + + + + ${artifactId} + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + add-source + generate-sources + + add-source + + + + target/jaxws-source + + + + + + + org.codehaus.mojo + jaxws-maven-plugin + 1.12 + + + payment + generate-sources + + wsimport + + + com.tuscanyscatours.payment + ${basedir}/src/main/resources + + Payment.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/payment.stale + false + true + + + + payment.creditcard + process-sources + + wsimport + + + com.tuscanyscatours.payment.creditcard + ${basedir}/src/main/resources + + CreditCardPayment.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/creditcard.stale + false + true + + + + scatours.emailgateway + process-sources + + wsimport + + + com.tuscanyscatours.emailgateway + ${basedir}/src/main/resources + + EmailGateway.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/emailgateway.stale + false + true + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/Customer.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/Customer.java new file mode 100644 index 0000000000..3b72f81b33 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/Customer.java @@ -0,0 +1,70 @@ +/* + * 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.customer; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; + +/** + * Customer data + */ +public class Customer { + private String id; + private String email; + private String name; + + private CreditCardDetailsType creditCard; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public CreditCardDetailsType getCreditCard() { + return creditCard; + } + + public void setCreditCard(CreditCardDetailsType creditCard) { + this.creditCard = creditCard; + } + + public String toString() { + return "id: " + id + " name: " + name + " e-mail: " + email; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java new file mode 100644 index 0000000000..b08f76e0fa --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java @@ -0,0 +1,57 @@ +/* + * 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.customer; + +public class CustomerNotFoundException extends Exception { + private static final long serialVersionUID = -129752837478357452L; + + /** + * + */ + public CustomerNotFoundException() { + + } + + /** + * @param message + */ + public CustomerNotFoundException(String message) { + super(message); + + } + + /** + * @param cause + */ + public CustomerNotFoundException(Throwable cause) { + super(cause); + + } + + /** + * @param message + * @param cause + */ + public CustomerNotFoundException(String message, Throwable cause) { + super(message, cause); + + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java new file mode 100644 index 0000000000..706167d567 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java @@ -0,0 +1,39 @@ +/* + * 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.customer; + +import java.util.Collection; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; + +/** + * Customer registry interface + */ +public interface CustomerRegistry { + Customer createCustomer(String name, String email, CreditCardDetailsType creditCard); + + boolean updateCustomer(Customer customer); + + Customer getCustomer(String id) throws CustomerNotFoundException; + + Collection getAllCustomers(); + + boolean deleteCustomer(String id); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java new file mode 100644 index 0000000000..4381029543 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java @@ -0,0 +1,113 @@ +/* + * 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.customer.impl; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +import org.osoa.sca.annotations.Destroy; +import org.osoa.sca.annotations.EagerInit; +import org.osoa.sca.annotations.Init; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.customer.Customer; +import com.tuscanyscatours.customer.CustomerNotFoundException; +import com.tuscanyscatours.customer.CustomerRegistry; +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; +import com.tuscanyscatours.payment.creditcard.CreditCardTypeType; +import com.tuscanyscatours.payment.creditcard.ObjectFactory; +import com.tuscanyscatours.payment.creditcard.PayerType; + +/** + * An in-memory customer registry implementation + */ +@Service(CustomerRegistry.class) +@Scope("COMPOSITE") +@EagerInit +public class CustomerRegistryImpl implements CustomerRegistry { + private volatile static int idGenerator = 0; + private Map customers = new HashMap(); + + @Init + public void init() { + // Load the customers + ObjectFactory factory = new ObjectFactory(); + CreditCardDetailsType cc = factory.createCreditCardDetailsType(); + PayerType john = factory.createPayerType(); + john.setName("John Smith"); + cc.setCardOwner(john); + cc.setCreditCardNumber("1111-2222-3333-4444"); + cc.setCreditCardType(CreditCardTypeType.VISA); + cc.setCVV2("1234"); + cc.setExpMonth(1); + cc.setExpYear(2012); + createCustomer("John Smith", "john@xyz.com", cc); + } + + @Destroy + public void destroy() { + // Save the customers + } + + public Customer createCustomer(String name, String email, CreditCardDetailsType creditCard) { + Customer customer = new Customer(); + customer.setId("c-" + idGenerator++); + customer.setName(name); + customer.setEmail(email); + customer.setCreditCard(creditCard); + customers.put(customer.getId(), customer); + return customer; + } + + public boolean deleteCustomer(String id) { + return customers.remove(id) != null; + } + + public Collection getAllCustomers() { + return customers.values(); + } + + public Customer getCustomer(String id) throws CustomerNotFoundException { + Customer customer = customers.get(id); + + if (customer == null) { + throw new CustomerNotFoundException("Customer " + id + " not found"); + } + + return customer; + } + + public boolean updateCustomer(Customer customer) { + Customer current = null; + try { + current = getCustomer(customer.getId()); + } catch (Exception ex) { + return false; + } + + current.setEmail(customer.getEmail()); + current.setName(customer.getName()); + current.setCreditCard(customer.getCreditCard()); + return true; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java new file mode 100644 index 0000000000..5eb825cb85 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java @@ -0,0 +1,32 @@ +/* + * 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.emailgateway.impl; + +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.emailgateway.EmailType; + +public class EmailGatewayImpl implements EmailGateway { + + public String sendEmail(EmailType email) { + System.out.println("Sending mail to " + email.getTo()); + return "SENT"; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java new file mode 100644 index 0000000000..a35f761dc7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java @@ -0,0 +1,77 @@ +/* + * 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.payment.impl; + +import com.tuscanyscatours.customer.Customer; +import com.tuscanyscatours.customer.CustomerNotFoundException; +import com.tuscanyscatours.customer.CustomerRegistry; +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.emailgateway.EmailType; +import com.tuscanyscatours.payment.Payment; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; + +public class PaymentImpl implements Payment { + + private CreditCardPayment creditCardPayment; + private CustomerRegistry customerRegistry; + private EmailGateway emailGateway; + private float transactionFee; + + public void setCreditCardPayment(CreditCardPayment creditCardPayment) { + this.creditCardPayment = creditCardPayment; + } + + public void setCustomerRegistry(CustomerRegistry customerRegistry) { + this.customerRegistry = customerRegistry; + } + + public void setEmailGateway(EmailGateway emailGateway) { + this.emailGateway = emailGateway; + } + + public void setTransactionFee(Float transactionFee) { + this.transactionFee = transactionFee; + } + + public String makePaymentMember(String customerId, float amount) { + try { + Customer customer = customerRegistry.getCustomer(customerId); + + amount += transactionFee; + + String status = creditCardPayment.authorize(customer.getCreditCard(), amount); + + com.tuscanyscatours.emailgateway.ObjectFactory emailFactory = + new com.tuscanyscatours.emailgateway.ObjectFactory(); + EmailType email = emailFactory.createEmailType(); + email.setTitle("Payment Received"); + email.setTo(customerId); + + emailGateway.sendEmail(email); + + return status; + } catch (CustomerNotFoundException ex) { + return "Payment failed due to " + ex.getMessage(); + } catch (Throwable t) { + return "Payment failed due to system error " + t.getMessage(); + } + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/CreditCardPayment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/CreditCardPayment.wsdl new file mode 100644 index 0000000000..8224cd126f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/CreditCardPayment.wsdl @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/EmailGateway.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/EmailGateway.wsdl new file mode 100644 index 0000000000..9e9a6ea685 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/EmailGateway.wsdl @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..696bf293f3 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/Payment-context.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/Payment-context.xml new file mode 100644 index 0000000000..bcb965924b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/Payment-context.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/Payment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/Payment.wsdl new file mode 100644 index 0000000000..e2c4062f2e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/Payment.wsdl @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/definitions.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/definitions.xml new file mode 100644 index 0000000000..0e421d3b83 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/definitions.xml @@ -0,0 +1,35 @@ + + + + + + + + myname + mypassword + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/payment.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/payment.composite new file mode 100644 index 0000000000..3f5bcfe48d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/main/resources/payment.composite @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + 1.23 + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/test/java/scatours/payment/PaymentTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/test/java/scatours/payment/PaymentTestCase.java new file mode 100644 index 0000000000..9e59b05d80 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/test/java/scatours/payment/PaymentTestCase.java @@ -0,0 +1,74 @@ +/* + * 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.payment; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.tuscanyscatours.payment.Payment; + +/** + * + */ +public class PaymentTestCase { + private static SCANode paymentNode; + private static SCANode creditCardNode; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + creditCardNode = + SCANodeFactory.newInstance() + .createSCANode("creditcard.composite", + new SCAContribution("creditcard", "../creditcard-payment-jaxb-policy/target/classes")); + + creditCardNode.start(); + + paymentNode = + SCANodeFactory.newInstance() + .createSCANode(null, + new SCAContribution("payment-spring-policy", "./target/classes"), + new SCAContribution("payment-spring-policy-test", "./target/test-classes")); + + paymentNode.start(); + } + + @Test + public void testPayment() { + SCAClient client = (SCAClient)paymentNode; + Payment payment = client.getService(Payment.class, "PaymentClient"); + String result = payment.makePaymentMember("c-0", 100.00f); + System.out.println("Result = " + result); + if (!"OK".equals(result)) { + throw new RuntimeException(result); + } + } + + @AfterClass + public static void tearDownAfterClass() throws Exception { + paymentNode.stop(); + creditCardNode.stop(); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java new file mode 100644 index 0000000000..4f64b20c4e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java @@ -0,0 +1,37 @@ +/* + * 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.payment.client.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.payment.Payment; + +@Service(Payment.class) +public class PaymentClientImpl implements Payment { + @Reference + protected Payment payment; + + public String makePaymentMember(String customerId, float amount) { + // Delegate the external web service + return payment.makePaymentMember(customerId, amount); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/test/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/test/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..c97b6862f4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/test/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/test/resources/payment-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/test/resources/payment-client.composite new file mode 100644 index 0000000000..642cebfd1c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-policy/src/test/resources/payment-client.composite @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/build.xml new file mode 100644 index 0000000000..6ad2ea55ad --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/build.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/pom.xml new file mode 100644 index 0000000000..3ed7cd5bab --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/pom.xml @@ -0,0 +1,206 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-payment-spring-scatag + Apache Tuscany SCA Tours Payment Spring SCA Tag Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + javax.xml.bind + jaxb-api + 2.1 + + + + javax.xml.ws + jaxws-api + 2.1 + + + javax.xml.soap + saaj-api + + + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + + org.apache.tuscany.sca + tuscany-implementation-spring + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-implementation-spring-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-host-jetty + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + + + java.net2 + java.net Maven 2.x Repository + http://download.java.net/maven/2 + + false + + + + + + ${artifactId} + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + add-source + generate-sources + + add-source + + + + target/jaxws-source + + + + + + + org.codehaus.mojo + jaxws-maven-plugin + 1.12 + + + payment + generate-sources + + wsimport + + + com.tuscanyscatours.payment + ${basedir}/src/main/resources + + Payment.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/payment.stale + false + true + + + + payment.creditcard + process-sources + + wsimport + + + com.tuscanyscatours.payment.creditcard + ${basedir}/src/main/resources + + CreditCardPayment.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/creditcard.stale + false + true + + + + scatours.emailgateway + process-sources + + wsimport + + + com.tuscanyscatours.emailgateway + ${basedir}/src/main/resources + + EmailGateway.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/emailgateway.stale + false + true + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java new file mode 100644 index 0000000000..5eb825cb85 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java @@ -0,0 +1,32 @@ +/* + * 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.emailgateway.impl; + +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.emailgateway.EmailType; + +public class EmailGatewayImpl implements EmailGateway { + + public String sendEmail(EmailType email) { + System.out.println("Sending mail to " + email.getTo()); + return "SENT"; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java new file mode 100644 index 0000000000..42d995aa88 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java @@ -0,0 +1,76 @@ +/* + * 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.payment.impl; + +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.emailgateway.EmailType; +import com.tuscanyscatours.payment.Payment; +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; +import com.tuscanyscatours.payment.creditcard.CreditCardTypeType; +import com.tuscanyscatours.payment.creditcard.ObjectFactory; +import com.tuscanyscatours.payment.creditcard.PayerType; + +//@Service(Payment.class) +public class PaymentImpl implements Payment { + + protected CreditCardPayment creditCardPayment; + protected EmailGateway emailGateway; + protected float transactionFee = 0; + + //@Reference + public void setCreditCardPayment(CreditCardPayment creditCardPayment) { + this.creditCardPayment = creditCardPayment; + } + + public void setEmailGateway(EmailGateway emailGateway) { + this.emailGateway = emailGateway; + } + + //@Property + public void setTransactionFee(Float transactionFee) { + this.transactionFee = transactionFee; + } + + public String makePaymentMember(String customerId, float amount) { + + ObjectFactory objectFactory = new ObjectFactory(); + CreditCardDetailsType ccDetails = objectFactory.createCreditCardDetailsType(); + ccDetails.setCreditCardType(CreditCardTypeType.fromValue("Visa")); + PayerType ccOwner = objectFactory.createPayerType(); + ccOwner.setName(customerId); + ccDetails.setCardOwner(ccOwner); + + amount += transactionFee; + + String status = creditCardPayment.authorize(ccDetails, amount); + + com.tuscanyscatours.emailgateway.ObjectFactory emailFactory = + new com.tuscanyscatours.emailgateway.ObjectFactory(); + EmailType email = emailFactory.createEmailType(); + email.setTitle("Payment Received"); + email.setTo(customerId); + + emailGateway.sendEmail(email); + + return status; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/CreditCardPayment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/CreditCardPayment.wsdl new file mode 100644 index 0000000000..8224cd126f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/CreditCardPayment.wsdl @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/EmailGateway.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/EmailGateway.wsdl new file mode 100644 index 0000000000..44867f794c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/EmailGateway.wsdl @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..b480cc4aa1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/Payment-context.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/Payment-context.xml new file mode 100644 index 0000000000..83776cde1b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/Payment-context.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/Payment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/Payment.wsdl new file mode 100644 index 0000000000..e2c4062f2e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/Payment.wsdl @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/payment.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/payment.composite new file mode 100644 index 0000000000..639f1e5662 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/main/resources/payment.composite @@ -0,0 +1,35 @@ + + + + + + + + + + + + + 1.23 + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/test/java/scatours/payment/PaymentTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/test/java/scatours/payment/PaymentTestCase.java new file mode 100644 index 0000000000..23ca9643c2 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/test/java/scatours/payment/PaymentTestCase.java @@ -0,0 +1,75 @@ +/* + * 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.payment; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.tuscanyscatours.payment.Payment; + +/** + * + */ +public class PaymentTestCase { + private static SCANode paymentNode; + private static SCANode creditCardNode; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + creditCardNode = + SCANodeFactory.newInstance() + .createSCANode("creditcard.composite", + new SCAContribution("creditcard", "../creditcard-payment-jaxb/target/classes")); + + creditCardNode.start(); + + paymentNode = + SCANodeFactory.newInstance().createSCANode(null, + new SCAContribution("payment-spring-annotation", + "./target/classes"), + new SCAContribution("payment-spring-annotation-test", + "./target/test-classes")); + + paymentNode.start(); + } + + @Test + public void testPayment() { + SCAClient client = (SCAClient)paymentNode; + Payment payment = client.getService(Payment.class, "PaymentClient"); + String result = payment.makePaymentMember("Fred", 100.00f); + System.out.println("Result = " + result); + if (!"OK".equals(result)) { + throw new RuntimeException(result); + } + } + + @AfterClass + public static void tearDownAfterClass() throws Exception { + paymentNode.stop(); + creditCardNode.stop(); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java new file mode 100644 index 0000000000..4f64b20c4e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java @@ -0,0 +1,37 @@ +/* + * 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.payment.client.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.payment.Payment; + +@Service(Payment.class) +public class PaymentClientImpl implements Payment { + @Reference + protected Payment payment; + + public String makePaymentMember(String customerId, float amount) { + // Delegate the external web service + return payment.makePaymentMember(customerId, amount); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/test/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/test/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..b5639eb1f9 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/test/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/test/resources/payment-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/test/resources/payment-client.composite new file mode 100644 index 0000000000..642cebfd1c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring-scatag/src/test/resources/payment-client.composite @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/build.xml new file mode 100644 index 0000000000..93c9dfc660 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/build.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/pom.xml new file mode 100644 index 0000000000..10df566a6b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/pom.xml @@ -0,0 +1,206 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-payment-spring + Apache Tuscany SCA Tours Payment Spring Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + javax.xml.bind + jaxb-api + 2.1 + + + + javax.xml.ws + jaxws-api + 2.1 + + + javax.xml.soap + saaj-api + + + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + + org.apache.tuscany.sca + tuscany-implementation-spring + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-implementation-spring-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-host-jetty + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + + + java.net2 + java.net Maven 2.x Repository + http://download.java.net/maven/2 + + false + + + + + + ${artifactId} + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + add-source + generate-sources + + add-source + + + + target/jaxws-source + + + + + + + org.codehaus.mojo + jaxws-maven-plugin + 1.12 + + + payment + generate-sources + + wsimport + + + com.tuscanyscatours.payment + ${basedir}/src/main/resources + + Payment.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/payment.stale + false + true + + + + payment.creditcard + process-sources + + wsimport + + + com.tuscanyscatours.payment.creditcard + ${basedir}/src/main/resources + + CreditCardPayment.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/creditcard.stale + false + true + + + + scatours.emailgateway + process-sources + + wsimport + + + com.tuscanyscatours.emailgateway + ${basedir}/src/main/resources + + EmailGateway.wsdl + + ${project.build.directory}/jaxws-source + ${project.build.directory}/jaxws-source/stale/emailgateway.stale + false + true + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/customer/Customer.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/customer/Customer.java new file mode 100644 index 0000000000..3b72f81b33 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/customer/Customer.java @@ -0,0 +1,70 @@ +/* + * 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.customer; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; + +/** + * Customer data + */ +public class Customer { + private String id; + private String email; + private String name; + + private CreditCardDetailsType creditCard; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public CreditCardDetailsType getCreditCard() { + return creditCard; + } + + public void setCreditCard(CreditCardDetailsType creditCard) { + this.creditCard = creditCard; + } + + public String toString() { + return "id: " + id + " name: " + name + " e-mail: " + email; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java new file mode 100644 index 0000000000..b08f76e0fa --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java @@ -0,0 +1,57 @@ +/* + * 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.customer; + +public class CustomerNotFoundException extends Exception { + private static final long serialVersionUID = -129752837478357452L; + + /** + * + */ + public CustomerNotFoundException() { + + } + + /** + * @param message + */ + public CustomerNotFoundException(String message) { + super(message); + + } + + /** + * @param cause + */ + public CustomerNotFoundException(Throwable cause) { + super(cause); + + } + + /** + * @param message + * @param cause + */ + public CustomerNotFoundException(String message, Throwable cause) { + super(message, cause); + + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java new file mode 100644 index 0000000000..706167d567 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java @@ -0,0 +1,39 @@ +/* + * 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.customer; + +import java.util.Collection; + +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; + +/** + * Customer registry interface + */ +public interface CustomerRegistry { + Customer createCustomer(String name, String email, CreditCardDetailsType creditCard); + + boolean updateCustomer(Customer customer); + + Customer getCustomer(String id) throws CustomerNotFoundException; + + Collection getAllCustomers(); + + boolean deleteCustomer(String id); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java new file mode 100644 index 0000000000..26926c7764 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java @@ -0,0 +1,115 @@ +/* + * 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.customer.impl; + +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; + +import org.osoa.sca.annotations.Destroy; +import org.osoa.sca.annotations.EagerInit; +import org.osoa.sca.annotations.Init; +import org.osoa.sca.annotations.Requires; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.customer.Customer; +import com.tuscanyscatours.customer.CustomerNotFoundException; +import com.tuscanyscatours.customer.CustomerRegistry; +import com.tuscanyscatours.payment.creditcard.CreditCardDetailsType; +import com.tuscanyscatours.payment.creditcard.CreditCardTypeType; +import com.tuscanyscatours.payment.creditcard.ObjectFactory; +import com.tuscanyscatours.payment.creditcard.PayerType; + +/** + * An in-memory customer registry implementation + */ +@Service(CustomerRegistry.class) +@Scope("COMPOSITE") +@EagerInit +@Requires("{http://www.osoa.org/xmlns/sca/1.0}managedTransaction.global") +public class CustomerRegistryImpl implements CustomerRegistry { + private volatile static int idGenerator = 0; + private Map customers = new HashMap(); + + @Init + public void init() { + // Load the customers + ObjectFactory factory = new ObjectFactory(); + CreditCardDetailsType cc = factory.createCreditCardDetailsType(); + PayerType john = factory.createPayerType(); + john.setName("John Smith"); + cc.setCardOwner(john); + cc.setCreditCardNumber("1111-2222-3333-4444"); + cc.setCreditCardType(CreditCardTypeType.VISA); + cc.setCVV2("1234"); + cc.setExpMonth(1); + cc.setExpYear(2012); + createCustomer("John Smith", "john@xyz.com", cc); + } + + @Destroy + public void destroy() { + // Save the customers + } + + public Customer createCustomer(String name, String email, CreditCardDetailsType creditCard) { + Customer customer = new Customer(); + customer.setId("c-" + idGenerator++); + customer.setName(name); + customer.setEmail(email); + customer.setCreditCard(creditCard); + customers.put(customer.getId(), customer); + return customer; + } + + public boolean deleteCustomer(String id) { + return customers.remove(id) != null; + } + + public Collection getAllCustomers() { + return customers.values(); + } + + public Customer getCustomer(String id) throws CustomerNotFoundException { + Customer customer = customers.get(id); + + if (customer == null) { + throw new CustomerNotFoundException("Customer " + id + " not found"); + } + + return customer; + } + + public boolean updateCustomer(Customer customer) { + Customer current = null; + try { + current = getCustomer(customer.getId()); + } catch (Exception ex) { + return false; + } + + current.setEmail(customer.getEmail()); + current.setName(customer.getName()); + current.setCreditCard(customer.getCreditCard()); + return true; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java new file mode 100644 index 0000000000..5eb825cb85 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java @@ -0,0 +1,32 @@ +/* + * 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.emailgateway.impl; + +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.emailgateway.EmailType; + +public class EmailGatewayImpl implements EmailGateway { + + public String sendEmail(EmailType email) { + System.out.println("Sending mail to " + email.getTo()); + return "SENT"; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java new file mode 100644 index 0000000000..a35f761dc7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java @@ -0,0 +1,77 @@ +/* + * 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.payment.impl; + +import com.tuscanyscatours.customer.Customer; +import com.tuscanyscatours.customer.CustomerNotFoundException; +import com.tuscanyscatours.customer.CustomerRegistry; +import com.tuscanyscatours.emailgateway.EmailGateway; +import com.tuscanyscatours.emailgateway.EmailType; +import com.tuscanyscatours.payment.Payment; +import com.tuscanyscatours.payment.creditcard.CreditCardPayment; + +public class PaymentImpl implements Payment { + + private CreditCardPayment creditCardPayment; + private CustomerRegistry customerRegistry; + private EmailGateway emailGateway; + private float transactionFee; + + public void setCreditCardPayment(CreditCardPayment creditCardPayment) { + this.creditCardPayment = creditCardPayment; + } + + public void setCustomerRegistry(CustomerRegistry customerRegistry) { + this.customerRegistry = customerRegistry; + } + + public void setEmailGateway(EmailGateway emailGateway) { + this.emailGateway = emailGateway; + } + + public void setTransactionFee(Float transactionFee) { + this.transactionFee = transactionFee; + } + + public String makePaymentMember(String customerId, float amount) { + try { + Customer customer = customerRegistry.getCustomer(customerId); + + amount += transactionFee; + + String status = creditCardPayment.authorize(customer.getCreditCard(), amount); + + com.tuscanyscatours.emailgateway.ObjectFactory emailFactory = + new com.tuscanyscatours.emailgateway.ObjectFactory(); + EmailType email = emailFactory.createEmailType(); + email.setTitle("Payment Received"); + email.setTo(customerId); + + emailGateway.sendEmail(email); + + return status; + } catch (CustomerNotFoundException ex) { + return "Payment failed due to " + ex.getMessage(); + } catch (Throwable t) { + return "Payment failed due to system error " + t.getMessage(); + } + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/CreditCardPayment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/CreditCardPayment.wsdl new file mode 100644 index 0000000000..8224cd126f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/CreditCardPayment.wsdl @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/EmailGateway.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/EmailGateway.wsdl new file mode 100644 index 0000000000..44867f794c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/EmailGateway.wsdl @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..b480cc4aa1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/Payment-context.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/Payment-context.xml new file mode 100644 index 0000000000..f27280bf2f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/Payment-context.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/Payment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/Payment.wsdl new file mode 100644 index 0000000000..e2c4062f2e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/Payment.wsdl @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/payment.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/payment.composite new file mode 100644 index 0000000000..1e5bae2a2b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/main/resources/payment.composite @@ -0,0 +1,35 @@ + + + + + + + + + + + + + 1.23 + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/test/java/scatours/payment/PaymentTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/test/java/scatours/payment/PaymentTestCase.java new file mode 100644 index 0000000000..e1634c95f9 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/test/java/scatours/payment/PaymentTestCase.java @@ -0,0 +1,74 @@ +/* + * 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.payment; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.tuscanyscatours.payment.Payment; + +/** + * + */ +public class PaymentTestCase { + private static SCANode paymentNode; + private static SCANode creditCardNode; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + creditCardNode = + SCANodeFactory.newInstance() + .createSCANode("creditcard.composite", + new SCAContribution("creditcard", "../creditcard-payment-jaxb/target/classes")); + + creditCardNode.start(); + + paymentNode = + SCANodeFactory.newInstance().createSCANode(null, + new SCAContribution("payment-spring", "./target/classes"), + new SCAContribution("payment-spring-test", + "./target/test-classes")); + + paymentNode.start(); + } + + @Test + public void testPayment() { + SCAClient client = (SCAClient)paymentNode; + Payment payment = client.getService(Payment.class, "PaymentClient"); + String result = payment.makePaymentMember("c-0", 100.00f); + System.out.println("Result = " + result); + if (!"OK".equals(result)) { + throw new RuntimeException(result); + } + } + + @AfterClass + public static void tearDownAfterClass() throws Exception { + paymentNode.stop(); + creditCardNode.stop(); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java new file mode 100644 index 0000000000..4f64b20c4e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java @@ -0,0 +1,37 @@ +/* + * 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.payment.client.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.payment.Payment; + +@Service(Payment.class) +public class PaymentClientImpl implements Payment { + @Reference + protected Payment payment; + + public String makePaymentMember(String customerId, float amount) { + // Delegate the external web service + return payment.makePaymentMember(customerId, amount); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/test/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/test/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..b5639eb1f9 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/test/resources/META-INF/sca-contribution.xml @@ -0,0 +1,24 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/test/resources/payment-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/test/resources/payment-client.composite new file mode 100644 index 0000000000..642cebfd1c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/payment-spring/src/test/resources/payment-client.composite @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/build.xml new file mode 100644 index 0000000000..2a85f58a3f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/build.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/pom.xml new file mode 100644 index 0000000000..8cb418405e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/pom.xml @@ -0,0 +1,107 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-policy-client + Apache Tuscany SCA Tours Policy Client Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + scatours-contribution-common + ${pom.version} + provided + + + + javax.xml.ws + jaxws-api + 2.1 + + + javax.xml.soap + saaj-api + + + + + + + + ${artifactId} + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + add-source + generate-sources + + add-source + + + + target/jaxws-source + + + + + + + org.codehaus.mojo + jaxws-maven-plugin + 1.12 + + + payment + generate-sources + + wsimport + + + com.tuscanyscatours.payment + ${basedir}/src/main/resources + + Payment.wsdl + + ${project.build.directory}/jaxws-source + false + true + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/src/main/java/scatours/client/TestClient.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/src/main/java/scatours/client/TestClient.java new file mode 100644 index 0000000000..6f1243b103 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/src/main/java/scatours/client/TestClient.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 com.tuscanyscatours.payment.Payment; + +import com.tuscanyscatours.common.Book; +import com.tuscanyscatours.common.TripItem; + +/** + * A client for calling payment and trip components directly. The components in this + * case are expected to have policy configuration associated with the in the + * composite files that define them + * + */ +@Service(Runnable.class) +public class TestClient { + @Reference + protected Payment payment; + + @Reference + protected Book tripBooking; + + public TestClient() { + } + + public void run() { + System.out.println("==============================================="); + System.out.println("Test the loggin policy by calling the trip component"); + 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 = " + tripBooking.book(tripItem)); + System.out.println("==============================================="); + System.out.println("Test the basic authentication policy by calling the payment component"); + System.out.println("TestClient - Successful Payment - Status = " + payment.makePaymentMember("c-0", 100.00f)); + System.out.println("==============================================="); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..4300ce0dc0 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/src/main/resources/Payment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/src/main/resources/Payment.wsdl new file mode 100644 index 0000000000..2519d7642e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/src/main/resources/Payment.wsdl @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/src/main/resources/client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/src/main/resources/client.composite new file mode 100644 index 0000000000..5b632b4be2 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/policy-client/src/main/resources/client.composite @@ -0,0 +1,29 @@ + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/pom.xml new file mode 100644 index 0000000000..31845ec773 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/pom.xml @@ -0,0 +1,94 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../pom.xml + + scatours-contributions + pom + Apache Tuscany SCA Tours Contributions + + + blog-feed + buildingblocks + buildingblocks-client + calendar + car + common + creditcard-payment-jaxb + creditcard-payment-jaxb-policy + creditcard-payment-sdo + creditcard-payment-webapp + currency + currency-corba + currency-jms + currency-jsp + currency-rmi + currency-servlet + currency-ws + databinding-client + emailgateway + feed-logger + flight + fullapp-ui + fullapp-coordination + fullapp-currency + fullapp-packagedtrip + fullapp-bespoketrip + fullapp-shoppingcart + help-pages + hotel + interaction-client + interaction-service-remote + introducing-client + introducing-tours + introducing-trips + notification + notification-ws + notification-corba + notification-ejb + notification-jms + notification-rmi + shoppingcart + travelcatalog + tripbooking + trip + scatours + payment-java + payment-java-callback + payment-java-policy + payment-java-reference-pass + payment-spring + payment-spring-policy + payment-spring-scatag + payment-bpel-process + payment-bpel + payment-groovy + payment-python + policy-client + trip-policy + usingsca + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/build.xml new file mode 100644 index 0000000000..bdb8f8ecc4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/build.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/pom.xml new file mode 100644 index 0000000000..bbebd81957 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/pom.xml @@ -0,0 +1,78 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-scatours + Apache Tuscany SCA Tours SCATours Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + scatours-contribution-common + ${pom.version} + provided + + + + org.apache.tuscany.sca + scatours-contribution-travelcatalog + ${pom.version} + provided + + + + org.apache.tuscany.sca + scatours-contribution-tripbooking + ${pom.version} + provided + + + + org.apache.tuscany.sca + scatours-contribution-shoppingcart + ${pom.version} + provided + + + + junit + junit + 4.5 + test + + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/java/com/tuscanyscatours/SCAToursBooking.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/java/com/tuscanyscatours/SCAToursBooking.java new file mode 100644 index 0000000000..a1e0d6c91f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/java/com/tuscanyscatours/SCAToursBooking.java @@ -0,0 +1,31 @@ +/* + * 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; + +import org.osoa.sca.annotations.Remotable; + +import com.tuscanyscatours.common.TripItem; + +/** + * The SCA Tours trip booking service interface + */ +@Remotable +public interface SCAToursBooking { + String bookTrip(String cartId, TripItem tripId); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/java/com/tuscanyscatours/SCAToursCart.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/java/com/tuscanyscatours/SCAToursCart.java new file mode 100644 index 0000000000..f9554342e9 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/java/com/tuscanyscatours/SCAToursCart.java @@ -0,0 +1,35 @@ +/* + * 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; + +import org.osoa.sca.annotations.Remotable; + +import com.tuscanyscatours.common.TripItem; + +/** + * The ShoppingCart service interface + */ +@Remotable +public interface SCAToursCart { + String newCart(); + + TripItem[] getTrips(String cartId); + + void checkout(String cartId); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/java/com/tuscanyscatours/SCAToursSearch.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/java/com/tuscanyscatours/SCAToursSearch.java new file mode 100644 index 0000000000..6ce03fbb86 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/java/com/tuscanyscatours/SCAToursSearch.java @@ -0,0 +1,32 @@ +/* + * 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; + +import org.osoa.sca.annotations.Remotable; + +import com.tuscanyscatours.common.TripItem; +import com.tuscanyscatours.common.TripLeg; + +/** + * The Search service interface + */ +@Remotable +public interface SCAToursSearch { + TripItem[] search(TripLeg tripLeg); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/java/com/tuscanyscatours/impl/SCAToursImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/java/com/tuscanyscatours/impl/SCAToursImpl.java new file mode 100644 index 0000000000..7a7f6b460d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/java/com/tuscanyscatours/impl/SCAToursImpl.java @@ -0,0 +1,84 @@ +/* + * 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.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.SCAToursBooking; +import com.tuscanyscatours.SCAToursCart; +import com.tuscanyscatours.SCAToursSearch; +import com.tuscanyscatours.common.TripItem; +import com.tuscanyscatours.common.TripLeg; +import com.tuscanyscatours.shoppingcart.CartCheckout; +import com.tuscanyscatours.shoppingcart.CartInitialize; +import com.tuscanyscatours.travelcatalog.TravelCatalogSearch; +import com.tuscanyscatours.tripbooking.TripBooking; + +/** + * An implementation of the SCA tours component. it's just a pass through and allows + * the outward facing bindings to be changed without changing the individual contributions + */ +@Scope("COMPOSITE") +@Service(interfaces = {SCAToursSearch.class, SCAToursBooking.class, SCAToursCart.class}) +public class SCAToursImpl implements SCAToursSearch, SCAToursBooking, SCAToursCart { + + @Reference + protected TravelCatalogSearch travelCatalogSearch; + + @Reference + protected TripBooking tripBooking; + + @Reference + protected CartInitialize cartInitialize; + + @Reference + protected CartCheckout cartCheckout; + + // SCAToursSearch methods + + public TripItem[] search(TripLeg tripLeg) { + return travelCatalogSearch.search(tripLeg); + } + + // SCAToursBooking methods + + public String bookTrip(String cartId, TripItem trip) { + TripItem bookedTrip = tripBooking.bookTrip(cartId, trip); + return bookedTrip.getBookingCode(); + } + + // SCAToursCart methods + + public String newCart() { + String cartId = cartInitialize.newCart(); + return cartId; + } + + public TripItem[] getTrips(String cartId) { + return cartInitialize.getTrips(cartId); + } + + public void checkout(String cartId) { + // need to get the user id from the context here but + // just make one up for the time being + cartCheckout.checkout(cartId, "c-0"); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..2728a88840 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/scatours/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,27 @@ + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/build.xml new file mode 100644 index 0000000000..1976d2b5ed --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/build.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/pom.xml new file mode 100644 index 0000000000..bd521f70d6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/pom.xml @@ -0,0 +1,125 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-shoppingcart + Apache Tuscany SCA Tours Shopping Cart Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + scatours-contribution-common + ${pom.version} + provided + + + + javax.xml.ws + jaxws-api + 2.1 + + + javax.xml.soap + saaj-api + + + + + + junit + junit + 4.5 + test + + + + + + + java.net2 + java.net Maven 2.x Repository + http://download.java.net/maven/2 + + false + + + + + + ${artifactId} + + + org.codehaus.mojo + build-helper-maven-plugin + 1.0 + + + add-source + generate-sources + + add-source + + + + target/jaxws-source + + + + + + + org.codehaus.mojo + jaxws-maven-plugin + 1.12 + + + payment + generate-sources + + wsimport + + + com.tuscanyscatours.payment + ${basedir}/src/main/resources + + Payment.wsdl + + ${project.build.directory}/jaxws-source + false + true + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/CartCheckout.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/CartCheckout.java new file mode 100644 index 0000000000..929f9895c6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/CartCheckout.java @@ -0,0 +1,26 @@ +/* + * 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.shoppingcart; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface CartCheckout { + void checkout(String cartId, String name); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/CartInitialize.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/CartInitialize.java new file mode 100644 index 0000000000..24affc4b23 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/CartInitialize.java @@ -0,0 +1,30 @@ +/* + * 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.shoppingcart; + +import org.osoa.sca.annotations.Remotable; + +import com.tuscanyscatours.common.TripItem; + +@Remotable +public interface CartInitialize { + String newCart(); + + TripItem[] getTrips(String cartId); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/CartStore.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/CartStore.java new file mode 100644 index 0000000000..c7d03d765b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/CartStore.java @@ -0,0 +1,41 @@ +/* + * 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.shoppingcart; + +import org.osoa.sca.annotations.Conversational; +import org.osoa.sca.annotations.EndsConversation; +import org.osoa.sca.annotations.Remotable; + +import com.tuscanyscatours.common.TripItem; + +/** + * The CartStore service interface + */ +@Remotable +@Conversational +public interface CartStore { + void addTrip(TripItem trip); + + void removeTrip(TripItem trip); + + TripItem[] getTrips(); + + @EndsConversation + void reset(); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/CartUpdates.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/CartUpdates.java new file mode 100644 index 0000000000..f9a1272695 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/CartUpdates.java @@ -0,0 +1,30 @@ +/* + * 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.shoppingcart; + +import org.osoa.sca.annotations.Remotable; + +import com.tuscanyscatours.common.TripItem; + +@Remotable +public interface CartUpdates { + void addTrip(String cartId, TripItem trip); + + void removeTrip(String cartId, TripItem trip); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/impl/CartStoreImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/impl/CartStoreImpl.java new file mode 100644 index 0000000000..460b962526 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/impl/CartStoreImpl.java @@ -0,0 +1,70 @@ +/* + * 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.shoppingcart.impl; + +import java.util.ArrayList; +import java.util.List; + +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 com.tuscanyscatours.common.TripItem; +import com.tuscanyscatours.shoppingcart.CartStore; + +/** + * An implementation of the CartStore service + */ +@Scope("CONVERSATION") +@Service(interfaces = {CartStore.class}) +public class CartStoreImpl implements CartStore { + + @ConversationID + protected String cartId; + + private List trips = new ArrayList(); + + @Init + public void initCart() { + System.out.println("CartStore init for id: " + cartId); + } + + @Destroy + public void destroyCart() { + System.out.println("CartStore destroy for id: " + cartId); + } + + public void addTrip(TripItem trip) { + trips.add(trip); + } + + public void removeTrip(TripItem trip) { + trips.remove(trip); + } + + public TripItem[] getTrips() { + return trips.toArray(new TripItem[trips.size()]); + } + + public void reset() { + trips.clear(); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/impl/ShoppingCartImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/impl/ShoppingCartImpl.java new file mode 100644 index 0000000000..41c58e5266 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/java/com/tuscanyscatours/shoppingcart/impl/ShoppingCartImpl.java @@ -0,0 +1,104 @@ +/* + * 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.shoppingcart.impl; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import org.osoa.sca.ComponentContext; +import org.osoa.sca.ServiceReference; +import org.osoa.sca.annotations.Context; +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.common.TripItem; +import com.tuscanyscatours.payment.Payment; +import com.tuscanyscatours.shoppingcart.CartCheckout; +import com.tuscanyscatours.shoppingcart.CartInitialize; +import com.tuscanyscatours.shoppingcart.CartStore; +import com.tuscanyscatours.shoppingcart.CartUpdates; + +/** + * An implementation of the ShoppingCart service + */ +@Service(interfaces = {CartInitialize.class, CartUpdates.class, CartCheckout.class}) +public class ShoppingCartImpl implements CartInitialize, CartUpdates, CartCheckout { + + @Reference + protected Payment payment; + + @Reference + protected CartStore cartStore; + + @Context + protected ComponentContext componentContext; + + private static Map cartStores = new HashMap(); + + public String newCart() { + String cartId = UUID.randomUUID().toString(); + ServiceReference cartStore = componentContext.getServiceReference(CartStore.class, "cartStore"); + cartStore.setConversationID(cartId); + cartStores.put(cartId, cartStore.getService()); + + return cartId; + } + + public void addTrip(String cartId, TripItem trip) { + cartStores.get(cartId).addTrip(trip); + } + + public void removeTrip(String cartId, TripItem trip) { + cartStores.get(cartId).addTrip(trip); + } + + public TripItem[] getTrips(String cartId) { + return cartStores.get(cartId).getTrips(); + } + + public void checkout(String cartId, 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; + + TripItem[] trips = getTrips(cartId); + + 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); + + // reset the cart store + cartStores.get(cartId).reset(); + cartStores.remove(cartId); + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..176c031c4c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/resources/Payment.wsdl b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/resources/Payment.wsdl new file mode 100644 index 0000000000..3885764899 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/shoppingcart/src/main/resources/Payment.wsdl @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/build.xml new file mode 100644 index 0000000000..45373a4910 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/build.xml @@ -0,0 +1,26 @@ + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/pom.xml new file mode 100644 index 0000000000..1df6a3e8cd --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/pom.xml @@ -0,0 +1,64 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-travelcatalog + Apache Tuscany SCA Tours Travel Catalog Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + scatours-contribution-common + ${pom.version} + provided + + + + org.apache.tuscany.sca + scatours-contribution-currency + ${pom.version} + provided + + + + junit + junit + 4.5 + test + + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/src/main/java/com/tuscanyscatours/travelcatalog/TravelCatalogSearch.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/src/main/java/com/tuscanyscatours/travelcatalog/TravelCatalogSearch.java new file mode 100644 index 0000000000..e558439f82 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/src/main/java/com/tuscanyscatours/travelcatalog/TravelCatalogSearch.java @@ -0,0 +1,32 @@ +/* + * 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.travelcatalog; + +import org.osoa.sca.annotations.Remotable; + +import com.tuscanyscatours.common.TripItem; +import com.tuscanyscatours.common.TripLeg; + +/** + * The TravelCatalogSearch service interface + */ +@Remotable +public interface TravelCatalogSearch { + TripItem[] search(TripLeg tripLeg); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/src/main/java/com/tuscanyscatours/travelcatalog/impl/TravelCatalogImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/src/main/java/com/tuscanyscatours/travelcatalog/impl/TravelCatalogImpl.java new file mode 100644 index 0000000000..90351720bb --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/src/main/java/com/tuscanyscatours/travelcatalog/impl/TravelCatalogImpl.java @@ -0,0 +1,127 @@ +/* + * 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.travelcatalog.impl; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.CountDownLatch; + +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 com.tuscanyscatours.common.Search; +import com.tuscanyscatours.common.SearchCallback; +import com.tuscanyscatours.common.TripItem; +import com.tuscanyscatours.common.TripLeg; +import com.tuscanyscatours.currencyconverter.CurrencyConverter; +import com.tuscanyscatours.travelcatalog.TravelCatalogSearch; + +/** + * An implementation of the travel catalog service + */ +@Scope("COMPOSITE") +@Service(interfaces = {TravelCatalogSearch.class}) +public class TravelCatalogImpl implements TravelCatalogSearch, SearchCallback { + + @Reference + protected Search hotelSearch; + + @Reference + protected Search flightSearch; + + @Reference + protected Search carSearch; + + @Reference + protected Search tripSearch; + + @Property + public String quoteCurrencyCode = "USD"; + + @Reference + protected CurrencyConverter currencyConverter; + + @Context + protected ComponentContext componentContext; + + private List searchResults = new ArrayList(); + + CountDownLatch resultsReceivedCountdown; + + // TravelSearch methods + + public TripItem[] search(TripLeg tripLeg) { + + resultsReceivedCountdown = new CountDownLatch(4); + searchResults.clear(); + + ServiceReference dynamicHotelSearch = componentContext.getServiceReference(Search.class, "hotelSearch"); + + dynamicHotelSearch.setCallbackID("HotelSearchCallbackID-" + tripLeg.getId()); + dynamicHotelSearch.getService().searchAsynch(tripLeg); + + flightSearch.searchAsynch(tripLeg); + carSearch.searchAsynch(tripLeg); + tripSearch.searchAsynch(tripLeg); + + System.out.println("going into wait"); + + try { + resultsReceivedCountdown.await(); + } catch (InterruptedException ex) { + } + + 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 synchronized void searchResults(TripItem[] items) { + RequestContext requestContext = componentContext.getRequestContext(); + Object callbackID = requestContext.getServiceReference().getCallbackID(); + System.out.println("Asynch response - " + callbackID); + + if (items != null) { + for (int i = 0; i < items.length; i++) { + searchResults.add(items[i]); + } + } + + resultsReceivedCountdown.countDown(); + } + + public void setPercentComplete(String searchComponent, int percentComplete) { + // Not used at the moment + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..b18ae45a09 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/travelcatalog/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/build.xml new file mode 100644 index 0000000000..a6c7e4e058 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/build.xml @@ -0,0 +1,26 @@ + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/pom.xml new file mode 100644 index 0000000000..4d673c1e50 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/pom.xml @@ -0,0 +1,78 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-trip-policy + Apache Tuscany SCA Tours Prepackaged Trip Policy Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + scatours-contribution-common + ${pom.version} + provided + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-policy-logging + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/java/com/tuscanyscatours/trip/impl/TripImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/java/com/tuscanyscatours/trip/impl/TripImpl.java new file mode 100644 index 0000000000..2b7047ac07 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/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.osoa.sca.annotations.Callback; +import org.osoa.sca.annotations.Init; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.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(interfaces = {Search.class, Book.class}) +public class TripImpl implements Search, Book { + + private List trips = new ArrayList(); + + @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 items = new ArrayList(); + + // 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-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/java/com/tuscanyscatours/trip/impl/TripInfo.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/java/com/tuscanyscatours/trip/impl/TripInfo.java new file mode 100644 index 0000000000..5edbc92ccd --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/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-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..21555e4514 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,25 @@ + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/resources/definitions.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/resources/definitions.xml new file mode 100644 index 0000000000..8d7ff59b0c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/resources/definitions.xml @@ -0,0 +1,32 @@ + + + + + + + + FINER + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/resources/trip.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/resources/trip.composite new file mode 100644 index 0000000000..06c449633c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/main/resources/trip.composite @@ -0,0 +1,31 @@ + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/test/java/scatours/trip/TripTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/src/test/java/scatours/trip/TripTestCase.java new file mode 100644 index 0000000000..fd2cc073ec --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip-policy/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.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +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 SCANode tripNode; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + try { + tripNode = + SCANodeFactory.newInstance().createSCANode("trip.composite", + new SCAContribution("trip", "./target/classes"), + new SCAContribution("trip-test", "./target/test-classes")); + + tripNode.start(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + @Test + public void testPayment() { + SCAClient client = (SCAClient)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-1.x/tags/travelsample-1.0-RC3/contributions/trip/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/build.xml new file mode 100644 index 0000000000..6e48af3cf8 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/build.xml @@ -0,0 +1,26 @@ + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/pom.xml new file mode 100644 index 0000000000..4dfd487290 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/pom.xml @@ -0,0 +1,78 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-trip + Apache Tuscany SCA Tours Prepackaged Trip Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + scatours-contribution-common + ${pom.version} + provided + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-policy-logging + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/main/java/com/tuscanyscatours/trip/impl/TripImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/main/java/com/tuscanyscatours/trip/impl/TripImpl.java new file mode 100644 index 0000000000..ec90524518 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/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.osoa.sca.annotations.Callback; +import org.osoa.sca.annotations.Init; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.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(interfaces = {Search.class, Book.class}) +public class TripImpl implements Search, Book { + + private List trips = new ArrayList(); + + @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 items = new ArrayList(); + + // 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-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/main/java/com/tuscanyscatours/trip/impl/TripInfo.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/main/java/com/tuscanyscatours/trip/impl/TripInfo.java new file mode 100644 index 0000000000..d8809e1325 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/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-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..7f2efe2de7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/test/java/scatours/trip/TripTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/test/java/scatours/trip/TripTestCase.java new file mode 100644 index 0000000000..fd2cc073ec --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/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.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +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 SCANode tripNode; + + @BeforeClass + public static void setUpBeforeClass() throws Exception { + try { + tripNode = + SCANodeFactory.newInstance().createSCANode("trip.composite", + new SCAContribution("trip", "./target/classes"), + new SCAContribution("trip-test", "./target/test-classes")); + + tripNode.start(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + @Test + public void testPayment() { + SCAClient client = (SCAClient)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-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/test/resources/definitions.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/test/resources/definitions.xml new file mode 100644 index 0000000000..8d7ff59b0c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/test/resources/definitions.xml @@ -0,0 +1,32 @@ + + + + + + + + FINER + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/test/resources/trip.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/test/resources/trip.composite new file mode 100644 index 0000000000..06c449633c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/trip/src/test/resources/trip.composite @@ -0,0 +1,31 @@ + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/build.xml new file mode 100644 index 0000000000..e8e7eb7f10 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/build.xml @@ -0,0 +1,26 @@ + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/pom.xml new file mode 100644 index 0000000000..562f552dc3 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/pom.xml @@ -0,0 +1,63 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-tripbooking + Apache Tuscany SCA Tours Trip Booking Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + org.apache.tuscany.sca + scatours-contribution-common + ${pom.version} + provided + + + + org.apache.tuscany.sca + scatours-contribution-currency + ${pom.version} + provided + + + + org.apache.tuscany.sca + scatours-contribution-shoppingcart + ${pom.version} + provided + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/src/main/java/com/tuscanyscatours/tripbooking/TripBooking.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/src/main/java/com/tuscanyscatours/tripbooking/TripBooking.java new file mode 100644 index 0000000000..0693d40465 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/src/main/java/com/tuscanyscatours/tripbooking/TripBooking.java @@ -0,0 +1,32 @@ +/* + * 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.tripbooking; + +import org.osoa.sca.annotations.Remotable; + +import com.tuscanyscatours.common.TripItem; + +/** + * The TripBooking service interface + */ +@Remotable +public interface TripBooking { + + TripItem bookTrip(String cartId, TripItem trip); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/src/main/java/com/tuscanyscatours/tripbooking/impl/TripBookingImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/src/main/java/com/tuscanyscatours/tripbooking/impl/TripBookingImpl.java new file mode 100644 index 0000000000..5d1e1f2db5 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/src/main/java/com/tuscanyscatours/tripbooking/impl/TripBookingImpl.java @@ -0,0 +1,91 @@ +/* + * 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.tripbooking.impl; + +import org.osoa.sca.ComponentContext; +import org.osoa.sca.ServiceReference; +import org.osoa.sca.annotations.Context; +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.common.Book; +import com.tuscanyscatours.common.TripItem; +import com.tuscanyscatours.shoppingcart.CartUpdates; +import com.tuscanyscatours.tripbooking.TripBooking; + +/** + * An implementation of the TripBooking service + */ +@Service(interfaces = {TripBooking.class}) +public class TripBookingImpl implements TripBooking { + + @Reference + protected Book hotelBook; + + @Reference + protected Book flightBook; + + @Reference + protected Book carBook; + + @Reference + protected Book tripBook; + + @Reference + protected CartUpdates cartUpdates; + + @Context + protected ComponentContext componentContext; + + public TripItem bookTrip(String cartId, TripItem trip) { + + String bookingCode = ""; + + // book any nested items + TripItem[] nestedItems = trip.getTripItems(); + if (nestedItems != null) { + for (int i = 0; i < nestedItems.length; i++) { + TripItem tripItem = nestedItems[i]; + if (tripItem.getType().equals(TripItem.CAR)) { + tripItem.setBookingCode(carBook.book(tripItem)); + } else if (tripItem.getType().equals(TripItem.FLIGHT)) { + tripItem.setBookingCode(flightBook.book(tripItem)); + } else if (tripItem.getType().equals(TripItem.HOTEL)) { + tripItem.setBookingCode(hotelBook.book(tripItem)); + } else { + tripItem.setBookingCode(tripItem.getType() + " is invalid"); + } + } + } + + // book the top level item if it's a packaged trip + if (trip.getType().equals(TripItem.TRIP)) { + bookingCode = tripBook.book(trip); + trip.setBookingCode(bookingCode); + } + + // add trip to the shopping cart + ServiceReference cart = componentContext.getServiceReference(CartUpdates.class, "cartUpdates"); + cart.setConversationID(cartId); + cart.getService().addTrip(cartId, trip); + + return trip; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/src/main/resources/META-INF/sca-contribution.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..906f892d1f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/tripbooking/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,26 @@ + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/build.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/build.xml new file mode 100644 index 0000000000..9f5fa9ed69 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/build.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/pom.xml b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/pom.xml new file mode 100644 index 0000000000..b1f3c92203 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/pom.xml @@ -0,0 +1,124 @@ + + + + 4.0.0 + + org.apache.tuscany.sca + scatours + 1.0 + ../../pom.xml + + scatours-contribution-usingsca + Apache Tuscany SCA Tours Using SCA Components Contribution + + + + org.apache.tuscany.sca + tuscany-sca-api + ${tuscany.version} + + + + javax.xml.bind + jaxb-api + 2.1 + + + + org.apache.tuscany.sca + tuscany-implementation-java-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ws-axis2 + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-jms-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-binding-ejb-runtime + ${tuscany.version} + runtime + + + + org.apache.tuscany.sca + tuscany-node-api + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-node-impl + ${tuscany.version} + test + + + + org.apache.tuscany.sca + tuscany-host-jms-asf + ${tuscany.version} + test + + + + org.apache.activemq + activemq-all + 5.2.0 + + + org.apache.activemq + activemq-web-demo + + + test + + + + org.apache.tuscany.sca + tuscany-host-jetty + ${tuscany.version} + test + + + + junit + junit + 4.5 + test + + + + + ${artifactId} + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscahotels/HotelOffers.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscahotels/HotelOffers.java new file mode 100644 index 0000000000..8abc5af687 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscahotels/HotelOffers.java @@ -0,0 +1,26 @@ +/* + * 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.tuscanyscahotels; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface HotelOffers { + String bookTodaysSpecial(); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscahotels/impl/HotelOffersImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscahotels/impl/HotelOffersImpl.java new file mode 100644 index 0000000000..fccef2beed --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscahotels/impl/HotelOffersImpl.java @@ -0,0 +1,35 @@ +/* + * 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.tuscanyscahotels.impl; + +import java.util.Date; +import org.osoa.sca.annotations.Reference; + +import com.tuscanyscahotels.HotelOffers; +import com.tuscanyscatours.Hotels; + +public class HotelOffersImpl implements HotelOffers { + + @Reference + protected Hotels hotels; + + public String bookTodaysSpecial() { + return hotels.bookHotel("LBH", new Date(), 3, "STD"); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Address.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Address.java new file mode 100644 index 0000000000..614da1e2ad --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Address.java @@ -0,0 +1,172 @@ +/* + * 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. + */ + +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.1.3 in JDK 1.6 +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2010.03.27 at 05:55:25 AM GMT +// + + +package com.tuscanyscatours; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for Address complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType name="Address">
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="street" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="city" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="state" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="zip" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "Address", propOrder = { + "street", + "city", + "state", + "zip" +}) +public class Address { + + @XmlElement(required = true) + protected String street; + @XmlElement(required = true) + protected String city; + @XmlElement(required = true) + protected String state; + @XmlElement(required = true) + protected String zip; + + /** + * Gets the value of the street property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getStreet() { + return street; + } + + /** + * Sets the value of the street property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setStreet(String value) { + this.street = value; + } + + /** + * Gets the value of the city property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCity() { + return city; + } + + /** + * Sets the value of the city property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCity(String value) { + this.city = value; + } + + /** + * Gets the value of the state property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getState() { + return state; + } + + /** + * Sets the value of the state property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setState(String value) { + this.state = value; + } + + /** + * Gets the value of the zip property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getZip() { + return zip; + } + + /** + * Sets the value of the zip property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setZip(String value) { + this.zip = value; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/AirportCodes.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/AirportCodes.java new file mode 100644 index 0000000000..577f22250a --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/AirportCodes.java @@ -0,0 +1,28 @@ +/* + * 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; + +public class AirportCodes { + public String getAirport(String code) { + if ("AAA".equals(code)) return "Anaa"; + else if ("AAB".equals(code)) return "Arrabury"; + // other airport codes and cities would follow here + else return null; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/BillingAddress.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/BillingAddress.java new file mode 100644 index 0000000000..4687cf1116 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/BillingAddress.java @@ -0,0 +1,174 @@ +/* + * 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. + */ + +// +// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vJAXB 2.1.3 in JDK 1.6 +// See http://java.sun.com/xml/jaxb +// Any modifications to this file will be lost upon recompilation of the source schema. +// Generated on: 2010.03.27 at 05:55:25 AM GMT +// + + +package com.tuscanyscatours; + +import javax.xml.bind.annotation.XmlAccessType; +import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlType; + + +/** + *

Java class for anonymous complex type. + * + *

The following schema fragment specifies the expected content contained within this class. + * + *

+ * <complexType>
+ *   <complexContent>
+ *     <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       <sequence>
+ *         <element name="street" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="city" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="state" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *         <element name="zip" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ *       </sequence>
+ *     </restriction>
+ *   </complexContent>
+ * </complexType>
+ * 
+ * + * + */ +@XmlAccessorType(XmlAccessType.FIELD) +@XmlType(name = "", propOrder = { + "street", + "city", + "state", + "zip" +}) +@XmlRootElement(name = "billingAddress") +public class BillingAddress { + + @XmlElement(required = true) + protected String street; + @XmlElement(required = true) + protected String city; + @XmlElement(required = true) + protected String state; + @XmlElement(required = true) + protected String zip; + + /** + * Gets the value of the street property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getStreet() { + return street; + } + + /** + * Sets the value of the street property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setStreet(String value) { + this.street = value; + } + + /** + * Gets the value of the city property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getCity() { + return city; + } + + /** + * Sets the value of the city property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setCity(String value) { + this.city = value; + } + + /** + * Gets the value of the state property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getState() { + return state; + } + + /** + * Sets the value of the state property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setState(String value) { + this.state = value; + } + + /** + * Gets the value of the zip property. + * + * @return + * possible object is + * {@link String } + * + */ + public String getZip() { + return zip; + } + + /** + * Sets the value of the zip property. + * + * @param value + * allowed object is + * {@link String } + * + */ + public void setZip(String value) { + this.zip = value; + } + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Bookings.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Bookings.java new file mode 100644 index 0000000000..9d54d46bb6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Bookings.java @@ -0,0 +1,26 @@ +/* + * 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; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Bookings { + String newBooking(String trip, int people); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Cars.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Cars.java new file mode 100644 index 0000000000..f58fa33c8d --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Cars.java @@ -0,0 +1,27 @@ +/* + * 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; + +import java.util.Date; +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Cars { + String bookCar(Date pickup, int days, String carClass); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/CurrencyConverter.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/CurrencyConverter.java new file mode 100644 index 0000000000..9c201813e1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/CurrencyConverter.java @@ -0,0 +1,27 @@ +/* + * 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; + +import java.math.BigDecimal; +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface CurrencyConverter { + BigDecimal convert(BigDecimal amount); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/CustomerInfo.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/CustomerInfo.java new file mode 100644 index 0000000000..958ca6cf8c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/CustomerInfo.java @@ -0,0 +1,27 @@ +/* + * 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; + +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface CustomerInfo { + String getBillingAddress(); + String getDeliveryAddress(); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Flights.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Flights.java new file mode 100644 index 0000000000..873b0afc0c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Flights.java @@ -0,0 +1,27 @@ +/* + * 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; + +import java.util.Date; +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Flights { + String bookFlight(String flightNumber, Date date, int seats, String flightClass); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Hotels.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Hotels.java new file mode 100644 index 0000000000..85944ad1b6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/Hotels.java @@ -0,0 +1,27 @@ +/* + * 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; + +import java.util.Date; +import org.osoa.sca.annotations.Remotable; + +@Remotable +public interface Hotels { + String bookHotel(String hotelCode, Date date, int days, String roomType); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/CarPartnerImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/CarPartnerImpl.java new file mode 100644 index 0000000000..cb354e0ccc --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/CarPartnerImpl.java @@ -0,0 +1,36 @@ +/* + * 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.usingsca.impl; + +import java.util.Date; +import org.osoa.sca.annotations.Reference; +import com.tuscanyscatours.Cars; + +public class CarPartnerImpl implements Cars { + + @Reference + protected Cars[] cars; + + @Reference(required=false) + protected Cars[] luxuryCars; + + public String bookCar(Date pickup, int days, String carClass) { + return cars[0].bookCar(pickup, days, carClass); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/CarVendorImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/CarVendorImpl.java new file mode 100644 index 0000000000..13c8de7f30 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/CarVendorImpl.java @@ -0,0 +1,34 @@ +/* + * 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.usingsca.impl; + +import java.util.Date; +import com.tuscanyscatours.Cars; + +public class CarVendorImpl implements Cars { + + protected int minAge; // implicitly defines an SCA property + + public String bookCar(Date pickup, int days, String carClass) { + System.out.println("Booking confirmed for pickup date " + pickup + + " duration " + days + " days in a " + carClass + + " class car"); + return "CV234"; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/CurrencyConverterImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/CurrencyConverterImpl.java new file mode 100644 index 0000000000..a7687c61f7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/CurrencyConverterImpl.java @@ -0,0 +1,45 @@ +/* + * 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.usingsca.impl; + +import java.math.BigDecimal; +import org.osoa.sca.annotations.Property; +import com.tuscanyscatours.CurrencyConverter; + +public class CurrencyConverterImpl implements CurrencyConverter { + + @Property + protected String fromCurrency; + + @Property + protected String toCurrency; + + public BigDecimal convert(BigDecimal amount) { + return amount.multiply(getRate(toCurrency)) + .divide(getRate(fromCurrency), 2, 0); + } + + private BigDecimal getRate(String currency) { + int rate = 0; + for (int i = 0; i < currency.length(); i++) { + rate += currency.codePointAt(i); + } + return new BigDecimal(rate).divide(new BigDecimal(100)); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/CustomerImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/CustomerImpl.java new file mode 100644 index 0000000000..361d5b35c7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/CustomerImpl.java @@ -0,0 +1,47 @@ +/* + * 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.usingsca.impl; + +import org.osoa.sca.annotations.Property; +import com.tuscanyscatours.Address; +import com.tuscanyscatours.BillingAddress; +import com.tuscanyscatours.CustomerInfo; + +public class CustomerImpl implements CustomerInfo { + + @Property + protected BillingAddress billingAddress; + + @Property + protected Address deliveryAddress; + + public String getBillingAddress() { + return billingAddress.getStreet() + ", " + + billingAddress.getCity() + ", " + + billingAddress.getState() + " " + + billingAddress.getZip(); + } + + public String getDeliveryAddress() { + return deliveryAddress.getStreet() + ", " + + deliveryAddress.getCity() + ", " + + deliveryAddress.getState() + " " + + deliveryAddress.getZip(); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/FlightPartnerImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/FlightPartnerImpl.java new file mode 100644 index 0000000000..e076a725d1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/FlightPartnerImpl.java @@ -0,0 +1,31 @@ +/* + * 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.usingsca.impl; + +import java.util.Date; +import com.tuscanyscatours.Flights; + +public class FlightPartnerImpl implements Flights { + + public String bookFlight(String flightNumber, Date date, int seats, String flightClass) { + System.out.println("Booking confirmed for flight " + flightNumber + " on date " + + date + " with " + seats + " seats in " + flightClass + " class"); + return "FP345"; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/HotelPartnerImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/HotelPartnerImpl.java new file mode 100644 index 0000000000..86c98517e7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/HotelPartnerImpl.java @@ -0,0 +1,31 @@ +/* + * 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.usingsca.impl; + +import java.util.Date; +import com.tuscanyscatours.Hotels; + +public class HotelPartnerImpl implements Hotels { + + public String bookHotel(String hotelCode, Date date, int days, String roomType) { + System.out.println("Booking confirmed for hotel " + hotelCode + " arriving on " + + date + " for " + days + " days in a " + roomType + " room"); + return "HP456"; + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/TripBookingImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/TripBookingImpl.java new file mode 100644 index 0000000000..04c06a8fe6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/com/tuscanyscatours/usingsca/impl/TripBookingImpl.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 com.tuscanyscatours.usingsca.impl; + +import java.text.DateFormat; +import java.util.Date; +import org.osoa.sca.annotations.Reference; + +import com.tuscanyscatours.Bookings; +import com.tuscanyscatours.Cars; +import com.tuscanyscatours.Flights; +import com.tuscanyscatours.Hotels; + +public class TripBookingImpl implements Bookings { + + public TripBookingImpl(@Reference(name="cars") Cars cars) { + this.cars = cars; + } + + protected Cars cars; + + @Reference + protected Flights flights; + + private Hotels hotels; + + @Reference + public void setHotels(Hotels hotels) { + this.hotels = hotels; + } + + public String newBooking(String trip, int people) { + /* In a real implementation this method would look up the trip code + in the travel catalog to get details of the car, flight and hotel + bookings needed. Instead these details are hard-wired here for + test purposes. */ + Date startDate = new Date(); //TEMP - need to fix + /* + try { + startDate = DateFormat.getInstance().parse("7 Jul, 2012"); + } catch (Exception e) { + e.printStackTrace(); + } + */ + + if (people > 0) { + cars.bookCar(startDate, 7, "B"); + flights.bookFlight("AA123", startDate, people, "Y"); + hotels.bookHotel("DBH", startDate, 7, "SUP"); + + return "HW3546"; + + } else { + return "NONE"; + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/AirportCodesClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/AirportCodesClientImpl.java new file mode 100644 index 0000000000..4857b25fb6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/AirportCodesClientImpl.java @@ -0,0 +1,36 @@ +/* + * 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.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.AirportCodes; + +@Service(Runnable.class) +public class AirportCodesClientImpl { + + @Reference + protected AirportCodes airportcodes; + + public void run() { + String airport = airportcodes.getAirport("AAB"); + System.out.println("AAB is the airport code for " + airport); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/BookingsClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/BookingsClientImpl.java new file mode 100644 index 0000000000..aa842c80f7 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/BookingsClientImpl.java @@ -0,0 +1,36 @@ +/* + * 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.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.Bookings; + +@Service(Runnable.class) +public class BookingsClientImpl { + + @Reference + protected Bookings bookings; + + public void run() { + String bookingCode = bookings.newBooking("VR3MAY9", 2); + System.out.println("Booking code is " + bookingCode); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/BookingsZeroClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/BookingsZeroClientImpl.java new file mode 100644 index 0000000000..1fd519d5e9 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/BookingsZeroClientImpl.java @@ -0,0 +1,36 @@ +/* + * 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.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.Bookings; + +@Service(Runnable.class) +public class BookingsZeroClientImpl { + + @Reference + protected Bookings bookings; + + public void run() { + String bookingCode = bookings.newBooking("DUMMY", 0); + System.out.println("Booking code is " + bookingCode); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/CarBookingsClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/CarBookingsClientImpl.java new file mode 100644 index 0000000000..0c78a77825 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/CarBookingsClientImpl.java @@ -0,0 +1,38 @@ +/* + * 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.impl; + +import java.util.Date; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.Cars; + +@Service(Runnable.class) +public class CarBookingsClientImpl { + + @Reference + protected Cars cars; + + public void run() { + String bookingCode = cars.bookCar(new Date(), 3, "K"); // need to FIX + System.out.println("Booking code is " + bookingCode); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/ConverterClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/ConverterClientImpl.java new file mode 100644 index 0000000000..5eab8f8a16 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/ConverterClientImpl.java @@ -0,0 +1,43 @@ +/* + * 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.impl; + +import java.math.BigDecimal; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.CurrencyConverter; + +@Service(Runnable.class) +public class ConverterClientImpl { + + @Reference + protected CurrencyConverter eur2jpy; + + @Reference + protected CurrencyConverter usd2gbp; + + public void run() { + BigDecimal jpy = eur2jpy.convert(new BigDecimal("1000.00")); + System.out.println("Converted EUR 1000.00 to JPY " + jpy); + BigDecimal gbp = usd2gbp.convert(new BigDecimal("1000.00")); + System.out.println("Converted USD 1000.00 to GBP " + gbp); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/HotelOffersClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/HotelOffersClientImpl.java new file mode 100644 index 0000000000..e581273113 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/HotelOffersClientImpl.java @@ -0,0 +1,36 @@ +/* + * 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.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscahotels.HotelOffers; + +@Service(Runnable.class) +public class HotelOffersClientImpl { + + @Reference + protected HotelOffers offers; + + public void run() { + String bookingCode = offers.bookTodaysSpecial(); + System.out.println("Hotel offers booking code is " + bookingCode); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/Orders1ClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/Orders1ClientImpl.java new file mode 100644 index 0000000000..af21ad3683 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/Orders1ClientImpl.java @@ -0,0 +1,36 @@ +/* + * 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.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.CustomerInfo; + +@Service(Runnable.class) +public class Orders1ClientImpl { + + @Reference + protected CustomerInfo customer; + + public void run() { + String address = customer.getBillingAddress(); + System.out.println("Customer billing address: " + address); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/Orders2ClientImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/Orders2ClientImpl.java new file mode 100644 index 0000000000..41727ac621 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/java/scatours/client/impl/Orders2ClientImpl.java @@ -0,0 +1,38 @@ +/* + * 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.impl; + +import org.osoa.sca.annotations.Reference; +import org.osoa.sca.annotations.Service; + +import com.tuscanyscatours.CustomerInfo; + +@Service(Runnable.class) +public class Orders2ClientImpl { + + @Reference + protected CustomerInfo customer; + + public void run() { + String address = customer.getBillingAddress(); + System.out.println("Customer billing address: " + address); + address = customer.getDeliveryAddress(); + System.out.println("Customer delivery address: " + address); + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/address.xsd b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/address.xsd new file mode 100644 index 0000000000..116110f1f3 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/address.xsd @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/airportcodes.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/airportcodes.composite new file mode 100644 index 0000000000..e68fc732b1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/airportcodes.composite @@ -0,0 +1,26 @@ + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/bookings1.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/bookings1.composite new file mode 100644 index 0000000000..72347e9987 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/bookings1.composite @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/bookings2.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/bookings2.composite new file mode 100644 index 0000000000..ef1e214b30 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/bookings2.composite @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/bookings3.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/bookings3.composite new file mode 100644 index 0000000000..6b961242fd --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/bookings3.composite @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/bookings4.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/bookings4.composite new file mode 100644 index 0000000000..321c891ff8 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/bookings4.composite @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/carbookings1.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/carbookings1.composite new file mode 100644 index 0000000000..f112f25cbc --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/carbookings1.composite @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/carbookings2.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/carbookings2.composite new file mode 100644 index 0000000000..b41b569544 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/carbookings2.composite @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/carbookings3.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/carbookings3.composite new file mode 100644 index 0000000000..1bcfb101e4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/carbookings3.composite @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/converter.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/converter.composite new file mode 100644 index 0000000000..2afe9cd6e2 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/converter.composite @@ -0,0 +1,35 @@ + + + + + + EUR + JPY + + + + USD + GBP + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/hotelsdomain.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/hotelsdomain.composite new file mode 100644 index 0000000000..758c3e31d2 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/hotelsdomain.composite @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/orders1.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/orders1.composite new file mode 100644 index 0000000000..b0ff245132 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/orders1.composite @@ -0,0 +1,37 @@ + + + + + + + + + 123 Main Street + New York + NY + 01234 + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/orders2.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/orders2.composite new file mode 100644 index 0000000000..79d4be7b61 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/orders2.composite @@ -0,0 +1,46 @@ + + + + + + + + + 123 Main Street + New York + NY + 01234 + + + + + 456 Market Street + San Francisco + CA + 98765 + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/orders2.xsd b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/orders2.xsd new file mode 100644 index 0000000000..db6ee8766e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/orders2.xsd @@ -0,0 +1,24 @@ + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/airportcodes-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/airportcodes-client.composite new file mode 100644 index 0000000000..faf2aced82 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/airportcodes-client.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/bookings1-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/bookings1-client.composite new file mode 100644 index 0000000000..c1c4ecfe12 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/bookings1-client.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/bookings2-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/bookings2-client.composite new file mode 100644 index 0000000000..e84c7fec06 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/bookings2-client.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/bookings3-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/bookings3-client.composite new file mode 100644 index 0000000000..21248976a6 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/bookings3-client.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/bookings4-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/bookings4-client.composite new file mode 100644 index 0000000000..bc3af6ae4a --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/bookings4-client.composite @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/carbookings1-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/carbookings1-client.composite new file mode 100644 index 0000000000..363f498997 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/carbookings1-client.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/carbookings2-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/carbookings2-client.composite new file mode 100644 index 0000000000..f80eaf4eca --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/carbookings2-client.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/carbookings3-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/carbookings3-client.composite new file mode 100644 index 0000000000..e3cf379de3 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/carbookings3-client.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/converter-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/converter-client.composite new file mode 100644 index 0000000000..c488a454b4 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/converter-client.composite @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/hotelsdomain-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/hotelsdomain-client.composite new file mode 100644 index 0000000000..597a5f0a4f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/hotelsdomain-client.composite @@ -0,0 +1,34 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/orders1-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/orders1-client.composite new file mode 100644 index 0000000000..9015e14cb8 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/orders1-client.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/orders2-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/orders2-client.composite new file mode 100644 index 0000000000..f9ae67332b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/orders2-client.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/toursdomain-client.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/toursdomain-client.composite new file mode 100644 index 0000000000..b84dbe8f72 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/test-clients/toursdomain-client.composite @@ -0,0 +1,33 @@ + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/toursdomain.composite b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/toursdomain.composite new file mode 100644 index 0000000000..a0ee26fb89 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/main/resources/toursdomain.composite @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/AirportCodesTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/AirportCodesTestCase.java new file mode 100644 index 0000000000..53d9029e7f --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/AirportCodesTestCase.java @@ -0,0 +1,56 @@ +/* + * 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; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests the AirportCodes component implementation class + */ +public class AirportCodesTestCase { + + private SCANode node; + + @Before + public void startServer() throws Exception { + node = SCANodeFactory.newInstance().createSCANode("test-clients/airportcodes-client.composite", + new SCAContribution("using", "./target/classes")); + node.start(); + } + + @Test + public void testImpl() { + Runnable client = ((SCAClient)node).getService(Runnable.class, "AirportCodesClient"); + client.run(); + } + + @After + public void stopServer() throws Exception { + if (node != null) { + node.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/BindingsTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/BindingsTestCase.java new file mode 100644 index 0000000000..2daa59245e --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/BindingsTestCase.java @@ -0,0 +1,56 @@ +/* + * 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; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests services and references with configured bindings + */ +public class BindingsTestCase { + + private SCANode node; + + @Before + public void startServer() throws Exception { + node = SCANodeFactory.newInstance().createSCANode("test-clients/bookings4-client.composite", + new SCAContribution("using", "./target/classes")); + node.start(); + } + + @Test + public void testImpl() { + Runnable client = ((SCAClient)node).getService(Runnable.class, "Bookings4Client"); + client.run(); + } + + @After + public void stopServer() throws Exception { + if (node != null) { + node.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/CarAutowireTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/CarAutowireTestCase.java new file mode 100644 index 0000000000..bf20e7cae1 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/CarAutowireTestCase.java @@ -0,0 +1,56 @@ +/* + * 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; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests autowiring of references with different multiplicities + */ +public class CarAutowireTestCase { + + private SCANode node; + + @Before + public void startServer() throws Exception { + node = SCANodeFactory.newInstance().createSCANode("test-clients/carbookings3-client.composite", + new SCAContribution("using", "./target/classes")); + node.start(); + } + + @Test + public void testImpl() { + Runnable client = ((SCAClient)node).getService(Runnable.class, "CarBookings3Client"); + client.run(); + } + + @After + public void stopServer() throws Exception { + if (node != null) { + node.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/CarPartnerTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/CarPartnerTestCase.java new file mode 100644 index 0000000000..18e43e7a8b --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/CarPartnerTestCase.java @@ -0,0 +1,56 @@ +/* + * 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; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests wiring of references with different multiplicities + */ +public class CarPartnerTestCase { + + private SCANode node; + + @Before + public void startServer() throws Exception { + node = SCANodeFactory.newInstance().createSCANode("test-clients/carbookings1-client.composite", + new SCAContribution("using", "./target/classes")); + node.start(); + } + + @Test + public void testImpl() { + Runnable client = ((SCAClient)node).getService(Runnable.class, "CarBookings1Client"); + client.run(); + } + + @After + public void stopServer() throws Exception { + if (node != null) { + node.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/CarWireElementTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/CarWireElementTestCase.java new file mode 100644 index 0000000000..997460e0ea --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/CarWireElementTestCase.java @@ -0,0 +1,56 @@ +/* + * 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; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests wire elements for references with different multiplicities + */ +public class CarWireElementTestCase { + + private SCANode node; + + @Before + public void startServer() throws Exception { + node = SCANodeFactory.newInstance().createSCANode("test-clients/carbookings2-client.composite", + new SCAContribution("using", "./target/classes")); + node.start(); + } + + @Test + public void testImpl() { + Runnable client = ((SCAClient)node).getService(Runnable.class, "CarBookings2Client"); + client.run(); + } + + @After + public void stopServer() throws Exception { + if (node != null) { + node.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/ComplexPropertyElementTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/ComplexPropertyElementTestCase.java new file mode 100644 index 0000000000..177b4b2355 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/ComplexPropertyElementTestCase.java @@ -0,0 +1,56 @@ +/* + * 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; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests complex properties defined as XML Schema global elements + */ +public class ComplexPropertyElementTestCase { + + private SCANode node; + + @Before + public void startServer() throws Exception { + node = SCANodeFactory.newInstance().createSCANode("test-clients/orders1-client.composite", + new SCAContribution("using", "./target/classes")); + node.start(); + } + + @Test + public void testImpl() { + Runnable client = ((SCAClient)node).getService(Runnable.class, "Orders1Client"); + client.run(); + } + + @After + public void stopServer() throws Exception { + if (node != null) { + node.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/ComplexPropertyTypeTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/ComplexPropertyTypeTestCase.java new file mode 100644 index 0000000000..168d8f3273 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/ComplexPropertyTypeTestCase.java @@ -0,0 +1,56 @@ +/* + * 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; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests complex properties defined as XML Schema types + */ +public class ComplexPropertyTypeTestCase { + + private SCANode node; + + @Before + public void startServer() throws Exception { + node = SCANodeFactory.newInstance().createSCANode("test-clients/orders2-client.composite", + new SCAContribution("using", "./target/classes")); + node.start(); + } + + @Test + public void testImpl() { + Runnable client = ((SCAClient)node).getService(Runnable.class, "Orders2Client"); + client.run(); + } + + @After + public void stopServer() throws Exception { + if (node != null) { + node.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/CurrencyConverterTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/CurrencyConverterTestCase.java new file mode 100644 index 0000000000..dec2ae9976 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/CurrencyConverterTestCase.java @@ -0,0 +1,56 @@ +/* + * 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; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests the CurrencyConverterImpl component implementation class + */ +public class CurrencyConverterTestCase { + + private SCANode node; + + @Before + public void startServer() throws Exception { + node = SCANodeFactory.newInstance().createSCANode("test-clients/converter-client.composite", + new SCAContribution("using", "./target/classes")); + node.start(); + } + + @Test + public void testImpl() { + Runnable client = ((SCAClient)node).getService(Runnable.class, "ConverterClient"); + client.run(); + } + + @After + public void stopServer() throws Exception { + if (node != null) { + node.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/MultiDomainTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/MultiDomainTestCase.java new file mode 100644 index 0000000000..a7028f6d8c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/MultiDomainTestCase.java @@ -0,0 +1,65 @@ +/* + * 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; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests the multiple domains with bindings scenario + */ +public class MultiDomainTestCase { + + private SCANode hotelsNode; + private SCANode toursNode; + + @Before + public void startServer() throws Exception { + hotelsNode = SCANodeFactory.newInstance().createSCANode("test-clients/hotelsdomain-client.composite", + new SCAContribution("using", "./target/classes")); + hotelsNode.start(); + toursNode = SCANodeFactory.newInstance().createSCANode("test-clients/toursdomain-client.composite", + new SCAContribution("using", "./target/classes")); + toursNode.start(); + } + + @Test + public void testImpl() { + Runnable hotelsClient = ((SCAClient)hotelsNode).getService(Runnable.class, "HotelsDomainClient"); + hotelsClient.run(); + Runnable toursClient = ((SCAClient)toursNode).getService(Runnable.class, "ToursDomainClient"); + toursClient.run(); + } + + @After + public void stopServer() throws Exception { + if (toursNode != null) { + toursNode.stop(); + } + if (hotelsNode != null) { + hotelsNode.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/TripAutowireTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/TripAutowireTestCase.java new file mode 100644 index 0000000000..a6f1df98ef --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/TripAutowireTestCase.java @@ -0,0 +1,56 @@ +/* + * 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; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests the use of autowire in the Trip Booking implementation scenario + */ +public class TripAutowireTestCase { + + private SCANode node; + + @Before + public void startServer() throws Exception { + node = SCANodeFactory.newInstance().createSCANode("test-clients/bookings3-client.composite", + new SCAContribution("using", "./target/classes")); + node.start(); + } + + @Test + public void testImpl() { + Runnable client = ((SCAClient)node).getService(Runnable.class, "Bookings3Client"); + client.run(); + } + + @After + public void stopServer() throws Exception { + if (node != null) { + node.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/TripBookingTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/TripBookingTestCase.java new file mode 100644 index 0000000000..d08d176464 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/TripBookingTestCase.java @@ -0,0 +1,56 @@ +/* + * 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; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests the Trip Booking implementation scenario + */ +public class TripBookingTestCase { + + private SCANode node; + + @Before + public void startServer() throws Exception { + node = SCANodeFactory.newInstance().createSCANode("test-clients/bookings1-client.composite", + new SCAContribution("using", "./target/classes")); + node.start(); + } + + @Test + public void testImpl() { + Runnable client = ((SCAClient)node).getService(Runnable.class, "Bookings1Client"); + client.run(); + } + + @After + public void stopServer() throws Exception { + if (node != null) { + node.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/TripWireElementTestCase.java b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/TripWireElementTestCase.java new file mode 100644 index 0000000000..36811a98d8 --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/java/scatours/TripWireElementTestCase.java @@ -0,0 +1,56 @@ +/* + * 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; + +import org.apache.tuscany.sca.node.SCAClient; +import org.apache.tuscany.sca.node.SCAContribution; +import org.apache.tuscany.sca.node.SCANode; +import org.apache.tuscany.sca.node.SCANodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * Tests the use of wire elements in the Trip Booking implementation scenario + */ +public class TripWireElementTestCase { + + private SCANode node; + + @Before + public void startServer() throws Exception { + node = SCANodeFactory.newInstance().createSCANode("test-clients/bookings2-client.composite", + new SCAContribution("using", "./target/classes")); + node.start(); + } + + @Test + public void testImpl() { + Runnable client = ((SCAClient)node).getService(Runnable.class, "Bookings2Client"); + client.run(); + } + + @After + public void stopServer() throws Exception { + if (node != null) { + node.stop(); + } + } +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/resources/jndi.properties b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/resources/jndi.properties new file mode 100644 index 0000000000..80236a8e6c --- /dev/null +++ b/sca-java-1.x/tags/travelsample-1.0-RC3/contributions/usingsca/src/test/resources/jndi.properties @@ -0,0 +1,38 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- + +# START SNIPPET: jndi + +java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory + +# use the following property to configure the default connector +java.naming.provider.url = vm://localhost?broker.persistent=false + +# use the following property to specify the JNDI name the connection factory +# should appear as. +#connectionFactoryNames = connectionFactory, queueConnectionFactory, topicConnectionFactry +connectionFactoryNames = ConnectionFactory + +# register some queues in JNDI using the form +# queue.[jndiName] = [physicalName] +queue.Bookings = BookingsRequestQueue + +# register some topics in JNDI using the form +# topic.[jndiName] = [physicalName] +#topic.MyTopic = example.MyTopic + +# END SNIPPET: jndi -- cgit v1.2.3