diff options
author | nash <nash@13f79535-47bb-0310-9956-ffa450edef68> | 2010-05-26 15:57:39 +0000 |
---|---|---|
committer | nash <nash@13f79535-47bb-0310-9956-ffa450edef68> | 2010-05-26 15:57:39 +0000 |
commit | e766494b2c34ae0f7ae0f9da01deb66ea0b13de6 (patch) | |
tree | 7ab864aa035e0b53af08db61e080f9ac37ba39d6 /sca-java-1.x/tags/travelsample-1.0-RC2/contributions/payment-java-callback/src/main/java/com | |
parent | 25370b71395929ab338eccb9af2d57d19e2a7c1e (diff) |
Tag for travelsample-1.0-RC2
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@948485 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-1.x/tags/travelsample-1.0-RC2/contributions/payment-java-callback/src/main/java/com')
27 files changed, 1971 insertions, 0 deletions
diff --git a/sca-java-1.x/tags/travelsample-1.0-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/Customer.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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<Customer> getAllCustomers(); + + boolean deleteCustomer(String id); +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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<String, Customer> customers = new HashMap<String, Customer>(); + + @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<Customer> 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-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/emailgateway/EmailGateway.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AddressType.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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> + * <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> + * </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/tags/travelsample-1.0-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/Authorize.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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> + * <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> + * </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/tags/travelsample-1.0-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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> + * <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> + * </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/tags/travelsample-1.0-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeFault_Exception.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/AuthorizeResponse.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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> + * <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> + * </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/tags/travelsample-1.0-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CardCompany.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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/tags/travelsample-1.0-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardConfirm.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardDetailsType.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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> + * <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> + * </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/tags/travelsample-1.0-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPayment.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardPaymentConfirm.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardSecurity.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/CreditCardTypeType.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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> + * <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> + * </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/tags/travelsample-1.0-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/PayerType.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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> + * <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> + * </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/tags/travelsample-1.0-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CardCompanyImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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/tags/travelsample-1.0-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentCallbackImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/creditcard/impl/CreditCardPaymentConfirmImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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"; + } + + +} diff --git a/sca-java-1.x/tags/travelsample-1.0-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/CreditCardSecurityImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentCallbackIDImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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<CreditCardPayment> 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-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentCallbackImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentCallbackRedirectImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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<CreditCardPayment> cpRef; + + @Reference(name="creditCardSecurity") + protected ServiceReference<CreditCardSecurity> 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-RC2/contributions/payment-java-callback/src/main/java/com/tuscanyscatours/payment/impl/PaymentConfirmImpl.java b/sca-java-1.x/tags/travelsample-1.0-RC2/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-RC2/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); + } + +} |