You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sl...@apache.org on 2009/10/11 18:28:06 UTC

svn commit: r824102 - in /tuscany/sandbox/travelsample/contributions: ./ payment-spring-policy/ payment-spring-policy/src/ payment-spring-policy/src/main/ payment-spring-policy/src/main/java/ payment-spring-policy/src/main/java/com/ payment-spring-poli...

Author: slaws
Date: Sun Oct 11 16:28:05 2009
New Revision: 824102

URL: http://svn.apache.org/viewvc?rev=824102&view=rev
Log:
Add a version of the spring payment component configured with authentication policy

Added:
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/pom.xml   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/Customer.java   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/impl/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/emailgateway/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/emailgateway/impl/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/payment/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/payment/impl/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/CreditCardPayment.wsdl   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/EmailGateway.wsdl   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/META-INF/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/META-INF/sca-contribution.xml   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/Payment-context.xml   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/Payment.wsdl   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/definitions.xml   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/payment.composite   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/PaymentTestCase.java   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/client/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/client/impl/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/META-INF/
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/META-INF/sca-contribution.xml   (with props)
    tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/payment-client.composite   (with props)
Modified:
    tuscany/sandbox/travelsample/contributions/pom.xml

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/pom.xml?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/pom.xml (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/pom.xml Sun Oct 11 16:28:05 2009
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * Licensed to the Apache Software Foundation (ASF) under one
+    * or more contributor license agreements.  See the NOTICE file
+    * distributed with this work for additional information
+    * regarding copyright ownership.  The ASF licenses this file
+    * to you under the Apache License, Version 2.0 (the
+    * "License"); you may not use this file except in compliance
+    * with the License.  You may obtain a copy of the License at
+    *
+    *   http://www.apache.org/licenses/LICENSE-2.0
+    *
+    * Unless required by applicable law or agreed to in writing,
+    * software distributed under the License is distributed on an
+    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    * KIND, either express or implied.  See the License for the
+    * specific language governing permissions and limitations
+    * under the License.
+-->
+<project>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.tuscany.sca</groupId>
+        <artifactId>tuscany-sca</artifactId>
+        <version>1.6-SNAPSHOT</version>
+        <!--relativePath>../../pom.xml</relativePath-->
+    </parent>
+    <version>1.0-SNAPSHOT</version>
+    <artifactId>scatours-contribution-payment-spring-policy</artifactId>
+    <name>Apache Tuscany SCA Tours Payment Spring Policy Contribution</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-host-embedded</artifactId>
+            <version>1.6-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-implementation-java-runtime</artifactId>
+            <version>1.6-SNAPSHOT</version>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-binding-jsonrpc-runtime</artifactId>
+            <version>1.6-SNAPSHOT</version>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-binding-ws-axis2</artifactId>
+            <version>1.6-SNAPSHOT</version>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-host-jetty</artifactId>
+            <version>1.6-SNAPSHOT</version>
+            <scope>runtime</scope>
+        </dependency>
+
+        <!--
+            https://issues.apache.org/jira/browse/TUSCANY-3069
+        -->
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-implementation-spring</artifactId>
+            <version>1.6-SNAPSHOT</version>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-implementation-spring-runtime</artifactId>
+            <version>1.6-SNAPSHOT</version>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.5</version>
+            <scope>test</scope>
+        </dependency>
+
+    </dependencies>
+
+    <pluginRepositories>
+        <pluginRepository>
+            <id>java.net2</id>
+            <name>java.net Maven 2.x Repository</name>
+            <url>http://download.java.net/maven/2</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+        </pluginRepository>
+    </pluginRepositories>
+
+    <build>
+        <finalName>${artifactId}</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+                <version>1.0</version>
+                <executions>
+                    <execution>
+                        <id>add-source</id>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>add-source</goal>
+                        </goals>
+                        <configuration>
+                            <sources>
+                                <source>target/jaxws-source</source>
+                            </sources>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>jaxws-maven-plugin</artifactId>
+                <version>1.12</version>
+                <executions>
+                    <execution>
+                        <id>payment</id>
+                        <phase>generate-sources</phase>
+                        <goals>
+                            <goal>wsimport</goal>
+                        </goals>
+                        <configuration>
+                            <packageName>com.tuscanyscatours.payment</packageName>
+                            <wsdlDirectory>${basedir}/src/main/resources</wsdlDirectory>
+                            <wsdlFiles>
+                                <wsdlFile>Payment.wsdl</wsdlFile>
+                            </wsdlFiles>
+                            <sourceDestDir>${project.build.directory}/jaxws-source</sourceDestDir>
+                            <staleFile>${project.build.directory}/jaxws-source/stale/payment.stale</staleFile>
+                            <verbose>false</verbose>
+                            <xnocompile>true</xnocompile>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>payment.creditcard</id>
+                        <phase>process-sources</phase>
+                        <goals>
+                            <goal>wsimport</goal>
+                        </goals>
+                        <configuration>
+                            <packageName>com.tuscanyscatours.payment.creditcard</packageName>
+                            <wsdlDirectory>${basedir}/src/main/resources</wsdlDirectory>
+                            <wsdlFiles>
+                                <wsdlFile>CreditCardPayment.wsdl</wsdlFile>
+                            </wsdlFiles>
+                            <sourceDestDir>${project.build.directory}/jaxws-source</sourceDestDir>
+                            <staleFile>${project.build.directory}/jaxws-source/stale/creditcard.stale</staleFile>
+                            <verbose>false</verbose>
+                            <xnocompile>true</xnocompile>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>scatours.emailgateway</id>
+                        <phase>process-sources</phase>
+                        <goals>
+                            <goal>wsimport</goal>
+                        </goals>
+                        <configuration>
+                            <packageName>com.tuscanyscatours.emailgateway</packageName>
+                            <wsdlDirectory>${basedir}/src/main/resources</wsdlDirectory>
+                            <wsdlFiles>
+                                <wsdlFile>EmailGateway.wsdl</wsdlFile>
+                            </wsdlFiles>
+                            <sourceDestDir>${project.build.directory}/jaxws-source</sourceDestDir>
+                            <staleFile>${project.build.directory}/jaxws-source/stale/emailgateway.stale</staleFile>
+                            <verbose>false</verbose>
+                            <xnocompile>true</xnocompile>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/Customer.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/Customer.java?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/Customer.java (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/Customer.java Sun Oct 11 16:28:05 2009
@@ -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;
+    }
+
+}

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/Customer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/Customer.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java Sun Oct 11 16:28:05 2009
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package com.tuscanyscatours.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);
+
+    }
+
+}

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerNotFoundException.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java Sun Oct 11 16:28:05 2009
@@ -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);
+}

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/CustomerRegistry.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java Sun Oct 11 16:28:05 2009
@@ -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.ObjectFactory;
+import com.tuscanyscatours.payment.creditcard.PayerType;
+
+/**
+ * An in-memory customer registry implementation
+ */
+@Service(CustomerRegistry.class)
+@Scope("COMPOSITE")
+@EagerInit
+public class CustomerRegistryImpl implements CustomerRegistry {
+    private volatile static int idGenerator = 0;
+    private Map<String, Customer> customers = new HashMap<String, Customer>();
+
+    @Init
+    public void init() {
+        // Load the customers
+        ObjectFactory factory = new ObjectFactory();
+        CreditCardDetailsType cc = factory.createCreditCardDetailsType();
+        PayerType john = factory.createPayerType();
+        john.setName("John Smith");
+        cc.setCardOwner(john);
+        cc.setCreditCardNumber("1111-2222-3333-4444");
+        cc.setCreditCardType(CreditCardTypeType.VISA);
+        cc.setCVV2("1234");
+        cc.setExpMonth(1);
+        cc.setExpYear(2012);
+        createCustomer("John Smith", "john@xyz.com", cc);
+    }
+    
+    @Destroy
+    public void destroy() {
+        // Save the customers
+    }
+    
+    public Customer createCustomer(String name, String email, CreditCardDetailsType creditCard) {
+        Customer customer = new Customer();
+        customer.setId("c-" + idGenerator++);
+        customer.setName(name);
+        customer.setEmail(email);
+        customer.setCreditCard(creditCard);
+        customers.put(customer.getId(), customer);
+        return customer;
+    }
+
+    public boolean deleteCustomer(String id) {
+        return customers.remove(id) != null;
+    }
+
+    public Collection<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;
+    }
+
+}

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/customer/impl/CustomerRegistryImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java Sun Oct 11 16:28:05 2009
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package com.tuscanyscatours.emailgateway.impl;
+
+import com.tuscanyscatours.emailgateway.EmailGateway;
+import com.tuscanyscatours.emailgateway.EmailType;
+
+public class EmailGatewayImpl implements EmailGateway {
+
+    public String sendEmail(EmailType email) {
+        System.out.println("Sending mail to " + email.getTo());
+        return "SENT";
+    }
+
+}

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/emailgateway/impl/EmailGatewayImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java Sun Oct 11 16:28:05 2009
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package com.tuscanyscatours.payment.impl;
+
+import com.tuscanyscatours.customer.Customer;
+import com.tuscanyscatours.customer.CustomerNotFoundException;
+import com.tuscanyscatours.customer.CustomerRegistry;
+import com.tuscanyscatours.emailgateway.EmailGateway;
+import com.tuscanyscatours.emailgateway.EmailType;
+import com.tuscanyscatours.payment.Payment;
+import com.tuscanyscatours.payment.creditcard.CreditCardPayment;
+
+public class PaymentImpl implements Payment {
+
+    private CreditCardPayment creditCardPayment;
+    private CustomerRegistry customerRegistry;
+    private EmailGateway emailGateway;
+    private float transactionFee;
+    
+    public void setCreditCardPayment(CreditCardPayment creditCardPayment) {
+        this.creditCardPayment = creditCardPayment;
+    }
+    
+    public void setCustomerRegistry(CustomerRegistry customerRegistry) {
+        this.customerRegistry = customerRegistry;
+    }    
+    
+    public void setEmailGateway(EmailGateway emailGateway) {
+        this.emailGateway = emailGateway;
+    }
+    
+    public void setTransactionFee(Float transactionFee) {
+        this.transactionFee = transactionFee;
+    }
+    
+    public String makePaymentMember(String customerId, float amount) {
+        try {
+            Customer customer = customerRegistry.getCustomer(customerId);
+            
+            amount += transactionFee;
+            
+            String status = creditCardPayment.authorize(customer.getCreditCard(), amount);
+            
+            com.tuscanyscatours.emailgateway.ObjectFactory emailFactory
+                = new com.tuscanyscatours.emailgateway.ObjectFactory();
+            EmailType email = emailFactory.createEmailType();
+            email.setTitle("Payment Received");
+            email.setTo(customerId);
+            
+            emailGateway.sendEmail(email);
+            
+            return status;
+        } catch (CustomerNotFoundException ex) {
+            return "Payment failed due to " + ex.getMessage();
+        } catch (Throwable t) {
+            return "Payment failed due to system error " + t.getMessage();
+        }         
+    }
+
+}

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/java/com/tuscanyscatours/payment/impl/PaymentImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/CreditCardPayment.wsdl
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/CreditCardPayment.wsdl?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/CreditCardPayment.wsdl (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/CreditCardPayment.wsdl Sun Oct 11 16:28:05 2009
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+-->
+<wsdl:definitions name="CreditCardPayment" 
+                  targetNamespace="http://www.tuscanyscatours.com/CreditCardPayment/"
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+                  xmlns:tns="http://www.tuscanyscatours.com/CreditCardPayment/" 
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+                  xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/"
+                  xmlns:plnk="http://schemas.xmlsoap.org/ws/2004/03/partner-link/">
+    <wsdl:types>
+        <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+                    targetNamespace="http://www.tuscanyscatours.com/CreditCardPayment/"
+                    xmlns:tns="http://www.tuscanyscatours.com/CreditCardPayment/">
+                       
+            <xsd:element name="authorize">
+	            <xsd:complexType>
+	                <xsd:sequence>
+	                    <xsd:element name="CreditCard" type="tns:CreditCardDetailsType"></xsd:element>
+	                    <xsd:element name="Amount" type="xsd:float"></xsd:element>
+	                </xsd:sequence>
+	            </xsd:complexType>   
+            </xsd:element>         
+            
+            <xsd:element name="authorizeResponse">
+	            <xsd:complexType>
+	                <xsd:sequence>
+	                    <xsd:element name="Status" type="xsd:string"></xsd:element>
+	                </xsd:sequence>
+	            </xsd:complexType>
+            </xsd:element>
+
+            <xsd:complexType name="CreditCardDetailsType">
+                <xsd:sequence>
+                    <xsd:element name="CreditCardType" type="tns:CreditCardTypeType" minOccurs="0" />
+                    <xsd:element name="CreditCardNumber" type="xsd:string" minOccurs="0" />
+                    <xsd:element name="ExpMonth" type="xsd:int" minOccurs="0" />
+                    <xsd:element name="ExpYear" type="xsd:int" minOccurs="0" />
+                    <xsd:element name="CardOwner" type="tns:PayerType" minOccurs="0" />
+                    <xsd:element name="CVV2" type="xsd:string" minOccurs="0" />
+                </xsd:sequence>
+            </xsd:complexType>
+            <xsd:simpleType name="CreditCardTypeType">
+                <xsd:restriction base="xsd:token">
+                    <xsd:enumeration value="Visa" />
+                    <xsd:enumeration value="MasterCard" />
+                    <xsd:enumeration value="Discover" />
+                    <xsd:enumeration value="Amex" />
+                </xsd:restriction>
+            </xsd:simpleType>
+            <xsd:complexType name="PayerType">
+                <xsd:sequence>
+                    <xsd:element name="Name" type="xsd:string" />
+                    <xsd:element name="Address" type="tns:AddressType" />
+                </xsd:sequence>
+            </xsd:complexType>
+            <xsd:complexType name="AddressType">
+                <xsd:sequence>
+                    <xsd:element name="Street" type="xsd:string" />
+                    <xsd:element name="City" type="xsd:string" />
+                    <xsd:element name="State" type="xsd:string" />
+                    <xsd:element name="ZipCode" type="xsd:string" />
+                    <xsd:element name="HomePhone" type="xsd:string" />
+                </xsd:sequence>
+            </xsd:complexType>
+        </xsd:schema>
+    </wsdl:types>
+    <wsdl:message name="AuthorizeRequest">
+        <wsdl:part name="parameters" element="tns:authorize"></wsdl:part>
+    </wsdl:message>
+    <wsdl:message name="AuthorizeResponse">
+        <wsdl:part name="parameters" element="tns:authorizeResponse"></wsdl:part>
+    </wsdl:message>
+    <wsdl:portType name="CreditCardPayment">
+        <wsdl:operation name="authorize">
+            <wsdl:input message="tns:AuthorizeRequest"></wsdl:input>
+            <wsdl:output message="tns:AuthorizeResponse"></wsdl:output>
+        </wsdl:operation>
+    </wsdl:portType>
+    <wsdl:binding name="CreditCardPaymentBinding" type="tns:CreditCardPayment">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+        <wsdl:operation name="authorize">
+            <soap:operation soapAction="http://www.tuscanyscatours.com/CreditCardPayment/authorize" />
+            <wsdl:input>
+                <soap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+    <wsdl:service name="CreditCardPaymentService">
+        <wsdl:port name="CreditCardPaymentPort" binding="tns:CreditCardPaymentBinding">
+            <soap:address location="http://localhost:8080/CreditCardPayment" />
+        </wsdl:port>
+    </wsdl:service>
+    
+    <plnk:partnerLinkType name="CreditCardPaymentLinkType">
+        <plnk:role name="forward" portType="tns:CreditCardPayment"/>
+    </plnk:partnerLinkType>    
+</wsdl:definitions>
\ No newline at end of file

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/CreditCardPayment.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/CreditCardPayment.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/CreditCardPayment.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/EmailGateway.wsdl
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/EmailGateway.wsdl?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/EmailGateway.wsdl (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/EmailGateway.wsdl Sun Oct 11 16:28:05 2009
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+-->
+<wsdl:definitions name="EmailGateway" 
+                  targetNamespace="http://www.tuscanyscatours.com/EmailGateway/"
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+                  xmlns:tns="http://www.tuscanyscatours.com/EmailGateway/" 
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+                  xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/"
+                  xmlns:plnk="http://schemas.xmlsoap.org/ws/2004/03/partner-link/">
+    <wsdl:types>
+        <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+                    targetNamespace="http://www.tuscanyscatours.com/EmailGateway/"
+                    xmlns:tns="http://www.tuscanyscatours.com/EmailGateway/">
+                    
+            <xsd:element name="sendEmail" type="tns:SendEmailType"/>
+            <xsd:complexType name="SendEmailType">
+                <xsd:sequence>
+                    <xsd:element name="Email" type="tns:EmailType"></xsd:element>
+                </xsd:sequence>
+            </xsd:complexType>
+
+            <xsd:element name="sendEmailResponse" type="tns:SendEmailResponseType"/>
+            <xsd:complexType name="SendEmailResponseType">
+                <xsd:sequence>
+                    <xsd:element name="Status" type="xsd:string"></xsd:element>
+                </xsd:sequence>
+            </xsd:complexType>
+
+            <xsd:complexType name="EmailType">
+                <xsd:sequence>
+                    <xsd:element name="To" type="xsd:string"/>
+                    <xsd:element name="Title" type="xsd:string"/>
+                    <xsd:element name="Body" type="xsd:string"/>
+                </xsd:sequence>
+            </xsd:complexType>
+        </xsd:schema>
+    </wsdl:types>
+    <wsdl:message name="SendEmailRequest">
+        <wsdl:part name="parameters" element="tns:sendEmail"></wsdl:part>
+    </wsdl:message>
+    <wsdl:message name="SendEmailResponse">
+        <wsdl:part name="parameters" element="tns:sendEmailResponse"></wsdl:part>
+    </wsdl:message>
+    <wsdl:portType name="EmailGateway">
+        <wsdl:operation name="sendEmail">
+            <wsdl:input message="tns:SendEmailRequest"></wsdl:input>
+            <wsdl:output message="tns:SendEmailResponse"></wsdl:output>
+        </wsdl:operation>
+    </wsdl:portType>
+    <wsdl:binding name="EmailGatwayBinding" type="tns:EmailGateway">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+        <wsdl:operation name="sendEmail">
+            <soap:operation soapAction="http://www.tuscanyscatours.com/EmailGateway/sendEmail" />
+            <wsdl:input>
+                <soap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+    <wsdl:service name="EmailGatewayService">
+        <wsdl:port name="EmailGatewayPort" binding="tns:EmailGatwayBinding">
+            <soap:address location="http://localhost:8088/EmailGateway" />
+        </wsdl:port>
+    </wsdl:service>
+    
+    <plnk:partnerLinkType name="EmailGatewayLinkType">
+        <plnk:role name="forward" portType="tns:EmailGateway"/>
+    </plnk:partnerLinkType>
+</wsdl:definitions>

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/EmailGateway.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/EmailGateway.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/EmailGateway.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/META-INF/sca-contribution.xml
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/META-INF/sca-contribution.xml?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/META-INF/sca-contribution.xml (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/META-INF/sca-contribution.xml Sun Oct 11 16:28:05 2009
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * Licensed to the Apache Software Foundation (ASF) under one
+    * or more contributor license agreements.  See the NOTICE file
+    * distributed with this work for additional information
+    * regarding copyright ownership.  The ASF licenses this file
+    * to you under the Apache License, Version 2.0 (the
+    * "License"); you may not use this file except in compliance
+    * with the License.  You may obtain a copy of the License at
+    * 
+    *   http://www.apache.org/licenses/LICENSE-2.0
+    * 
+    * Unless required by applicable law or agreed to in writing,
+    * software distributed under the License is distributed on an
+    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    * KIND, either express or implied.  See the License for the
+    * specific language governing permissions and limitations
+    * under the License.    
+-->
+<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
+              xmlns:scatours="http://tuscanyscatours.com/">
+    <export.java package="com.tuscanyscatours.payment"/>
+    <deployable composite="scatours:payment" />
+</contribution>

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/Payment-context.xml
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/Payment-context.xml?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/Payment-context.xml (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/Payment-context.xml Sun Oct 11 16:28:05 2009
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:sca="http://www.springframework.org/schema/sca"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans 
+                           http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+    <bean id="Payment" class="com.tuscanyscatours.payment.impl.PaymentImpl">
+        <property name="creditCardPayment" ref="creditCardPaymentReference"/>
+        <property name="emailGateway" ref="emailGateway"/>
+        <property name="customerRegistry" ref="customerRegistry"/>
+        <property name="transactionFee" value="0.5f"/>
+    </bean>
+  
+</beans>

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/Payment-context.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/Payment-context.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/Payment-context.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/Payment.wsdl
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/Payment.wsdl?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/Payment.wsdl (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/Payment.wsdl Sun Oct 11 16:28:05 2009
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+-->
+<wsdl:definitions name="Payment" 
+                  targetNamespace="http://www.tuscanyscatours.com/Payment/"
+                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+                  xmlns:tns="http://www.tuscanyscatours.com/Payment/" 
+                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+                  xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/"
+                  xmlns:plnk="http://schemas.xmlsoap.org/ws/2004/03/partner-link/">
+    <wsdl:types>
+        <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+                    targetNamespace="http://www.tuscanyscatours.com/Payment/"
+                    xmlns:tns="http://www.tuscanyscatours.com/Payment/">
+
+            <xsd:complexType name="MakePaymentMemberType">
+                <xsd:sequence>
+                    <xsd:element name="CustomerId" type="xsd:string"></xsd:element>
+                    <xsd:element name="Amount" type="xsd:float"></xsd:element>
+                </xsd:sequence>
+            </xsd:complexType>                    
+            <xsd:element name="makePaymentMember" type="tns:MakePaymentMemberType"/>
+      
+            <xsd:complexType name="MakePaymentMemberResponseType">
+                <xsd:sequence>
+                    <xsd:element name="Status" type="xsd:string"></xsd:element>
+                </xsd:sequence>
+            </xsd:complexType>
+            <xsd:element name="makePaymentMemberResponse" type="tns:MakePaymentMemberResponseType"/>
+            
+        </xsd:schema>
+    </wsdl:types>
+    <wsdl:message name="MakePaymentMemberRequest">
+        <wsdl:part name="parameters" element="tns:makePaymentMember"></wsdl:part>
+    </wsdl:message>
+    <wsdl:message name="MakePaymentMemberResponse">
+        <wsdl:part name="parameters" element="tns:makePaymentMemberResponse"></wsdl:part>
+    </wsdl:message>
+    <wsdl:portType name="Payment">
+        <wsdl:operation name="makePaymentMember">
+            <wsdl:input message="tns:MakePaymentMemberRequest"></wsdl:input>
+            <wsdl:output message="tns:MakePaymentMemberResponse"></wsdl:output>
+        </wsdl:operation>
+    </wsdl:portType>
+    <wsdl:binding name="PaymentBinding" type="tns:Payment">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+        <wsdl:operation name="makePaymentMember">
+            <soap:operation soapAction="http://www.tuscanyscatours.com/Payment/makePayment" />
+            <wsdl:input>
+                <soap:body use="literal" />
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal" />
+            </wsdl:output>
+        </wsdl:operation>
+    </wsdl:binding>
+    <wsdl:service name="PaymentService">
+        <wsdl:port name="PaymentPort" binding="tns:PaymentBinding">
+            <soap:address location="http://localhost:8080/Payment" />
+        </wsdl:port>
+    </wsdl:service>
+    
+   <plnk:partnerLinkType name="PaymentLinkType">
+       <plnk:role name="forward" portType="tns:Payment"/>
+   </plnk:partnerLinkType>
+</wsdl:definitions>
\ No newline at end of file

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/Payment.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/Payment.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/Payment.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/definitions.xml
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/definitions.xml?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/definitions.xml (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/definitions.xml Sun Oct 11 16:28:05 2009
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+-->
+<definitions xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ 			targetNamespace="http://www.osoa.org/xmlns/sca/1.0"
+ 			xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
+ 			xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0">
+    
+    <!-- Policy Sets -->   
+    <policySet name="BasicAuthenticationPolicySet"
+                   provides="authentication"
+                   appliesTo="sca:binding.ws">
+        <tuscany:basicAuthentication>
+          <tuscany:userName>myname</tuscany:userName>
+          <tuscany:password>mypassword</tuscany:password>
+        </tuscany:basicAuthentication>
+    </policySet>
+	
+</definitions>

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/definitions.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/definitions.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/definitions.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/payment.composite
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/payment.composite?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/payment.composite (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/payment.composite Sun Oct 11 16:28:05 2009
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+           targetNamespace="http://tuscanyscatours.com/"
+           name="payment">
+
+     <component name="Payment">
+        <implementation.spring location="Payment-context.xml"/>
+        <service name="Payment">
+            <binding.ws uri="http://localhost:8081/Payment"/>
+        </service>
+        <reference name="creditCardPaymentReference" requires="authentication">
+            <binding.ws uri="http://localhost:8083/CreditCardPayment"/>
+        </reference>
+        <reference name="emailGateway" target="EmailGateway"/>
+         <reference name="customerRegistry" target="CustomerRegistry"/>
+        <property name="transactionFee">1.23</property>
+    </component>
+        
+    <component name="CustomerRegistry">
+        <implementation.java class="com.tuscanyscatours.customer.impl.CustomerRegistryImpl" />
+    </component>
+            
+    <component name="EmailGateway">
+        <implementation.java class="com.tuscanyscatours.emailgateway.impl.EmailGatewayImpl" />
+    </component>    
+
+</composite>

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/payment.composite
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/payment.composite
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/main/resources/payment.composite
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/PaymentTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/PaymentTestCase.java?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/PaymentTestCase.java (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/PaymentTestCase.java Sun Oct 11 16:28:05 2009
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package scatours.payment;
+
+import com.tuscanyscatours.payment.Payment;
+import org.apache.tuscany.sca.node.SCAClient;
+import org.apache.tuscany.sca.node.SCAContribution;
+import org.apache.tuscany.sca.node.SCANode;
+import org.apache.tuscany.sca.node.SCANodeFactory;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * 
+ */
+public class PaymentTestCase {
+    private static SCANode paymentNode;
+    private static SCANode creditCardNode;
+
+    @BeforeClass
+    public static void setUpBeforeClass() throws Exception {  
+        creditCardNode = SCANodeFactory.newInstance().createSCANode("creditcard.composite",
+            new SCAContribution("creditcard", "../creditcard-payment-jaxb-policy/target/classes"));
+        
+        creditCardNode.start();
+                   
+        paymentNode = SCANodeFactory.newInstance().createSCANode(null, 
+            new SCAContribution("payment-spring-policy", "./target/classes"),
+            new SCAContribution("payment-spring-policy-test", "./target/test-classes"));
+
+        paymentNode.start();
+    }
+    
+    @Test
+    public void testPayment() {
+        SCAClient client = (SCAClient) paymentNode;
+        Payment payment = client.getService(Payment.class, "PaymentClient");
+        System.out.println("Result = " + payment.makePaymentMember("c-0", 100.00f));
+    }
+
+    @AfterClass
+    public static void tearDownAfterClass() throws Exception {
+        paymentNode.stop();
+        creditCardNode.stop();
+    }
+
+}

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/PaymentTestCase.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/PaymentTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java Sun Oct 11 16:28:05 2009
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+ */
+
+package scatours.payment.client.impl;
+
+import com.tuscanyscatours.payment.Payment;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+@Service(Payment.class)
+public class PaymentClientImpl implements Payment {
+    @Reference
+    protected Payment payment;
+
+    public String makePaymentMember(String customerId, float amount) {
+        // Delegate the external web service
+        return payment.makePaymentMember(customerId, amount);
+    }
+
+}

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/java/scatours/payment/client/impl/PaymentClientImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/META-INF/sca-contribution.xml
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/META-INF/sca-contribution.xml?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/META-INF/sca-contribution.xml (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/META-INF/sca-contribution.xml Sun Oct 11 16:28:05 2009
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    * Licensed to the Apache Software Foundation (ASF) under one
+    * or more contributor license agreements.  See the NOTICE file
+    * distributed with this work for additional information
+    * regarding copyright ownership.  The ASF licenses this file
+    * to you under the Apache License, Version 2.0 (the
+    * "License"); you may not use this file except in compliance
+    * with the License.  You may obtain a copy of the License at
+    * 
+    *   http://www.apache.org/licenses/LICENSE-2.0
+    * 
+    * Unless required by applicable law or agreed to in writing,
+    * software distributed under the License is distributed on an
+    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    * KIND, either express or implied.  See the License for the
+    * specific language governing permissions and limitations
+    * under the License.    
+-->
+<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
+              xmlns:scatours="http://tuscanyscatours.com/">
+    <import.java package="com.tuscanyscatours.payment"/>
+    <deployable composite="scatours:paymentClient" />
+</contribution>

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/META-INF/sca-contribution.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/payment-client.composite
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/payment-client.composite?rev=824102&view=auto
==============================================================================
--- tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/payment-client.composite (added)
+++ tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/payment-client.composite Sun Oct 11 16:28:05 2009
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.    
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" 
+           targetNamespace="http://tuscanyscatours.com/" 
+           name="paymentClient">
+           
+    <component name="PaymentClient">
+        <implementation.java class="scatours.payment.client.impl.PaymentClientImpl" />
+        <reference name="payment">
+            <binding.ws uri="http://localhost:8081/Payment" />
+        </reference>
+    </component>   
+
+</composite>

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/payment-client.composite
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/payment-client.composite
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: tuscany/sandbox/travelsample/contributions/payment-spring-policy/src/test/resources/payment-client.composite
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: tuscany/sandbox/travelsample/contributions/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/sandbox/travelsample/contributions/pom.xml?rev=824102&r1=824101&r2=824102&view=diff
==============================================================================
--- tuscany/sandbox/travelsample/contributions/pom.xml (original)
+++ tuscany/sandbox/travelsample/contributions/pom.xml Sun Oct 11 16:28:05 2009
@@ -82,6 +82,7 @@
                 <module>payment-java</module>
                 <module>payment-java-policy</module>
                 <module>payment-spring</module>
+                <module>payment-spring-policy</module>
                 <module>payment-spring-scatag</module>
                 <module>payment-bpel</module>
                 <module>payment-groovy</module>