Author: rfeng
Date: Tue Jul  7 22:04:23 2009
New Revision: 791992

URL: http://svn.apache.org/viewvc?rev=791992&view=rev
Log:
Add an itest for policies

Added:
    tuscany/java/sca/itest/policies/   (with props)
    tuscany/java/sca/itest/policies/pom.xml
    tuscany/java/sca/itest/policies/src/
    tuscany/java/sca/itest/policies/src/main/
    tuscany/java/sca/itest/policies/src/main/java/
    tuscany/java/sca/itest/policies/src/main/java/org/
    tuscany/java/sca/itest/policies/src/main/java/org/apache/
    tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/
    tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/
    tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/
    
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/
    
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/CreditCard.java
    
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/CreditCardPayment.java
    
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/Customer.java
    
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/CustomerRegistry.java
    
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/Payment.java
    
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/impl/
    
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/impl/CreditCardPaymentImpl.java
    
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/impl/CustomerRegistryImpl.java
    
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/impl/PaymentImpl.java
    tuscany/java/sca/itest/policies/src/main/resources/
    tuscany/java/sca/itest/policies/src/main/resources/Customer.composite
    tuscany/java/sca/itest/policies/src/main/resources/META-INF/
    
tuscany/java/sca/itest/policies/src/main/resources/META-INF/sca-contribution.xml
    tuscany/java/sca/itest/policies/src/main/resources/Payment.composite
    tuscany/java/sca/itest/policies/src/test/
    tuscany/java/sca/itest/policies/src/test/java/
    tuscany/java/sca/itest/policies/src/test/java/org/
    tuscany/java/sca/itest/policies/src/test/java/org/apache/
    tuscany/java/sca/itest/policies/src/test/java/org/apache/tuscany/
    tuscany/java/sca/itest/policies/src/test/java/org/apache/tuscany/sca/
    tuscany/java/sca/itest/policies/src/test/java/org/apache/tuscany/sca/itest/
    
tuscany/java/sca/itest/policies/src/test/java/org/apache/tuscany/sca/itest/policies/
    
tuscany/java/sca/itest/policies/src/test/java/org/apache/tuscany/sca/itest/policies/PaymentTestCase.java

Propchange: tuscany/java/sca/itest/policies/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Tue Jul  7 22:04:23 2009
@@ -0,0 +1,15 @@
+target
+*.iws
+*.ipr
+*.iml
+.project
+.classpath
+maven.log
+velocity.log*
+junit*.properties
+surefire*.properties
+.settings
+.deployables
+.wtpmodules
+.externalToolBuilders
+maven-eclipse.xml

Added: tuscany/java/sca/itest/policies/pom.xml
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policies/pom.xml?rev=791992&view=auto
==============================================================================
--- tuscany/java/sca/itest/policies/pom.xml (added)
+++ tuscany/java/sca/itest/policies/pom.xml Tue Jul  7 22:04:23 2009
@@ -0,0 +1,53 @@
+<?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-itest</artifactId>
+        <version>2.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+    <artifactId>itest-policies</artifactId>
+    <name>Apache Tuscany SCA iTest Policies</name>
+
+    <dependencies>
+         <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-node-api</artifactId>
+            <version>2.0-SNAPSHOT</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-node-impl</artifactId>
+            <version>2.0-SNAPSHOT</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tuscany.sca</groupId>
+            <artifactId>tuscany-implementation-java-runtime</artifactId>
+            <version>2.0-SNAPSHOT</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+</project>

Added: 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/CreditCard.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/CreditCard.java?rev=791992&view=auto
==============================================================================
--- 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/CreditCard.java
 (added)
+++ 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/CreditCard.java
 Tue Jul  7 22:04:23 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 org.apache.tuscany.sca.itest.policies;
+
+import java.io.Serializable;
+
+/**
+ * Credit Card 
+ */
+public class CreditCard implements Serializable {
+    private static final long serialVersionUID = -6107293191546007197L;
+    private String type;
+    private String number;
+    private String owner;
+    private int expMonth;
+    private int expYear;
+    
+    public String getType() {
+        return type;
+    }
+    public void setType(String type) {
+        this.type = type;
+    }
+    public String getNumber() {
+        return number;
+    }
+    public void setNumber(String number) {
+        this.number = number;
+    }
+    public String getOwner() {
+        return owner;
+    }
+    public void setOwner(String owner) {
+        this.owner = owner;
+    }
+    public int getExpMonth() {
+        return expMonth;
+    }
+    public void setExpMonth(int expMonth) {
+        this.expMonth = expMonth;
+    }
+    public int getExpYear() {
+        return expYear;
+    }
+    public void setExpYear(int expYear) {
+        this.expYear = expYear;
+    }
+}

Added: 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/CreditCardPayment.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/CreditCardPayment.java?rev=791992&view=auto
==============================================================================
--- 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/CreditCardPayment.java
 (added)
+++ 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/CreditCardPayment.java
 Tue Jul  7 22:04:23 2009
@@ -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 org.apache.tuscany.sca.itest.policies;
+
+import org.oasisopen.sca.annotation.Authentication;
+import org.oasisopen.sca.annotation.Confidentiality;
+import org.oasisopen.sca.annotation.Remotable;
+
+/**
+ * 
+ */
+...@remotable
+...@authentication
+public interface CreditCardPayment {
+    String COMPLETED = "Completed";
+    String REJECTED = "Rejected";
+    
+    @Confidentiality
+    String authorize(CreditCard creditCard, float amount);
+}

Added: 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/Customer.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/Customer.java?rev=791992&view=auto
==============================================================================
--- 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/Customer.java
 (added)
+++ 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/Customer.java
 Tue Jul  7 22:04:23 2009
@@ -0,0 +1,51 @@
+/*
+ * 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 org.apache.tuscany.sca.itest.policies;
+
+import java.io.Serializable;
+
+/**
+ * Customer
+ */
+public class Customer implements Serializable {
+    private static final long serialVersionUID = 680227659536711695L;
+    private String id;
+    private String name;
+    private CreditCard creditCard;
+    
+    public String getId() {
+        return id;
+    }
+    public void setId(String id) {
+        this.id = id;
+    }
+    public String getName() {
+        return name;
+    }
+    public void setName(String name) {
+        this.name = name;
+    }
+    public CreditCard getCreditCard() {
+        return creditCard;
+    }
+    public void setCreditCard(CreditCard creditCard) {
+        this.creditCard = creditCard;
+    }
+}

Added: 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/CustomerRegistry.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/CustomerRegistry.java?rev=791992&view=auto
==============================================================================
--- 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/CustomerRegistry.java
 (added)
+++ 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/CustomerRegistry.java
 Tue Jul  7 22:04:23 2009
@@ -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 org.apache.tuscany.sca.itest.policies;
+
+/**
+ * 
+ */
+public interface CustomerRegistry {
+    Customer find(String id);
+}

Added: 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/Payment.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/Payment.java?rev=791992&view=auto
==============================================================================
--- 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/Payment.java
 (added)
+++ 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/Payment.java
 Tue Jul  7 22:04:23 2009
@@ -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 org.apache.tuscany.sca.itest.policies;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+/**
+ * 
+ */
+...@remotable
+public interface Payment {
+    String charge(String customerID, float amount);
+}

Added: 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/impl/CreditCardPaymentImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/impl/CreditCardPaymentImpl.java?rev=791992&view=auto
==============================================================================
--- 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/impl/CreditCardPaymentImpl.java
 (added)
+++ 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/impl/CreditCardPaymentImpl.java
 Tue Jul  7 22:04:23 2009
@@ -0,0 +1,40 @@
+/*
+ * 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 org.apache.tuscany.sca.itest.policies.impl;
+
+import org.apache.tuscany.sca.itest.policies.CreditCard;
+import org.apache.tuscany.sca.itest.policies.CreditCardPayment;
+
+/**
+ * 
+ */
+public class CreditCardPaymentImpl implements CreditCardPayment {
+
+    public String authorize(CreditCard creditCard, float amount) {
+        System.out.println(creditCard.getType() + " " + 
creditCard.getNumber());
+        System.out.println(amount);
+        if (amount < 200f) {
+            return COMPLETED;
+        } else {
+            return REJECTED;
+        }
+    }
+
+}

Added: 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/impl/CustomerRegistryImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/impl/CustomerRegistryImpl.java?rev=791992&view=auto
==============================================================================
--- 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/impl/CustomerRegistryImpl.java
 (added)
+++ 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/impl/CustomerRegistryImpl.java
 Tue Jul  7 22:04:23 2009
@@ -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 org.apache.tuscany.sca.itest.policies.impl;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.tuscany.sca.itest.policies.CreditCard;
+import org.apache.tuscany.sca.itest.policies.Customer;
+import org.apache.tuscany.sca.itest.policies.CustomerRegistry;
+import org.oasisopen.sca.annotation.Destroy;
+import org.oasisopen.sca.annotation.Init;
+import org.oasisopen.sca.annotation.Scope;
+import org.oasisopen.sca.annotation.Service;
+
+/**
+ * 
+ */
+...@service(CustomerRegistry.class)
+...@scope("COMPOSITE")
+public class CustomerRegistryImpl implements CustomerRegistry {
+    private Map<String, Customer> customers = new HashMap<String, Customer>();
+    
+    
+    @Init
+    public void init() {
+        Customer c1 = new Customer();
+        c1.setId("001");
+        c1.setName("John Smith");
+        CreditCard creditCard = new CreditCard();
+        creditCard.setNumber("1234-5678-1234");
+        creditCard.setType("Visa");
+        creditCard.setOwner("John Smith");
+        creditCard.setExpMonth(6);
+        creditCard.setExpYear(2015);
+        c1.setCreditCard(creditCard);
+        customers.put(c1.getId(), c1);
+        
+        Customer c2 = new Customer();
+        c2.setId("002");
+        c2.setName("Jane Smith");
+        creditCard = new CreditCard();
+        creditCard.setNumber("1234-5678-5678");
+        creditCard.setType("MasterCard");
+        creditCard.setOwner("Jane Smith");
+        creditCard.setExpMonth(9);
+        creditCard.setExpYear(2012);
+        c2.setCreditCard(creditCard);
+        customers.put(c2.getId(), c2);
+    }
+    
+    public Customer find(String id) {
+        return customers.get(id);
+    }
+    
+    @Destroy
+    public void destroy() {
+        customers.clear();
+    }
+
+}

Added: 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/impl/PaymentImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/impl/PaymentImpl.java?rev=791992&view=auto
==============================================================================
--- 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/impl/PaymentImpl.java
 (added)
+++ 
tuscany/java/sca/itest/policies/src/main/java/org/apache/tuscany/sca/itest/policies/impl/PaymentImpl.java
 Tue Jul  7 22:04:23 2009
@@ -0,0 +1,52 @@
+/*
+ * 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 org.apache.tuscany.sca.itest.policies.impl;
+
+import org.apache.tuscany.sca.itest.policies.CreditCard;
+import org.apache.tuscany.sca.itest.policies.CreditCardPayment;
+import org.apache.tuscany.sca.itest.policies.Customer;
+import org.apache.tuscany.sca.itest.policies.CustomerRegistry;
+import org.apache.tuscany.sca.itest.policies.Payment;
+import org.oasisopen.sca.annotation.Authentication;
+import org.oasisopen.sca.annotation.Confidentiality;
+import org.oasisopen.sca.annotation.Reference;
+import org.oasisopen.sca.annotation.Requires;
+
+/**
+ * 
+ */
+public class PaymentImpl implements Payment {
+
+    @Reference
+    protected CustomerRegistry customerRegistry;
+
+    @Reference
+    @Authentication
+    @Requires({Confidentiality.CONFIDENTIALITY_MESSAGE, 
Confidentiality.CONFIDENTIALITY_TRANSPORT})
+    protected CreditCardPayment creditCardPayment;
+
+    public String charge(String customerID, float amount) {
+        Customer customer = customerRegistry.find(customerID);
+        CreditCard creditCard = customer.getCreditCard();
+        String status = creditCardPayment.authorize(creditCard, amount);
+        return status;
+    }
+
+}

Added: tuscany/java/sca/itest/policies/src/main/resources/Customer.composite
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policies/src/main/resources/Customer.composite?rev=791992&view=auto
==============================================================================
--- tuscany/java/sca/itest/policies/src/main/resources/Customer.composite 
(added)
+++ tuscany/java/sca/itest/policies/src/main/resources/Customer.composite Tue 
Jul  7 22:04:23 2009
@@ -0,0 +1,34 @@
+<?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://docs.oasis-open.org/ns/opencsa/sca/200903"; 
+    xmlns:c="http://customer";
+    xmlns:sca = "http://docs.oasis-open.org/ns/opencsa/sca/200903"; 
+    targetNamespace="http://customer";
+    name="Customer">
+
+    <service name="Registry" promote="CustomerRegistry">
+        <binding.sca/>
+    </service>
+    
+    <component name="CustomerRegistry">
+        <implementation.java 
class="org.apache.tuscany.sca.itest.policies.impl.CustomerRegistryImpl" />
+    </component>
+
+</composite>
\ No newline at end of file

Added: 
tuscany/java/sca/itest/policies/src/main/resources/META-INF/sca-contribution.xml
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policies/src/main/resources/META-INF/sca-contribution.xml?rev=791992&view=auto
==============================================================================
--- 
tuscany/java/sca/itest/policies/src/main/resources/META-INF/sca-contribution.xml
 (added)
+++ 
tuscany/java/sca/itest/policies/src/main/resources/META-INF/sca-contribution.xml
 Tue Jul  7 22:04:23 2009
@@ -0,0 +1,23 @@
+<?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://docs.oasis-open.org/ns/opencsa/sca/200903"; 
+    xmlns:p="http://payment";>
+    <deployable composite="p:Payment" />
+</contribution>
\ No newline at end of file

Added: tuscany/java/sca/itest/policies/src/main/resources/Payment.composite
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policies/src/main/resources/Payment.composite?rev=791992&view=auto
==============================================================================
--- tuscany/java/sca/itest/policies/src/main/resources/Payment.composite (added)
+++ tuscany/java/sca/itest/policies/src/main/resources/Payment.composite Tue 
Jul  7 22:04:23 2009
@@ -0,0 +1,48 @@
+<?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://docs.oasis-open.org/ns/opencsa/sca/200903"; 
+    xmlns:p="http://payment";
+    xmlns:c="http://customer";
+    xmlns:sca = "http://docs.oasis-open.org/ns/opencsa/sca/200903";
+    requires = "sca:authorization" 
+    targetNamespace="http://payment";
+    name="Payment">
+
+    <component name="Payment">
+        <implementation.java 
class="org.apache.tuscany.sca.itest.policies.impl.PaymentImpl" />
+        <reference name="creditCardPayment" target="CreditCardPayment">
+            <binding.sca requires="sca:integrity">
+            </binding.sca>
+        </reference>
+        <reference name="customerRegistry" target="Customer/Registry" 
requires="sca:suspendsTransaction"/>
+    </component>
+
+    <component name="CreditCardPayment">
+        <implementation.java 
class="org.apache.tuscany.sca.itest.policies.impl.CreditCardPaymentImpl" />
+    </component>
+
+    <component name="Customer">
+        <implementation.composite name="c:Customer" 
requires="sca:managedTransaction.global"/>
+        <service name="Registry" requires="sca:suspendsTransaction">
+            <binding.sca/>
+        </service>
+    </component>
+
+</composite>
\ No newline at end of file

Added: 
tuscany/java/sca/itest/policies/src/test/java/org/apache/tuscany/sca/itest/policies/PaymentTestCase.java
URL: 
http://svn.apache.org/viewvc/tuscany/java/sca/itest/policies/src/test/java/org/apache/tuscany/sca/itest/policies/PaymentTestCase.java?rev=791992&view=auto
==============================================================================
--- 
tuscany/java/sca/itest/policies/src/test/java/org/apache/tuscany/sca/itest/policies/PaymentTestCase.java
 (added)
+++ 
tuscany/java/sca/itest/policies/src/test/java/org/apache/tuscany/sca/itest/policies/PaymentTestCase.java
 Tue Jul  7 22:04:23 2009
@@ -0,0 +1,69 @@
+/*
+ * 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 org.apache.tuscany.sca.itest.policies;
+
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class PaymentTestCase {
+    private static Node node;
+
+    @BeforeClass
+    public static void init() throws Exception {
+        try {
+            String location = 
ContributionLocationHelper.getContributionLocation("Payment.composite");
+            node = NodeFactory.newInstance().createNode(new Contribution("c1", 
location));
+            node.start();
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw e;
+        }
+    }
+
+    @AfterClass
+    public static void destroy() throws Exception {
+        if (node != null) {
+            node.stop();
+        }
+    }
+
+    @Test
+    public void testPayment() {
+        Payment payment = node.getService(Payment.class, "Payment");
+        String status = payment.charge("001", 100f);
+        Assert.assertEquals(CreditCardPayment.COMPLETED, status);
+        
+        status = payment.charge("002", 300f);
+        Assert.assertEquals(CreditCardPayment.REJECTED, status);
+    }
+
+    public static void main(String[] args) throws Exception {
+        PaymentTestCase.init();
+        PaymentTestCase tester = new PaymentTestCase();
+        tester.testPayment();
+        PaymentTestCase.destroy();
+    }
+}


Reply via email to