summaryrefslogtreecommitdiffstats
path: root/sandbox/travelsample/shared-contributions/payment-java-contribution/src/main
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-03-28 00:11:26 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-03-28 00:11:26 +0000
commit4b7b8b26b7a8bc27d7a4bd5c241e1cf2e065fec1 (patch)
treef905fac9c7c2b4f6e0182a4117be7e4ccab8945c /sandbox/travelsample/shared-contributions/payment-java-contribution/src/main
parentf9e2d3ce0448c8dbb85566c956cbdda79392884f (diff)
Add fault to WSDL
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@759407 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sandbox/travelsample/shared-contributions/payment-java-contribution/src/main')
-rw-r--r--sandbox/travelsample/shared-contributions/payment-java-contribution/src/main/java/payment/PaymentImpl.java23
-rw-r--r--sandbox/travelsample/shared-contributions/payment-java-contribution/src/main/java/payment/creditcard/CreditCardPaymentImpl.java13
-rw-r--r--sandbox/travelsample/shared-contributions/payment-java-contribution/src/main/resources/CreditCardPayment.wsdl34
3 files changed, 50 insertions, 20 deletions
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.
-->
-<wsdl:definitions name="CreditCardPayment"
+<wsdl:definitions name="CreditCardPayment"
targetNamespace="http://www.tuscanyscatours.com/CreditCardPayment/"
- xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
- xmlns:tns="http://www.tuscanyscatours.com/CreditCardPayment/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://www.tuscanyscatours.com/CreditCardPayment/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/"
xmlns:plnk="http://schemas.xmlsoap.org/ws/2004/03/partner-link/">
<wsdl:types>
- <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.tuscanyscatours.com/CreditCardPayment/"
xmlns:tns="http://www.tuscanyscatours.com/CreditCardPayment/">
-
+
<xsd:element name="authorize" type="tns:AuthorizeType"/>
<xsd:complexType name="AuthorizeType">
<xsd:sequence>
@@ -78,6 +78,13 @@
<xsd:element name="HomePhone" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
+ <xsd:element name="authorizeFault">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="errorCode" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="AuthorizeRequest">
@@ -86,10 +93,14 @@
<wsdl:message name="AuthorizeResponse">
<wsdl:part name="parameters" element="tns:authorizeResponse"></wsdl:part>
</wsdl:message>
+ <wsdl:message name="AuthorizeFault">
+ <wsdl:part name="parameters" element="tns:authorizeFault"></wsdl:part>
+ </wsdl:message>
<wsdl:portType name="CreditCardPayment">
<wsdl:operation name="authorize">
<wsdl:input message="tns:AuthorizeRequest"></wsdl:input>
<wsdl:output message="tns:AuthorizeResponse"></wsdl:output>
+ <wsdl:fault name="authorizationFailure" message="tns:AuthorizeFault"></wsdl:fault>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CreditCardPaymentBinding" type="tns:CreditCardPayment">
@@ -102,6 +113,9 @@
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
+ <wsdl:fault name="authorizationFailure">
+ <soap:fault name="authorizationFailure" use="literal"/>
+ </wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="CreditCardPaymentService">
@@ -109,8 +123,8 @@
<soap:address location="http://localhost:8080/CreditCardPayment" />
</wsdl:port>
</wsdl:service>
-
+
<plnk:partnerLinkType name="CreditCardPaymentLinkType">
<plnk:role name="forward" portType="tns:CreditCardPayment"/>
- </plnk:partnerLinkType>
+ </plnk:partnerLinkType>
</wsdl:definitions> \ No newline at end of file