From 4b7b8b26b7a8bc27d7a4bd5c241e1cf2e065fec1 Mon Sep 17 00:00:00 2001 From: rfeng Date: Sat, 28 Mar 2009 00:11:26 +0000 Subject: Add fault to WSDL git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@759407 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/java/payment/PaymentImpl.java | 23 +++++++++++---- .../payment/creditcard/CreditCardPaymentImpl.java | 13 ++++++--- .../src/main/resources/CreditCardPayment.wsdl | 34 +++++++++++++++------- 3 files changed, 50 insertions(+), 20 deletions(-) (limited to 'sandbox/travelsample/shared-contributions/payment-java-contribution/src/main') diff --git a/sandbox/travelsample/shared-contributions/payment-java-contribution/src/main/java/payment/PaymentImpl.java b/sandbox/travelsample/shared-contributions/payment-java-contribution/src/main/java/payment/PaymentImpl.java index d7bac59fcf..8c9777fdd4 100644 --- a/sandbox/travelsample/shared-contributions/payment-java-contribution/src/main/java/payment/PaymentImpl.java +++ b/sandbox/travelsample/shared-contributions/payment-java-contribution/src/main/java/payment/PaymentImpl.java @@ -6,24 +6,28 @@ * 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. + * under the License. */ package payment; +import javax.annotation.security.RolesAllowed; +import javax.annotation.security.RunAs; + import org.osoa.sca.annotations.Authentication; import org.osoa.sca.annotations.Property; import org.osoa.sca.annotations.Reference; import org.osoa.sca.annotations.Service; +import payment.creditcard.AuthorizeFault_Exception; import payment.creditcard.CreditCardDetailsType; import payment.creditcard.CreditCardPayment; import scatours.customer.Customer; @@ -35,6 +39,8 @@ import scatours.emailgateway.EmailGateway; * The payment implementation */ @Service(Payment.class) +@RolesAllowed({"Admin", "Billing"}) +@RunAs("Billing") public class PaymentImpl implements Payment { @Reference @@ -52,18 +58,23 @@ public class PaymentImpl implements Payment { public String makePaymentMember(String customerId, float amount) { Customer customer = null; - + try { customer = customerRegistry.getCustomer(customerId); } catch (CustomerNotFoundException ex) { return "Payment failed due to " + ex.getMessage(); - } catch (Throwable t) { + } catch (Throwable t) { return "Payment failed due to system error " + t.getMessage(); } CreditCardDetailsType ccDetails = customer.getCreditCard(); - String status = creditCardPayment.authorize(ccDetails, amount); + String status; + try { + status = creditCardPayment.authorize(ccDetails, amount); + } catch (AuthorizeFault_Exception e) { + status = e.getFaultInfo().getErrorCode(); + } StringBuffer body = new StringBuffer(); body.append(customer); diff --git a/sandbox/travelsample/shared-contributions/payment-java-contribution/src/main/java/payment/creditcard/CreditCardPaymentImpl.java b/sandbox/travelsample/shared-contributions/payment-java-contribution/src/main/java/payment/creditcard/CreditCardPaymentImpl.java index b70c4b0135..02918efb6c 100644 --- a/sandbox/travelsample/shared-contributions/payment-java-contribution/src/main/java/payment/creditcard/CreditCardPaymentImpl.java +++ b/sandbox/travelsample/shared-contributions/payment-java-contribution/src/main/java/payment/creditcard/CreditCardPaymentImpl.java @@ -6,15 +6,15 @@ * 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. + * under the License. */ package payment.creditcard; @@ -29,7 +29,7 @@ import org.osoa.sca.annotations.Service; @RolesAllowed("Admin") public class CreditCardPaymentImpl implements CreditCardPayment { - public String authorize(CreditCardDetailsType creditCard, float amount) { + public String authorize(CreditCardDetailsType creditCard, float amount) throws AuthorizeFault_Exception { if (creditCard != null) { System.out.println("Checking card: name = " + creditCard.getCardOwner().getName() + " number = " @@ -38,6 +38,11 @@ public class CreditCardPaymentImpl implements CreditCardPayment { + amount); } else { System.out.println("Checking card is null"); + ObjectFactory factory = new ObjectFactory(); + AuthorizeFault fault = factory.createAuthorizeFault(); + fault.setErrorCode("001 - Invalid card"); + AuthorizeFault_Exception ex = new AuthorizeFault_Exception("Invalid card", fault); + throw ex; } return "OK"; diff --git a/sandbox/travelsample/shared-contributions/payment-java-contribution/src/main/resources/CreditCardPayment.wsdl b/sandbox/travelsample/shared-contributions/payment-java-contribution/src/main/resources/CreditCardPayment.wsdl index dbf89924cc..7d30a6a395 100644 --- a/sandbox/travelsample/shared-contributions/payment-java-contribution/src/main/resources/CreditCardPayment.wsdl +++ b/sandbox/travelsample/shared-contributions/payment-java-contribution/src/main/resources/CreditCardPayment.wsdl @@ -7,29 +7,29 @@ * 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. + * under the License. --> - - - + @@ -78,6 +78,13 @@ + + + + + + + @@ -86,10 +93,14 @@ + + + + @@ -102,6 +113,9 @@ + + + @@ -109,8 +123,8 @@ - + - + \ No newline at end of file -- cgit v1.2.3