Author: rfeng
Date: Wed Nov 28 14:39:11 2007
New Revision: 599173

URL: http://svn.apache.org/viewvc?rev=599173&view=rev
Log:
Add transaction interceptor

Added:
    
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionInterceptor.java
   (with props)
    
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionRuntimeWireProcessor.java
   (with props)
    
incubator/tuscany/java/sca/modules/policy-transaction/src/main/resources/META-INF/services/org.apache.tuscany.sca.policy.util.PolicyHandler
Removed:
    
incubator/tuscany/java/sca/modules/policy-transaction/src/main/resources/META-INF/services/org.apache.tuscany.sca.policy.PolicySetHandlers
Modified:
    
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionModuleActivator.java
    
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicy.java
    
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyHandler.java
    
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyImpl.java
    
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProcessor.java
    
incubator/tuscany/java/sca/modules/policy-transaction/src/main/resources/policy_definitions.xml

Added: 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionInterceptor.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionInterceptor.java?rev=599173&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionInterceptor.java
 (added)
+++ 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionInterceptor.java
 Wed Nov 28 14:39:11 2007
@@ -0,0 +1,122 @@
+/*
+ * 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.policy.transaction;
+
+import org.apache.tuscany.sca.invocation.Interceptor;
+import org.apache.tuscany.sca.invocation.Invoker;
+import org.apache.tuscany.sca.invocation.Message;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class TransactionInterceptor implements Interceptor {
+    private Invoker next;
+    private TransactionManagerHelper helper;
+    private boolean outbound;
+    private TransactionPolicy interactionPolicy;
+    private TransactionPolicy implementationPolicy;
+
+    public TransactionInterceptor(TransactionManagerHelper helper,
+                                  boolean outbound,
+                                  TransactionPolicy interactionPolicy,
+                                  TransactionPolicy implementationPolicy) {
+        super();
+        this.helper = helper;
+        this.outbound = outbound;
+        this.interactionPolicy = interactionPolicy;
+        this.implementationPolicy = implementationPolicy;
+    }
+
+    /**
+     * @see org.apache.tuscany.sca.invocation.Interceptor#getNext()
+     */
+    public Invoker getNext() {
+        return next;
+    }
+
+    /**
+     * @see 
org.apache.tuscany.sca.invocation.Interceptor#setNext(org.apache.tuscany.sca.invocation.Invoker)
+     */
+    public void setNext(Invoker next) {
+        this.next = next;
+    }
+
+    /**
+     * @see 
org.apache.tuscany.sca.invocation.Invoker#invoke(org.apache.tuscany.sca.invocation.Message)
+     */
+    public Message invoke(Message msg) {
+        TransactionalInvocation invocation = new TransactionalInvocation(next, 
msg);
+
+        Message result = null;
+        if (msg.getOperation().isNonBlocking()) {
+
+        }
+        TransactionIntent interactionIntent = 
TransactionIntent.propagatesTransacton;
+        if (interactionPolicy != null) {
+            if (interactionPolicy.getAction() == 
TransactionPolicy.Action.PROPAGATE) {
+                interactionIntent = TransactionIntent.propagatesTransacton;
+            } else {
+                interactionIntent = TransactionIntent.suspendsTransaction;
+            }
+        }
+        TransactionIntent implementationIntent = 
TransactionIntent.managedTransactionGlobal;
+        if (implementationPolicy != null) {
+            switch (implementationPolicy.getAction()) {
+                case REQUIRE_GLOBAL:
+                    implementationIntent = 
TransactionIntent.managedTransactionGlobal;
+                    break;
+                case REQUIRE_LOCAL:
+                    implementationIntent = 
TransactionIntent.managedTransactionLocal;
+                    break;
+                default:
+                    implementationIntent = 
TransactionIntent.noManagedTransaction;
+                    break;
+            }
+        }
+        try {
+            if (outbound) {
+                result = helper.handlesOutbound(interactionIntent, 
implementationIntent, invocation);
+            } else {
+                result = helper.handlesInbound(interactionIntent, 
implementationIntent, invocation);
+            }
+        } catch (Exception e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        return result;
+    }
+
+    private static class TransactionalInvocation implements 
TransactionalAction<Message> {
+        private final Invoker invoker;
+        private final Message message;
+
+        public TransactionalInvocation(Invoker invoker, Message message) {
+            super();
+            this.invoker = invoker;
+            this.message = message;
+        }
+
+        public Message run() throws Exception {
+            return invoker.invoke(message);
+        }
+
+    }
+
+}

Propchange: 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionInterceptor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionInterceptor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionModuleActivator.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionModuleActivator.java?rev=599173&r1=599172&r2=599173&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionModuleActivator.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionModuleActivator.java
 Wed Nov 28 14:39:11 2007
@@ -23,12 +23,14 @@
 
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.ModuleActivator;
+import org.apache.tuscany.sca.runtime.RuntimeWireProcessorExtensionPoint;
 
 /**
  * @version $Rev$ $Date$
  */
 public class TransactionModuleActivator implements ModuleActivator {
     private TransactionManagerWrapper wrapper;
+
     /**
      * @see 
org.apache.tuscany.sca.core.ModuleActivator#start(org.apache.tuscany.sca.core.ExtensionPointRegistry)
      */
@@ -37,6 +39,10 @@
             TransactionManager transactionManager = 
registry.getExtensionPoint(TransactionManager.class);
             if (transactionManager != null) {
                 // The transaction manage is provided by the hosting 
environment
+                RuntimeWireProcessorExtensionPoint wireProcessorExtensionPoint 
=
+                    
registry.getExtensionPoint(RuntimeWireProcessorExtensionPoint.class);
+                TransactionManagerHelper helper = new 
TransactionManagerHelper(transactionManager);
+                wireProcessorExtensionPoint.addWireProcessor(new 
TransactionRuntimeWireProcessor(helper));
                 return;
             }
         }
@@ -48,6 +54,10 @@
         }
         if (registry != null) {
             registry.addExtensionPoint(wrapper.getTransactionManager());
+            RuntimeWireProcessorExtensionPoint wireProcessorExtensionPoint =
+                
registry.getExtensionPoint(RuntimeWireProcessorExtensionPoint.class);
+            TransactionManagerHelper helper = new 
TransactionManagerHelper(wrapper.getTransactionManager());
+            wireProcessorExtensionPoint.addWireProcessor(new 
TransactionRuntimeWireProcessor(helper));
         }
     }
 

Modified: 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicy.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicy.java?rev=599173&r1=599172&r2=599173&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicy.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicy.java
 Wed Nov 28 14:39:11 2007
@@ -19,15 +19,27 @@
 
 package org.apache.tuscany.sca.policy.transaction;
 
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.assembly.xml.Constants;
+
 /**
+ * The model for Tuscany transaction policy
+ * 
  * @version $Rev$ $Date$
  */
 public interface TransactionPolicy {
-    enum Type {GLOBAL, LOCAL, NONE};
+    QName NAME = new QName(Constants.SCA10_TUSCANY_NS, "transactionPolicy");
+
+    enum Action {
+        PROPAGATE, SUSPEND, REQUIRE_GLOBAL, REQUIRE_LOCAL, REQUIRE_NONE
+    };
+
     int getTransactionTimeout();
 
     void setTransactionTimeout(int seconds);
-    
-    void setType(Type type);
-    Type getType();
+
+    void setAction(Action action);
+
+    Action getAction();
 }

Modified: 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyHandler.java?rev=599173&r1=599172&r2=599173&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyHandler.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyHandler.java
 Wed Nov 28 14:39:11 2007
@@ -26,17 +26,19 @@
  * @version $Rev$ $Date$
  */
 public class TransactionPolicyHandler implements PolicyHandler {
-
+    protected PolicySet policySet;
     /**
      * @see 
org.apache.tuscany.sca.policy.util.PolicyHandler#afterInvoke(java.lang.Object[])
      */
     public void afterInvoke(Object... context) {
+        System.out.println("afterInvoke");
     }
 
     /**
      * @see 
org.apache.tuscany.sca.policy.util.PolicyHandler#beforeInvoke(java.lang.Object[])
      */
     public void beforeInvoke(Object... context) {
+        System.out.println("beforeInvoke");
     }
 
     /**
@@ -49,13 +51,14 @@
      * @see 
org.apache.tuscany.sca.policy.util.PolicyHandler#getApplicablePolicySet()
      */
     public PolicySet getApplicablePolicySet() {
-        return null;
+        return policySet;
     }
 
     /**
      * @see 
org.apache.tuscany.sca.policy.util.PolicyHandler#setApplicablePolicySet(org.apache.tuscany.sca.policy.PolicySet)
      */
     public void setApplicablePolicySet(PolicySet context) {
+        this.policySet = context;
     }
 
     /**

Modified: 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyImpl.java?rev=599173&r1=599172&r2=599173&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyImpl.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyImpl.java
 Wed Nov 28 14:39:11 2007
@@ -24,7 +24,7 @@
  */
 public class TransactionPolicyImpl implements TransactionPolicy {
     private int transactionTimeout = 1200;
-    private Type type = Type.NONE;
+    private Action action = Action.PROPAGATE;
 
     public int getTransactionTimeout() {
         return transactionTimeout;
@@ -34,11 +34,11 @@
         this.transactionTimeout = transactionTimeout;
     }
 
-    public Type getType() {
-        return type;
+    public Action getAction() {
+        return action;
     }
 
-    public void setType(Type type) {
-        this.type = type;
+    public void setAction(Action policy) {
+        this.action = policy;
     }
 }

Modified: 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProcessor.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProcessor.java?rev=599173&r1=599172&r2=599173&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProcessor.java
 (original)
+++ 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProcessor.java
 Wed Nov 28 14:39:11 2007
@@ -26,7 +26,6 @@
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.apache.tuscany.sca.assembly.xml.Constants;
 import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
 import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
 import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
@@ -38,19 +37,18 @@
  * @version $Rev$ $Date$
  */
 public class TransactionPolicyProcessor implements 
StAXArtifactProcessor<TransactionPolicy> {
-    public static final QName POLICY_QNAME = new 
QName(Constants.SCA10_TUSCANY_NS, "transactionPolicy");
     public static final String TIMEOUT = "transactionTimeout";
-    public static final String TYPE = "type";
+    public static final String ACTION = "action";
 
     public QName getArtifactType() {
-        return POLICY_QNAME;
+        return TransactionPolicy.NAME;
     }
 
     public TransactionPolicyProcessor(ModelFactoryExtensionPoint 
modelFactories) {
     }
 
     public TransactionPolicy read(XMLStreamReader reader) throws 
ContributionReadException, XMLStreamException {
-        TransactionPolicy policy = new TransactionPolicyImpl();
+        TransactionPolicy txPolicy = new TransactionPolicyImpl();
         int event = reader.getEventType();
         while (reader.hasNext()) {
             event = reader.getEventType();
@@ -58,18 +56,18 @@
                 case START_ELEMENT: {
                     String timeout = reader.getAttributeValue(null, TIMEOUT);
                     if (timeout != null) {
-                        
policy.setTransactionTimeout(Integer.parseInt(timeout));
+                        
txPolicy.setTransactionTimeout(Integer.parseInt(timeout));
                     }
-                    String type = reader.getAttributeValue(null, TYPE);
-                    if (type != null) {
-                        
policy.setType(TransactionPolicy.Type.valueOf(type.toUpperCase()));
+                    String action = reader.getAttributeValue(null, ACTION);
+                    if (action != null) {
+                        
txPolicy.setAction(TransactionPolicy.Action.valueOf(action));
                     }
                     break;
                 }
             }
 
             if (event == END_ELEMENT) {
-                if (POLICY_QNAME.equals(reader.getName())) {
+                if (TransactionPolicy.NAME.equals(reader.getName())) {
                     break;
                 }
             }
@@ -80,7 +78,7 @@
             }
         }
 
-        return policy;
+        return txPolicy;
     }
 
     public void write(TransactionPolicy policy, XMLStreamWriter writer) throws 
ContributionWriteException,

Added: 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionRuntimeWireProcessor.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionRuntimeWireProcessor.java?rev=599173&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionRuntimeWireProcessor.java
 (added)
+++ 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionRuntimeWireProcessor.java
 Wed Nov 28 14:39:11 2007
@@ -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.policy.transaction;
+
+import org.apache.tuscany.sca.assembly.Binding;
+import org.apache.tuscany.sca.assembly.Component;
+import org.apache.tuscany.sca.assembly.Reference;
+import org.apache.tuscany.sca.interfacedef.Operation;
+import org.apache.tuscany.sca.invocation.InvocationChain;
+import org.apache.tuscany.sca.policy.PolicySet;
+import org.apache.tuscany.sca.policy.PolicySetAttachPoint;
+import org.apache.tuscany.sca.runtime.RuntimeWire;
+import org.apache.tuscany.sca.runtime.RuntimeWireProcessor;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class TransactionRuntimeWireProcessor implements RuntimeWireProcessor {
+    private TransactionManagerHelper helper;
+
+    public TransactionRuntimeWireProcessor(TransactionManagerHelper helper) {
+        super();
+        this.helper = helper;
+    }
+
+    /**
+     * @see 
org.apache.tuscany.sca.runtime.RuntimeWireProcessor#process(org.apache.tuscany.sca.runtime.RuntimeWire)
+     */
+    public void process(RuntimeWire wire) {
+        boolean outbound = (wire.getSource().getContract() instanceof 
Reference);
+        Component component = outbound ? wire.getSource().getComponent() : 
wire.getTarget().getComponent();
+        Binding binding = outbound ? wire.getSource().getBinding() : 
wire.getTarget().getBinding();
+
+        TransactionPolicy interactionPolicy = null;
+        TransactionPolicy implementationPolicy = null;
+        for (PolicySet ps : component.getPolicySets()) {
+            // TODO: Test operations
+            if (ps.getName().equals(TransactionPolicy.NAME)) {
+                implementationPolicy = 
(TransactionPolicy)ps.getPolicies().get(0);
+            }
+        }
+        if (binding instanceof PolicySetAttachPoint) {
+            PolicySetAttachPoint pap = (PolicySetAttachPoint)binding;
+            for (PolicySet ps : pap.getPolicySets()) {
+                if (ps.getName().equals(TransactionPolicy.NAME)) {
+                    interactionPolicy = 
(TransactionPolicy)ps.getPolicies().get(0);
+
+                }
+            }
+        }
+        for (InvocationChain chain : wire.getInvocationChains()) {
+            Operation operation = chain.getSourceOperation();
+
+            TransactionInterceptor interceptor =
+                new TransactionInterceptor(helper, outbound, 
interactionPolicy, implementationPolicy);
+            chain.addInterceptor(interceptor);
+        }
+
+    }
+
+}

Propchange: 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionRuntimeWireProcessor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionRuntimeWireProcessor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/resources/META-INF/services/org.apache.tuscany.sca.policy.util.PolicyHandler
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-transaction/src/main/resources/META-INF/services/org.apache.tuscany.sca.policy.util.PolicyHandler?rev=599173&view=auto
==============================================================================
--- 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/resources/META-INF/services/org.apache.tuscany.sca.policy.util.PolicyHandler
 (added)
+++ 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/resources/META-INF/services/org.apache.tuscany.sca.policy.util.PolicyHandler
 Wed Nov 28 14:39:11 2007
@@ -0,0 +1,20 @@
+# 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.
+org.apache.tuscany.sca.policy.transaction.TransactionPolicyHandler;qname=http://tuscany.apache.org/xmlns/sca/1.0#ManagedTransactionPolicySet
+org.apache.tuscany.sca.policy.transaction.TransactionPolicyHandler;qname=http://tuscany.apache.org/xmlns/sca/1.0#NoManagedTransactionPolicySet
+org.apache.tuscany.sca.policy.transaction.TransactionPolicyHandler;qname=http://tuscany.apache.org/xmlns/sca/1.0#PropagatesTransactionPolicySet
+org.apache.tuscany.sca.policy.transaction.TransactionPolicyHandler;qname=http://tuscany.apache.org/xmlns/sca/1.0#SuspendsTransactionPolicySet

Modified: 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/resources/policy_definitions.xml
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/policy-transaction/src/main/resources/policy_definitions.xml?rev=599173&r1=599172&r2=599173&view=diff
==============================================================================
--- 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/resources/policy_definitions.xml
 (original)
+++ 
incubator/tuscany/java/sca/modules/policy-transaction/src/main/resources/policy_definitions.xml
 Wed Nov 28 14:39:11 2007
@@ -1,103 +1,99 @@
 <?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.    
+    * 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://tuscany.apache.org/xmlns/sca/1.0/policy/transaction";
-       xmlns:sca="http://www.osoa.org/xmlns/sca/1.0";
-       xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0";>
-
-       <sca:policySet name="tuscany:TransactionImplementationPolicySet"
-               provides="managedTransaction noManagedTransaction 
transactedOneWay immediateOneWay"
-               appliesTo="sca:implementation">
-               <intentMap provides="managedTransaction" default="global">
-                       <sca:qualifier name="global">
-                               <tuscany:transactionPolicy 
transactionTimeout="1200" type="global"/>
-                       </sca:qualifier>
-                       <sca:qualifier name="local">
-                               <tuscany:transactionPolicy 
transactionTimeout="1200" type="local"/>
-                       </sca:qualifier>
-               </intentMap>
-               <tuscany:transactionPolicy transactionTimeout="1200" />
-       </sca:policySet>
-       
-    <sca:policySet name="tuscany:TransactionBindingPolicySet"
-        provides="managedTransaction noManagedTransaction 
propagatesTransaction suspendsTransaction transactedOneWay immediateOneWay"
-        appliesTo="sca:binding">
-        <tuscany:transactionPolicy transactionTimeout="1200" />
-    </sca:policySet>   
-
-       <intent name="managedTransaction" constrains="sca:implementation">
-               <description>
-                       Used to indicate the transaction environment desired by 
a
-                       component implementation.
-               </description>
-       </intent>
-       <intent name="managedTransaction.global"
-               constrains="sca:implementation">
-               <description>
-                       Used to indicate that a component implementation 
requires a
-                       managed global transaction.
-               </description>
-       </intent>
-       <intent name="managedTransaction.local"
-               constrains="sca:implementation">
-               <description>
-                       Used to indicate that a component implementation 
requires a
-                       managed local transaction.
-               </description>
-       </intent>
-       <intent name="noManagedTransaction"
-               constrains="sca:implementation">
-               <description>
-                       Used to indicate that a component implementation will 
manage
-                       its own transaction resources.
-               </description>
-       </intent>
-       <intent name="propagatesTransaction" constrains="sca:binding">
-               <description>
-                       Used to indicate that a reference will propagate any 
client
-                       transaction or that a service will be dispatched under 
any
-                       received transaction.
-               </description>
-       </intent>
-       <intent name="suspendsTransaction" constrains="sca:binding">
-               <description>
-                       Used to indicate that a reference will not propagate any
-                       client transaction or that a service will not be 
dispatched
-                       under any received transaction.
-               </description>
-       </intent>
-       <intent name="transactedOneWay" constrains="sca:binding">
-               <description>
-                       Used to indicate that the component requires the SCA 
runtime
-                       to transact OneWay send of messages as part of any 
client
-                       global transaction or to transact oneWay message 
receipt as
-                       part of any service global transaction.
-               </description>
-       </intent>
-       <intent name="immediateOneWay" constrains="sca:binding">
-               <description>
-                       Used to indicate that the component requires the SCA 
runtime
-                       to process the sending or receiving of OneWay messages
-                       immediately, regardless of any transaction under which 
the
-                       sending/receiving component runs.
-               </description>
-       </intent>
+<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";>
+
+    <policySet name="tuscany:ManagedTransactionPolicySet" 
provides="managedTransaction" appliesTo="implementation">
+        <intentMap provides="managedTransaction" default="global">
+            <qualifier name="global">
+                <tuscany:transactionPolicy transactionTimeout="1200" 
action="REQUIRE_GLOBAL" />
+            </qualifier>
+            <qualifier name="local">
+                <tuscany:transactionPolicy transactionTimeout="1200" 
action="REQUIRE_LOCAL" />
+            </qualifier>
+        </intentMap>
+    </policySet>
+
+    <policySet name="tuscany:NoManagedTransactionPolicySet" 
provides="noManagedTransaction"
+        appliesTo="implementation">
+        <tuscany:transactionPolicy action="REQUIRE_NONE" />
+    </policySet>
+
+    <policySet name="tuscany:PropagatesTransactionPolicySet" 
provides="propagatesTransaction" appliesTo="binding">
+        <tuscany:transactionPolicy action="PROPAGATE" />
+    </policySet>
+
+    <policySet name="tuscany:SuspendsTransactionPolicySet" 
provides="suspendsTransaction" appliesTo="binding">
+        <tuscany:transactionPolicy action="SUSPEND" />
+    </policySet>
+
+    <policySet name="tuscany:TransactedOneWayPolicySet" 
provides="transactedOneWay" appliesTo="binding">
+        <tuscany:transactionPolicy action="PROPAGATE" />
+    </policySet>
+
+    <policySet name="tuscany:ImmediateOneWayPolicySet" 
provides="immediateOneWay" appliesTo="binding">
+        <tuscany:transactionPolicy action="SUSPEND" />
+    </policySet>
+
+    <intent name="managedTransaction" constrains="implementation">
+        <description>Used to indicate the transaction environment desired by a 
component implementation.</description>
+    </intent>
+    <intent name="managedTransaction.global">
+        <description>
+            Used to indicate that a component implementation requires a 
managed global transaction.
+        </description>
+    </intent>
+    <intent name="managedTransaction.local">
+        <description>
+            Used to indicate that a component implementation requires a 
managed local transaction.
+        </description>
+    </intent>
+    <intent name="noManagedTransaction" constrains="implementation">
+        <description>
+            Used to indicate that a component implementation will manage its 
own transaction resources.
+        </description>
+    </intent>
+    <intent name="propagatesTransaction" constrains="binding">
+        <description>
+            Used to indicate that a reference will propagate any client 
transaction or that a service will be dispatched
+            under any received transaction.
+        </description>
+    </intent>
+    <intent name="suspendsTransaction" constrains="binding">
+        <description>
+            Used to indicate that a reference will not propagate any client 
transaction or that a service will not be
+            dispatched under any received transaction.
+        </description>
+    </intent>
+    <intent name="transactedOneWay" constrains="binding">
+        <description>
+            Used to indicate that the component requires the SCA runtime to 
transact OneWay send of messages as part of
+            any client global transaction or to transact oneWay message 
receipt as part of any service global
+            transaction.
+        </description>
+    </intent>
+    <intent name="immediateOneWay" constrains="binding">
+        <description>
+            Used to indicate that the component requires the SCA runtime to 
process the sending or receiving of OneWay
+            messages immediately, regardless of any transaction under which 
the sending/receiving component runs.
+        </description>
+    </intent>
 
 </definitions>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to