Author: slaws
Date: Thu Feb 25 15:06:28 2010
New Revision: 916309
URL: http://svn.apache.org/viewvc?rev=916309&view=rev
Log:
Separate the common parts of the binding.ws reference and service binding
provider into a base class. Provides a common class that can be passed out for
policy configuration if separate reference and service side configuration is
not required.
Added:
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BaseBindingProvider.java
(with props)
Modified:
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProvider.java
Added:
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BaseBindingProvider.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BaseBindingProvider.java?rev=916309&view=auto
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BaseBindingProvider.java
(added)
+++
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BaseBindingProvider.java
Thu Feb 25 15:06:28 2010
@@ -0,0 +1,62 @@
+/*
+ * 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.binding.ws.axis2;
+
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
+import org.apache.tuscany.sca.host.http.SecurityContext;
+import org.apache.tuscany.sca.invocation.MessageFactory;
+
+public class Axis2BaseBindingProvider {
+
+ // Tuscany extensions
+ protected ExtensionPointRegistry extensionPoints;
+ protected FactoryExtensionPoint modelFactories;
+ protected MessageFactory messageFactory;
+
+ // derived policy configuration
+ protected boolean isSOAP12Required = false;
+ protected boolean isRampartRequired = false;
+ protected boolean isMTOMRequired = false;
+ protected boolean isJMSRequired = false;
+
+ // The Axis2 configuration that the binding creates
+ protected ConfigurationContext configContext;
+ protected SecurityContext httpSecurityContext;
+
+ public Axis2BaseBindingProvider(ExtensionPointRegistry extensionPoints) {
+
+ this.extensionPoints = extensionPoints;
+
+ this.modelFactories =
extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
+ this.messageFactory = modelFactories.getFactory(MessageFactory.class);
+
+ this.httpSecurityContext = new SecurityContext();
+ }
+
+ public ConfigurationContext getAxisConfigurationContext() {
+ return configContext;
+ }
+
+ public SecurityContext getHttpSecurityContext() {
+ return httpSecurityContext;
+ }
+
+}
Propchange:
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BaseBindingProvider.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BaseBindingProvider.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified:
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java?rev=916309&r1=916308&r2=916309&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ReferenceBindingProvider.java
Thu Feb 25 15:06:28 2010
@@ -46,7 +46,6 @@
import org.apache.axis2.addressing.EndpointReferenceHelper;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.description.AxisService;
import org.apache.axis2.transport.http.HTTPConstants;
import org.apache.axis2.util.threadpool.ThreadPool;
@@ -59,28 +58,21 @@
import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
import
org.apache.tuscany.sca.binding.ws.axis2.provider.Axis2ReferenceBindingInvoker;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.core.FactoryExtensionPoint;
import org.apache.tuscany.sca.interfacedef.InterfaceContract;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.invocation.InvocationChain;
import org.apache.tuscany.sca.invocation.Invoker;
-import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.invocation.Phase;
import org.apache.tuscany.sca.policy.util.PolicyHelper;
import org.apache.tuscany.sca.provider.EndpointReferenceProvider;
-import org.apache.tuscany.sca.provider.ReferenceBindingProvider;
+import org.apache.tuscany.sca.provider.PolicyProvider;
import org.apache.tuscany.sca.runtime.RuntimeComponent;
import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
import org.apache.tuscany.sca.runtime.RuntimeEndpointReference;
import org.oasisopen.sca.ServiceRuntimeException;
-public class Axis2ReferenceBindingProvider implements
EndpointReferenceProvider {
+public class Axis2ReferenceBindingProvider extends Axis2BaseBindingProvider
implements EndpointReferenceProvider {
- // Tuscany extensions
- private ExtensionPointRegistry extensionPoints;
- private FactoryExtensionPoint modelFactories;
- private MessageFactory messageFactory;
-
// the endpoint reference configuration that's driving this binding
provider
// and some convenience data retrieved from the endpoint reference
private RuntimeEndpointReference endpointReference;
@@ -88,26 +80,18 @@
private RuntimeComponentReference reference;
private WebServiceBinding wsBinding;
- // derived policy configuration
- private boolean isSOAP12Required = false;
- private boolean isRampartRequired = false;
- private boolean isMTOMRequired = false;
- private boolean isJMSRequired = false;
-
// The Axis2 configuration that the binding creates
- private ConfigurationContext configContext;
private ServiceClient serviceClient;
private AxisService axisClientSideService;
public Axis2ReferenceBindingProvider(ExtensionPointRegistry
extensionPoints,
EndpointReference endpointReference) {
+
+ super(extensionPoints);
- this.extensionPoints = extensionPoints;
this.endpointReference = (RuntimeEndpointReference)endpointReference;
- this.modelFactories =
extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
- this.messageFactory = modelFactories.getFactory(MessageFactory.class);
this.wsBinding = (WebServiceBinding)endpointReference.getBinding();
this.component = (RuntimeComponent)endpointReference.getComponent();
this.reference =
(RuntimeComponentReference)endpointReference.getReference();
@@ -127,13 +111,18 @@
isMTOMRequired = PolicyHelper.isIntentRequired(wsBinding,
Axis2BindingProviderFactory.MTOM_INTENT);
- // this is not correct as there may be other, custom, policies that
+ // TODO - this is not correct as there may be other, custom, policies
that
// require rampart. For example this is not going to pick up the case
// of external policy attachment
isRampartRequired = PolicyHelper.isIntentRequired(wsBinding,
Constants.AUTHENTICATION_INTENT) ||
PolicyHelper.isIntentRequired(wsBinding,
Constants.CONFIDENTIALITY_INTENT) ||
PolicyHelper.isIntentRequired(wsBinding,
Constants.INTEGRITY_INTENT);
+ // Apply the configuration from any other policies
+
+ for (PolicyProvider pp : this.endpointReference.getPolicyProviders()) {
+ pp.configureBinding(this);
+ }
}
public void start() {
Modified:
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java?rev=916309&r1=916308&r2=916309&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceBindingProvider.java
Thu Feb 25 15:06:28 2010
@@ -58,17 +58,14 @@
import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
import org.oasisopen.sca.ServiceRuntimeException;
-public class Axis2ServiceBindingProvider implements ServiceBindingProvider {
+public class Axis2ServiceBindingProvider extends Axis2BaseBindingProvider
implements ServiceBindingProvider {
private static final Logger logger =
Logger.getLogger(Axis2ServiceBindingProvider.class.getName());
// Tuscany extensions
- private ExtensionPointRegistry extensionPoints;
+ private AssemblyFactory assemblyFactory;
private ServletHost servletHost;
private RuntimeComponent component;
private RuntimeComponentService service;
- private MessageFactory messageFactory;
- private FactoryExtensionPoint modelFactories;
- private RuntimeAssemblyFactory assemblyFactory;
// the endpoint configuration that's driving this binding provider
// and some convenience data retrieved from the endpoint
@@ -77,27 +74,20 @@
private Port wsdlPort;
private String endpointURI;
private InterfaceContract contract;
-
- // derived policy configuration
- private boolean isSOAP12Required = false;
- private boolean isRampartRequired = false;
- private boolean isMTOMRequired = false;
- private boolean isJMSRequired = false;
-
+
// The Axis2 configuration that the binding creates
- private ConfigurationContext configContext;
private JMSSender jmsSender;
private JMSListener jmsListener;
public Axis2ServiceBindingProvider(ExtensionPointRegistry extensionPoints,
RuntimeEndpoint endpoint,
ServletHost servletHost ) {
+ super(extensionPoints);
+
this.extensionPoints = extensionPoints;
this.endpoint = endpoint;
this.servletHost = servletHost;
- this.modelFactories =
extensionPoints.getExtensionPoint(FactoryExtensionPoint.class);
- this.messageFactory = modelFactories.getFactory(MessageFactory.class);
this.assemblyFactory =
(RuntimeAssemblyFactory)modelFactories.getFactory(AssemblyFactory.class);
this.wsBinding = (WebServiceBinding)endpoint.getBinding();
this.component = (RuntimeComponent)endpoint.getComponent();
@@ -162,9 +152,7 @@
// Apply the configuration from any other policies
for (PolicyProvider pp : endpoint.getPolicyProviders()) {
- // we probably want to pass the whole provider in here
- // so that the policy providers can get at the rampart
configuration
- pp.configureBinding(configContext);
+ pp.configureBinding(this);
}
// Apply the configuration from the mayProvides intents
@@ -193,7 +181,12 @@
endpointURI.startsWith("/")) {
Axis2ServiceServlet servlet = new Axis2ServiceServlet();
servlet.init(configContext);
- servletHost.addServletMapping(endpointURI, servlet);
+
+ if (httpSecurityContext.isSSLEnabled()){
+ servletHost.addServletMapping(endpointURI, servlet,
httpSecurityContext);
+ } else {
+ servletHost.addServletMapping(endpointURI, servlet);
+ }
} else if (endpointURI.startsWith("jms")) {
logger.log(Level.INFO, "Axis2 JMS URL=" + endpointURI);
Modified:
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProvider.java
URL:
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProvider.java?rev=916309&r1=916308&r2=916309&view=diff
==============================================================================
---
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProvider.java
(original)
+++
tuscany/sca-java-2.x/trunk/modules/binding-ws-runtime-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProvider.java
Thu Feb 25 15:06:28 2010
@@ -22,6 +22,7 @@
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.description.Parameter;
+import org.apache.tuscany.sca.binding.ws.axis2.Axis2BaseBindingProvider;
import org.apache.tuscany.sca.policy.PolicySubject;
import org.apache.tuscany.sca.provider.BasePolicyProvider;
import org.oasisopen.sca.ServiceRuntimeException;
@@ -35,7 +36,8 @@
super(Axis2ConfigParamPolicy.class, subject);
}
- public void configureBinding(ConfigurationContext configurationContext) {
+ public void configureBinding(Object context) {
+ ConfigurationContext configurationContext =
((Axis2BaseBindingProvider)context).getAxisConfigurationContext();
Axis2ConfigParamPolicy axis2ConfigParamPolicy = null;
Parameter configParam = null;
for (Object policy : findPolicies()) {