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]