diff options
6 files changed, 108 insertions, 9 deletions
diff --git a/sca-java-2.x/trunk/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyFactory.java b/sca-java-2.x/trunk/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyFactory.java new file mode 100644 index 0000000000..f0567f47e0 --- /dev/null +++ b/sca-java-2.x/trunk/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyFactory.java @@ -0,0 +1,34 @@ +/* + * 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; + +/** + * Factory for Policy Transaction + * + * @version $Rev$ $Date$ + */ +public interface TransactionPolicyFactory { + + /** + * Creates a new Transaction Policy + * @return the new Transaction policy + */ + TransactionPolicy createTransactionPolicy(); +} diff --git a/sca-java-2.x/trunk/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProcessor.java b/sca-java-2.x/trunk/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProcessor.java index 341cfc0016..d6818c9b98 100644 --- a/sca-java-2.x/trunk/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProcessor.java +++ b/sca-java-2.x/trunk/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyProcessor.java @@ -32,6 +32,7 @@ import org.apache.tuscany.sca.contribution.processor.ContributionWriteException; import org.apache.tuscany.sca.contribution.processor.ProcessorContext; import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor; import org.apache.tuscany.sca.contribution.resolver.ModelResolver; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import org.apache.tuscany.sca.core.FactoryExtensionPoint; @@ -42,15 +43,23 @@ public class TransactionPolicyProcessor implements StAXArtifactProcessor<Transac public static final String TIMEOUT = "transactionTimeout"; public static final String ACTION = "action"; + TransactionPolicyFactory transactionPolicyFactory; + public QName getArtifactType() { return TransactionPolicy.NAME; } - public TransactionPolicyProcessor(FactoryExtensionPoint modelFactories) { + public Class<TransactionPolicy> getModelType() { + return TransactionPolicy.class; + } + + public TransactionPolicyProcessor(ExtensionPointRegistry extensions) { + FactoryExtensionPoint factories = extensions.getExtensionPoint(FactoryExtensionPoint.class); + transactionPolicyFactory = factories.getFactory(TransactionPolicyFactory.class); } public TransactionPolicy read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException { - TransactionPolicy txPolicy = new TransactionPolicyImpl(); + TransactionPolicy txPolicy = transactionPolicyFactory.createTransactionPolicy(); int event = reader.getEventType(); while (reader.hasNext()) { event = reader.getEventType(); @@ -88,10 +97,6 @@ public class TransactionPolicyProcessor implements StAXArtifactProcessor<Transac // TODO } - public Class<TransactionPolicy> getModelType() { - return TransactionPolicy.class; - } - public void resolve(TransactionPolicy policy, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException { // TODO } diff --git a/sca-java-2.x/trunk/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/impl/TransactionPolicyFactoryImpl.java b/sca-java-2.x/trunk/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/impl/TransactionPolicyFactoryImpl.java new file mode 100644 index 0000000000..6a4325fa4d --- /dev/null +++ b/sca-java-2.x/trunk/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/impl/TransactionPolicyFactoryImpl.java @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.tuscany.sca.policy.transaction.impl; + +import org.apache.tuscany.sca.policy.transaction.TransactionPolicy; +import org.apache.tuscany.sca.policy.transaction.TransactionPolicyFactory; + +/** + * Implementation for Transaction Policy factory + * + * @version $Rev$ $Date$ + */ +public class TransactionPolicyFactoryImpl implements TransactionPolicyFactory { + + public TransactionPolicy createTransactionPolicy() { + return new TransactionPolicyImpl(); + } + +} diff --git a/sca-java-2.x/trunk/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyImpl.java b/sca-java-2.x/trunk/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/impl/TransactionPolicyImpl.java index f178876a72..1101790a6a 100644 --- a/sca-java-2.x/trunk/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/TransactionPolicyImpl.java +++ b/sca-java-2.x/trunk/modules/policy-transaction/src/main/java/org/apache/tuscany/sca/policy/transaction/impl/TransactionPolicyImpl.java @@ -17,10 +17,13 @@ * under the License. */ -package org.apache.tuscany.sca.policy.transaction; +package org.apache.tuscany.sca.policy.transaction.impl; import javax.xml.namespace.QName; +import org.apache.tuscany.sca.policy.transaction.TransactionPolicy; +import org.apache.tuscany.sca.policy.transaction.TransactionPolicy.Action; + /** * @version $Rev$ $Date$ */ diff --git a/sca-java-2.x/trunk/modules/policy-transaction/src/main/resources/META-INF/services/org.apache.tuscany.sca.policy.transaction.TransactionPolicyFactory b/sca-java-2.x/trunk/modules/policy-transaction/src/main/resources/META-INF/services/org.apache.tuscany.sca.policy.transaction.TransactionPolicyFactory new file mode 100644 index 0000000000..5b37ba4171 --- /dev/null +++ b/sca-java-2.x/trunk/modules/policy-transaction/src/main/resources/META-INF/services/org.apache.tuscany.sca.policy.transaction.TransactionPolicyFactory @@ -0,0 +1,19 @@ +# 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. + +# Implementation class for the model factory +org.apache.tuscany.sca.policy.transaction.impl.TransactionPolicyFactoryImpl diff --git a/sca-java-2.x/trunk/modules/policy-transaction/src/test/java/org/apache/tuscany/sca/policy/transaction/PolicyReadTestCase.java b/sca-java-2.x/trunk/modules/policy-transaction/src/test/java/org/apache/tuscany/sca/policy/transaction/PolicyReadTestCase.java index 345dbaef8e..fd3e0a7968 100644 --- a/sca-java-2.x/trunk/modules/policy-transaction/src/test/java/org/apache/tuscany/sca/policy/transaction/PolicyReadTestCase.java +++ b/sca-java-2.x/trunk/modules/policy-transaction/src/test/java/org/apache/tuscany/sca/policy/transaction/PolicyReadTestCase.java @@ -25,6 +25,8 @@ import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamReader; import org.apache.tuscany.sca.contribution.processor.ProcessorContext; +import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; +import org.apache.tuscany.sca.core.ExtensionPointRegistry; import junit.framework.TestCase; @@ -40,8 +42,8 @@ public class PolicyReadTestCase extends TestCase { } public void testPolicyReading() throws Exception { - - TransactionPolicyProcessor processor = new TransactionPolicyProcessor(null); + ExtensionPointRegistry extensionPoints = new DefaultExtensionPointRegistry(); + TransactionPolicyProcessor processor = new TransactionPolicyProcessor(extensionPoints); URL url = getClass().getResource("/org/apache/tuscany/sca/policy/transaction/definitions.xml"); XMLInputFactory inputFactory = XMLInputFactory.newInstance(); |