summaryrefslogtreecommitdiffstats
path: root/sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard
diff options
context:
space:
mode:
authorslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2010-03-21 17:05:00 +0000
committerslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2010-03-21 17:05:00 +0000
commit90a0e4f18c536fc918dc0a863371209c69e86d1b (patch)
treea7e720a1c3242a8bc8b24759791a99e4e9bafa51 /sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard
parent238ecf66b372844363a8dfc78ea08f3799775214 (diff)
Add some callback samples based on the payment and credit card payment components
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@925828 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rw-r--r--sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AddressType.java191
-rw-r--r--sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/Authorize.java101
-rw-r--r--sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault.java81
-rw-r--r--sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault_Exception.java71
-rw-r--r--sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeResponse.java81
-rw-r--r--sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CardCompany.java31
-rw-r--r--sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardConfirm.java27
-rw-r--r--sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardDetailsType.java219
-rw-r--r--sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPayment.java31
-rw-r--r--sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPaymentConfirm.java31
-rw-r--r--sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardSecurity.java27
-rw-r--r--sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardTypeType.java74
-rw-r--r--sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/PayerType.java107
-rw-r--r--sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CardCompanyImpl.java60
-rw-r--r--sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentCallbackImpl.java78
-rw-r--r--sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentConfirmImpl.java48
16 files changed, 1258 insertions, 0 deletions
diff --git a/sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AddressType.java b/sca-java-1.x/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/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;
+
+
+/**
+ * <p>Java class for AddressType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="AddressType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Street" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="City" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="State" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="ZipCode" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="HomePhone" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@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/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/Authorize.java b/sca-java-1.x/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/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;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="CreditCard" type="{http://www.tuscanyscatours.com/CreditCardPayment/}CreditCardDetailsType"/>
+ * &lt;element name="Amount" type="{http://www.w3.org/2001/XMLSchema}float"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@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/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault.java b/sca-java-1.x/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/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;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="errorCode" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@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/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault_Exception.java b/sca-java-1.x/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeResponse.java b/sca-java-1.x/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/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;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Status" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@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/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CardCompany.java b/sca-java-1.x/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/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<CreditCardConfirm> callbackRef);
+}
diff --git a/sca-java-1.x/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardConfirm.java b/sca-java-1.x/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardDetailsType.java b/sca-java-1.x/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/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;
+
+
+/**
+ * <p>Java class for CreditCardDetailsType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="CreditCardDetailsType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="CreditCardType" type="{http://www.tuscanyscatours.com/CreditCardPayment/}CreditCardTypeType" minOccurs="0"/>
+ * &lt;element name="CreditCardNumber" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;element name="ExpMonth" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ * &lt;element name="ExpYear" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ * &lt;element name="CardOwner" type="{http://www.tuscanyscatours.com/CreditCardPayment/}PayerType" minOccurs="0"/>
+ * &lt;element name="CVV2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@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/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPayment.java b/sca-java-1.x/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPaymentConfirm.java b/sca-java-1.x/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardSecurity.java b/sca-java-1.x/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardTypeType.java b/sca-java-1.x/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/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;
+
+
+/**
+ * <p>Java class for CreditCardTypeType.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="CreditCardTypeType">
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}token">
+ * &lt;enumeration value="Visa"/>
+ * &lt;enumeration value="MasterCard"/>
+ * &lt;enumeration value="Discover"/>
+ * &lt;enumeration value="Amex"/>
+ * &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ *
+ */
+@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/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/PayerType.java b/sca-java-1.x/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/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;
+
+
+/**
+ * <p>Java class for PayerType complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="PayerType">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Name" type="{http://www.w3.org/2001/XMLSchema}string"/>
+ * &lt;element name="Address" type="{http://www.tuscanyscatours.com/CreditCardPayment/}AddressType"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@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/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CardCompanyImpl.java b/sca-java-1.x/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/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<CreditCardConfirm> callbackRef){
+ // payment processing happens asynchronously
+ Thread app = new Thread(new AsycnhPaymentProcessing(callbackRef));
+ app.start();
+ return "OK";
+ }
+
+ class AsycnhPaymentProcessing implements Runnable {
+ CallableReference<CreditCardConfirm> callbackRef;
+
+ AsycnhPaymentProcessing(CallableReference<CreditCardConfirm> 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/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentCallbackImpl.java b/sca-java-1.x/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentConfirmImpl.java b/sca-java-1.x/trunk/tutorials/travelsample/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/trunk/tutorials/travelsample/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<CreditCardConfirm> callbackRef;
+
+ @Reference
+ protected CardCompany cardCompany;
+
+ public String authorize(CreditCardDetailsType card,
+ float amount) {
+ cardCompany.makePayment(card, amount, callbackRef);
+ return "InProgress";
+ }
+
+
+}