summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample
diff options
context:
space:
mode:
authorslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2011-02-24 17:00:59 +0000
committerslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2011-02-24 17:00:59 +0000
commit23abf7a83adcde552d434800ba489f6b082d4ee9 (patch)
tree2ca16664269ec56b0ba6edcba4da8f16bc017652 /sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample
parentfadbd575dde984dde60a2786f5c73e4e2a70a2c4 (diff)
Adding a test to start looking if we can support Gang's scenario in 2.x. The idea is to prod each of the injection points to make sure we do the right thing at each stage.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1074213 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample')
-rw-r--r--sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/Helloworld.java28
-rw-r--r--sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/HelloworldImpl.java42
-rw-r--r--sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/ImplementationGenericPolicy.java57
-rw-r--r--sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/ImplementationGenericPolicyProcessor.java80
-rw-r--r--sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSPolicy.java57
-rw-r--r--sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSPolicyProcessor.java76
-rw-r--r--sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSPolicyProviderFactory.java68
-rw-r--r--sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSReferencePolicyProvider.java85
-rw-r--r--sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSServicePolicyProvider.java80
-rw-r--r--sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionGenericPolicy.java57
-rw-r--r--sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionGenericPolicyProcessor.java76
-rw-r--r--sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/TestAxisHandler.java43
-rw-r--r--sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/TestPolicyInterceptor.java80
13 files changed, 829 insertions, 0 deletions
diff --git a/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/Helloworld.java b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/Helloworld.java
new file mode 100644
index 0000000000..f4e8c50448
--- /dev/null
+++ b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/Helloworld.java
@@ -0,0 +1,28 @@
+/*
+ * 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 sample;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface Helloworld {
+
+ String sayHello(String name);
+
+}
diff --git a/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/HelloworldImpl.java b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/HelloworldImpl.java
new file mode 100644
index 0000000000..0b3fa55b79
--- /dev/null
+++ b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/HelloworldImpl.java
@@ -0,0 +1,42 @@
+/*
+ * 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 sample;
+
+import org.oasisopen.sca.annotation.Property;
+import org.oasisopen.sca.annotation.Reference;
+
+
+public class HelloworldImpl implements Helloworld {
+
+ @Reference(required=false)
+ protected Helloworld hwRef;
+
+ @Property
+ protected String componentName;
+
+ public String sayHello(String name) {
+ String returnString = name + "->" + componentName;
+ if (hwRef != null){
+ return hwRef.sayHello(returnString);
+ } else {
+ return returnString;
+ }
+ }
+
+}
diff --git a/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/ImplementationGenericPolicy.java b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/ImplementationGenericPolicy.java
new file mode 100644
index 0000000000..2014c9f27c
--- /dev/null
+++ b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/ImplementationGenericPolicy.java
@@ -0,0 +1,57 @@
+/*
+ * 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 sample;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.assembly.xml.Constants;
+
+/**
+ * A test policy that can be applied at various places along the message
+ * handling chain
+ *
+ * @version $Rev: 916315 $ $Date: 2010-02-25 15:12:44 +0000 (Thu, 25 Feb 2010) $
+ */
+public class ImplementationGenericPolicy {
+ public static final QName NAME = new QName(Constants.SCA11_TUSCANY_NS, "implementationGenericPolicy");
+
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public QName getSchemaName() {
+ return NAME;
+ }
+
+ public boolean isUnresolved() {
+ return false;
+ }
+
+ public void setUnresolved(boolean unresolved) {
+ // it's always resolved
+ }
+
+}
diff --git a/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/ImplementationGenericPolicyProcessor.java b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/ImplementationGenericPolicyProcessor.java
new file mode 100644
index 0000000000..313bf13bb5
--- /dev/null
+++ b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/ImplementationGenericPolicyProcessor.java
@@ -0,0 +1,80 @@
+/*
+ * 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 sample;
+
+import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
+import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.sca.assembly.xml.Constants;
+import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
+import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
+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.FactoryExtensionPoint;
+import org.apache.tuscany.sca.monitor.Monitor;
+
+public class ImplementationGenericPolicyProcessor implements StAXArtifactProcessor<ImplementationGenericPolicy> {
+
+ public ImplementationGenericPolicyProcessor(FactoryExtensionPoint modelFactories) {
+ }
+
+ public QName getArtifactType() {
+ return ImplementationGenericPolicy.NAME;
+ }
+
+ public Class<ImplementationGenericPolicy> getModelType() {
+ return ImplementationGenericPolicy.class;
+ }
+
+ public ImplementationGenericPolicy read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException {
+ ImplementationGenericPolicy policy = new ImplementationGenericPolicy();
+
+ String name = reader.getAttributeValue(null, "name");
+
+ if (name != null) {
+ policy.setName(name);
+ } else {
+ Monitor.error(context.getMonitor(),
+ this,
+ "policy-security-validation-messages",
+ "RequiredAttributeKeyStoreTypeMissing");
+ }
+
+ return policy;
+ }
+
+ public void write(ImplementationGenericPolicy model, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException,
+ XMLStreamException {
+ // TODO
+
+ }
+
+ public void resolve(ImplementationGenericPolicy model, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException {
+ // It's resolved when it's read
+ }
+
+}
diff --git a/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSPolicy.java b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSPolicy.java
new file mode 100644
index 0000000000..f70de96aa4
--- /dev/null
+++ b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSPolicy.java
@@ -0,0 +1,57 @@
+/*
+ * 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 sample;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.assembly.xml.Constants;
+
+/**
+ * A test policy that can be applied at various places along the message
+ * handling chain
+ *
+ * @version $Rev: 916315 $ $Date: 2010-02-25 15:12:44 +0000 (Thu, 25 Feb 2010) $
+ */
+public class InteractionBindingWSPolicy {
+ public static final QName NAME = new QName(Constants.SCA11_TUSCANY_NS, "interactionBindingWSPolicy");
+
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public QName getSchemaName() {
+ return NAME;
+ }
+
+ public boolean isUnresolved() {
+ return false;
+ }
+
+ public void setUnresolved(boolean unresolved) {
+ // it's always resolved
+ }
+
+}
diff --git a/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSPolicyProcessor.java b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSPolicyProcessor.java
new file mode 100644
index 0000000000..6d8f450e2a
--- /dev/null
+++ b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSPolicyProcessor.java
@@ -0,0 +1,76 @@
+/*
+ * 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 sample;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
+import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
+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.FactoryExtensionPoint;
+import org.apache.tuscany.sca.monitor.Monitor;
+
+public class InteractionBindingWSPolicyProcessor implements StAXArtifactProcessor<InteractionBindingWSPolicy> {
+
+ public InteractionBindingWSPolicyProcessor(FactoryExtensionPoint modelFactories) {
+ }
+
+ public QName getArtifactType() {
+ return InteractionBindingWSPolicy.NAME;
+ }
+
+ public Class<InteractionBindingWSPolicy> getModelType() {
+ return InteractionBindingWSPolicy.class;
+ }
+
+ public InteractionBindingWSPolicy read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException {
+ InteractionBindingWSPolicy policy = new InteractionBindingWSPolicy();
+
+ String name = reader.getAttributeValue(null, "name");
+
+ if (name != null) {
+ policy.setName(name);
+ } else {
+ Monitor.error(context.getMonitor(),
+ this,
+ "policy-security-validation-messages",
+ "RequiredAttributeKeyStoreTypeMissing");
+ }
+
+ return policy;
+ }
+
+ public void write(InteractionBindingWSPolicy model, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException,
+ XMLStreamException {
+ // TODO
+
+ }
+
+ public void resolve(InteractionBindingWSPolicy model, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException {
+ // It's resolved when it's read
+ }
+
+}
diff --git a/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSPolicyProviderFactory.java b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSPolicyProviderFactory.java
new file mode 100644
index 0000000000..3483b8b8ce
--- /dev/null
+++ b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSPolicyProviderFactory.java
@@ -0,0 +1,68 @@
+/*
+ * 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 sample;
+
+import org.apache.tuscany.sca.assembly.Endpoint;
+import org.apache.tuscany.sca.assembly.EndpointReference;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.provider.PolicyProvider;
+import org.apache.tuscany.sca.provider.PolicyProviderFactory;
+import org.apache.tuscany.sca.runtime.RuntimeComponent;
+
+/**
+ * @version $Rev: 792622 $ $Date: 2009-07-09 19:14:18 +0100 (Thu, 09 Jul 2009) $
+ */
+public class InteractionBindingWSPolicyProviderFactory implements PolicyProviderFactory<InteractionBindingWSPolicy> {
+ private ExtensionPointRegistry registry;
+
+ public InteractionBindingWSPolicyProviderFactory(ExtensionPointRegistry registry) {
+ super();
+ this.registry = registry;
+ }
+
+ /**
+ * @see org.apache.tuscany.sca.provider.PolicyProviderFactory#createImplementationPolicyProvider(org.apache.tuscany.sca.runtime.RuntimeComponent, org.apache.tuscany.sca.assembly.Implementation)
+ */
+ public PolicyProvider createImplementationPolicyProvider(RuntimeComponent component) {
+ return null;
+ }
+
+ /**
+ * @see org.apache.tuscany.sca.provider.PolicyProviderFactory#createReferencePolicyProvider(org.apache.tuscany.sca.runtime.RuntimeComponent, org.apache.tuscany.sca.runtime.RuntimeComponentReference, org.apache.tuscany.sca.assembly.Binding)
+ */
+ public PolicyProvider createReferencePolicyProvider(EndpointReference endpointReference) {
+ return new InteractionBindingWSReferencePolicyProvider(endpointReference);
+ }
+
+ /**
+ * @see org.apache.tuscany.sca.provider.PolicyProviderFactory#createServicePolicyProvider(org.apache.tuscany.sca.runtime.RuntimeComponent, org.apache.tuscany.sca.runtime.RuntimeComponentService, org.apache.tuscany.sca.assembly.Binding)
+ */
+ public PolicyProvider createServicePolicyProvider(Endpoint endpoint) {
+ return new InteractionBindingWSServicePolicyProvider(endpoint);
+ }
+
+ /**
+ * @see org.apache.tuscany.sca.provider.ProviderFactory#getModelType()
+ */
+ public Class<InteractionBindingWSPolicy> getModelType() {
+ return InteractionBindingWSPolicy.class;
+ }
+
+}
diff --git a/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSReferencePolicyProvider.java b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSReferencePolicyProvider.java
new file mode 100644
index 0000000000..e3c8393fbb
--- /dev/null
+++ b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSReferencePolicyProvider.java
@@ -0,0 +1,85 @@
+/*
+ * 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 sample;
+
+import java.util.List;
+
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.tuscany.sca.assembly.EndpointReference;
+import org.apache.tuscany.sca.binding.ws.axis2.provider.Axis2BaseBindingProvider;
+import org.apache.tuscany.sca.interfacedef.Operation;
+import org.apache.tuscany.sca.invocation.Phase;
+import org.apache.tuscany.sca.invocation.PhasedInterceptor;
+import org.apache.tuscany.sca.provider.BasePolicyProvider;
+
+/**
+ * @version $Rev: 792641 $ $Date: 2009-07-09 20:13:08 +0100 (Thu, 09 Jul 2009) $
+ */
+public class InteractionBindingWSReferencePolicyProvider extends BasePolicyProvider<InteractionBindingWSPolicy> {
+
+ private EndpointReference endpointReference;
+
+ public InteractionBindingWSReferencePolicyProvider(EndpointReference endpointReference) {
+ super(InteractionBindingWSPolicy.class, endpointReference);
+
+ this.endpointReference = endpointReference;
+ }
+
+ public void configureBinding(Object configuration) {
+ Axis2BaseBindingProvider bindingProvider = (Axis2BaseBindingProvider)configuration;
+ ConfigurationContext axisConfigurationContext = bindingProvider.getAxisConfigurationContext();
+ AxisConfiguration axisConfiguration = axisConfigurationContext.getAxisConfiguration();
+ List<org.apache.axis2.engine.Phase> outPhases = axisConfiguration.getOutFlowPhases();
+ outPhases.get(0).addHandler(new TestAxisHandler("Reference OutFlow Handler"));
+ List<org.apache.axis2.engine.Phase> inPhases = axisConfiguration.getInFlowPhases();
+ inPhases.get(0).addHandler(new TestAxisHandler("Reference InFlow Handler"));
+ }
+
+ public PhasedInterceptor createBindingInterceptor() {
+ List<InteractionBindingWSPolicy> policies = findPolicies();
+
+ if (policies.isEmpty()){
+ return null;
+ } else {
+ return new TestPolicyInterceptor(subject,
+ getContext(),
+ null,
+ policies,
+ Phase.REFERENCE_BINDING_POLICY);
+ }
+ }
+
+ public PhasedInterceptor createInterceptor(Operation operation) {
+ List<InteractionBindingWSPolicy> policies = findPolicies();
+
+ if (policies.isEmpty()){
+ return null;
+ } else {
+ return new TestPolicyInterceptor(subject,
+ getContext(),
+ operation,
+ policies,
+ Phase.REFERENCE_POLICY);
+ }
+ }
+
+}
diff --git a/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSServicePolicyProvider.java b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSServicePolicyProvider.java
new file mode 100644
index 0000000000..47d0a7378a
--- /dev/null
+++ b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionBindingWSServicePolicyProvider.java
@@ -0,0 +1,80 @@
+/*
+ * 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 sample;
+
+import java.util.List;
+
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.tuscany.sca.assembly.Endpoint;
+import org.apache.tuscany.sca.binding.ws.axis2.provider.Axis2BaseBindingProvider;
+import org.apache.tuscany.sca.interfacedef.Operation;
+import org.apache.tuscany.sca.invocation.Phase;
+import org.apache.tuscany.sca.invocation.PhasedInterceptor;
+import org.apache.tuscany.sca.provider.BasePolicyProvider;
+
+/**
+ * @version $Rev: 792641 $ $Date: 2009-07-09 20:13:08 +0100 (Thu, 09 Jul 2009) $
+ */
+public class InteractionBindingWSServicePolicyProvider extends BasePolicyProvider<InteractionBindingWSPolicy> {
+
+ public InteractionBindingWSServicePolicyProvider(Endpoint endpoint) {
+ super(InteractionBindingWSPolicy.class, endpoint);
+ }
+
+ public void configureBinding(Object configuration) {
+ Axis2BaseBindingProvider bindingProvider = (Axis2BaseBindingProvider)configuration;
+ ConfigurationContext axisConfigurationContext = bindingProvider.getAxisConfigurationContext();
+ AxisConfiguration axisConfiguration = axisConfigurationContext.getAxisConfiguration();
+ List<org.apache.axis2.engine.Phase> inPhases = axisConfiguration.getInFlowPhases();
+ inPhases.get(0).addHandler(new TestAxisHandler("Service InFlow Handler"));
+ List<org.apache.axis2.engine.Phase> outPhases = axisConfiguration.getOutFlowPhases();
+ outPhases.get(0).addHandler(new TestAxisHandler("Service OutFlow Handler"));
+ }
+
+ public PhasedInterceptor createBindingInterceptor() {
+ List<InteractionBindingWSPolicy> policies = findPolicies();
+
+ if (policies.isEmpty()){
+ return null;
+ } else {
+ return new TestPolicyInterceptor(subject,
+ getContext(),
+ null,
+ policies,
+ Phase.SERVICE_BINDING_POLICY);
+ }
+ }
+
+ public PhasedInterceptor createInterceptor(Operation operation) {
+ List<InteractionBindingWSPolicy> policies = findPolicies();
+
+ if (policies.isEmpty()){
+ return null;
+ } else {
+ return new TestPolicyInterceptor(subject,
+ getContext(),
+ operation,
+ policies,
+ Phase.SERVICE_POLICY);
+ }
+ }
+
+}
diff --git a/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionGenericPolicy.java b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionGenericPolicy.java
new file mode 100644
index 0000000000..bde92502e3
--- /dev/null
+++ b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionGenericPolicy.java
@@ -0,0 +1,57 @@
+/*
+ * 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 sample;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.assembly.xml.Constants;
+
+/**
+ * A test policy that can be applied at various places along the message
+ * handling chain
+ *
+ * @version $Rev: 916315 $ $Date: 2010-02-25 15:12:44 +0000 (Thu, 25 Feb 2010) $
+ */
+public class InteractionGenericPolicy {
+ public static final QName NAME = new QName(Constants.SCA11_TUSCANY_NS, "interactionGenericPolicy");
+
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public QName getSchemaName() {
+ return NAME;
+ }
+
+ public boolean isUnresolved() {
+ return false;
+ }
+
+ public void setUnresolved(boolean unresolved) {
+ // it's always resolved
+ }
+
+}
diff --git a/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionGenericPolicyProcessor.java b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionGenericPolicyProcessor.java
new file mode 100644
index 0000000000..30770d9cdf
--- /dev/null
+++ b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/InteractionGenericPolicyProcessor.java
@@ -0,0 +1,76 @@
+/*
+ * 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 sample;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.sca.contribution.processor.ContributionReadException;
+import org.apache.tuscany.sca.contribution.processor.ContributionResolveException;
+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.FactoryExtensionPoint;
+import org.apache.tuscany.sca.monitor.Monitor;
+
+public class InteractionGenericPolicyProcessor implements StAXArtifactProcessor<InteractionGenericPolicy> {
+
+ public InteractionGenericPolicyProcessor(FactoryExtensionPoint modelFactories) {
+ }
+
+ public QName getArtifactType() {
+ return InteractionGenericPolicy.NAME;
+ }
+
+ public Class<InteractionGenericPolicy> getModelType() {
+ return InteractionGenericPolicy.class;
+ }
+
+ public InteractionGenericPolicy read(XMLStreamReader reader, ProcessorContext context) throws ContributionReadException, XMLStreamException {
+ InteractionGenericPolicy policy = new InteractionGenericPolicy();
+
+ String name = reader.getAttributeValue(null, "name");
+
+ if (name != null) {
+ policy.setName(name);
+ } else {
+ Monitor.error(context.getMonitor(),
+ this,
+ "policy-security-validation-messages",
+ "RequiredAttributeKeyStoreTypeMissing");
+ }
+
+ return policy;
+ }
+
+ public void write(InteractionGenericPolicy model, XMLStreamWriter writer, ProcessorContext context) throws ContributionWriteException,
+ XMLStreamException {
+ // TODO
+
+ }
+
+ public void resolve(InteractionGenericPolicy model, ModelResolver resolver, ProcessorContext context) throws ContributionResolveException {
+ // It's resolved when it's read
+ }
+
+}
diff --git a/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/TestAxisHandler.java b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/TestAxisHandler.java
new file mode 100644
index 0000000000..2f0fd930d3
--- /dev/null
+++ b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/TestAxisHandler.java
@@ -0,0 +1,43 @@
+/*
+ * 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 sample;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.handlers.AbstractHandler;
+
+/**
+ * An Axis handler to show that policy can add one of needs be
+ *
+ * @version $Rev: 881959 $ $Date: 2009-11-18 22:07:09 +0000 (Wed, 18 Nov 2009) $
+ */
+public class TestAxisHandler extends AbstractHandler
+{
+ private String name;
+
+ public TestAxisHandler(String name)
+ {
+ this.name = name;
+ }
+
+ public InvocationResponse invoke(MessageContext msgContext) throws AxisFault {
+ System.out.println("TestAxisHandler.invoke() " + name);
+ return InvocationResponse.CONTINUE;
+ }
+}
diff --git a/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/TestPolicyInterceptor.java b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/TestPolicyInterceptor.java
new file mode 100644
index 0000000000..91df889a0b
--- /dev/null
+++ b/sca-java-2.x/trunk/unreleased/testing/itest/interceptors/src/main/java/sample/TestPolicyInterceptor.java
@@ -0,0 +1,80 @@
+/*
+ * 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 sample;
+
+import java.util.List;
+import java.util.logging.ConsoleHandler;
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.assembly.Component;
+import org.apache.tuscany.sca.assembly.Endpoint;
+import org.apache.tuscany.sca.assembly.EndpointReference;
+import org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl;
+import org.apache.tuscany.sca.interfacedef.Operation;
+import org.apache.tuscany.sca.invocation.Invoker;
+import org.apache.tuscany.sca.invocation.Message;
+import org.apache.tuscany.sca.invocation.PhasedInterceptor;
+import org.apache.tuscany.sca.policy.PolicySubject;
+
+/**
+ * Policy interceptor that tests the locations where interceptors can be
+ * added
+ *
+ * @version $Rev: 881959 $ $Date: 2009-11-18 22:07:09 +0000 (Wed, 18 Nov 2009) $
+ */
+public class TestPolicyInterceptor extends InterceptorAsyncImpl implements PhasedInterceptor{
+ //public static final QName policySetQName = new QName(JDKLoggingPolicy.SCA11_TUSCANY_NS, loggingPolicy);
+
+ private Operation operation;
+ private List<?> policies;
+ private PolicySubject subject;
+ private String context;
+ private String phase;
+
+ public TestPolicyInterceptor(PolicySubject subject,
+ String context,
+ Operation operation,
+ List<?> policies,
+ String phase) {
+ super();
+ this.operation = operation;
+ this.policies = policies;
+ this.subject = subject;
+ this.phase = phase;
+ this.context = context;
+ }
+
+ public Message processRequest(Message msg) {
+ System.out.println("TestPolicyInterceptor.processRequest() " + context + " @ " + phase);
+ return msg;
+ }
+
+ public Message processResponse(Message msg) {
+ System.out.println("TestPolicyInterceptor.processResponse() " + context + " @ " + phase);
+ return msg;
+ }
+
+ public String getPhase() {
+ return phase;
+ }
+}