From 9059026361e282b7f867817bcf8fd721030c8f8d Mon Sep 17 00:00:00 2001 From: rfeng Date: Wed, 8 Jul 2009 23:39:36 +0000 Subject: Refactor the PolicyProviderFactory to take Endpoint and EndpointReference git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@792358 13f79535-47bb-0310-9956-ffa450edef68 --- ...s2TokenAuthenticationPolicyProviderFactory.java | 34 ++--- ...enAuthenticationReferencePolicyInterceptor.java | 10 +- ...TokenAuthenticationReferencePolicyProvider.java | 50 +++---- ...okenAuthenticationServicePolicyInterceptor.java | 9 +- ...s2TokenAuthenticationServicePolicyProvider.java | 47 +++---- .../Axis2ConfigParamPolicyProviderFactory.java | 28 +--- .../header/Axis2HeaderPolicyProviderFactory.java | 34 ++--- .../Axis2HeaderReferencePolicyInterceptor.java | 12 +- .../header/Axis2HeaderReferencePolicyProvider.java | 51 +++---- .../Axis2HeaderServicePolicyInterceptor.java | 10 +- .../header/Axis2HeaderServicePolicyProvider.java | 48 +++---- .../tuscany/sca/invocation/InvocationChain.java | 19 --- .../tuscany/sca/invocation/PhasedInterceptor.java | 31 +++++ .../tuscany/sca/provider/BasePolicyProvider.java | 149 +++++++++++++++++++++ .../DefaultProviderFactoryExtensionPoint.java | 17 +-- .../tuscany/sca/provider/PolicyProvider.java | 16 ++- .../sca/provider/PolicyProviderFactory.java | 31 ++--- .../tuscany/sca/provider/PolicyProviderRRB.java | 4 +- .../core/assembly/impl/CompositeActivatorImpl.java | 32 ++++- .../impl/RuntimeComponentReferenceImpl.java | 10 +- .../assembly/impl/RuntimeComponentServiceImpl.java | 8 +- .../sca/core/assembly/impl/RuntimeWireImpl.java | 16 ++- .../core/invocation/impl/InvocationChainImpl.java | 26 ++-- ...CallbackInterfaceInterceptorTestCase.java.fixme | 62 --------- .../impl/InvocationChainImplTestCase.java | 3 - .../impl/NonBlockingInterceptorTestCase.java.fixme | 74 ---------- .../BasicAuthenticationPolicyProviderFactory.java | 36 ++--- ...icAuthenticationReferencePolicyInterceptor.java | 9 +- ...BasicAuthenticationReferencePolicyProvider.java | 50 +++---- ...asicAuthenticationServicePolicyInterceptor.java | 10 +- .../BasicAuthenticationServicePolicyProvider.java | 48 +++---- ...ityIdentityImplementationPolicyInterceptor.java | 10 +- ...curityIdentityImplementationPolicyProvider.java | 15 ++- .../SecurityIdentityPolicyProviderFactory.java | 35 ++--- ...AuthenticationImplementationPolicyProvider.java | 15 ++- .../jaas/JaasAuthenticationInterceptor.java | 9 +- .../JaasAuthenticationPolicyProviderFactory.java | 24 +--- 37 files changed, 493 insertions(+), 599 deletions(-) create mode 100644 java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/PhasedInterceptor.java create mode 100644 java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/BasePolicyProvider.java delete mode 100644 java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/CallbackInterfaceInterceptorTestCase.java.fixme delete mode 100644 java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/NonBlockingInterceptorTestCase.java.fixme (limited to 'java') diff --git a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationPolicyProviderFactory.java b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationPolicyProviderFactory.java index 805d6f80cb..af9689bc2a 100644 --- a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationPolicyProviderFactory.java +++ b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationPolicyProviderFactory.java @@ -19,14 +19,12 @@ package org.apache.tuscany.sca.binding.ws.axis2.policy.authentication.token; -import org.apache.tuscany.sca.assembly.Binding; -import org.apache.tuscany.sca.assembly.Implementation; +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; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; /** * @version $Rev: 695374 $ $Date: 2008-09-15 09:07:58 +0100 (Mon, 15 Sep 2008) $ @@ -39,37 +37,23 @@ public class Axis2TokenAuthenticationPolicyProviderFactory implements PolicyProv 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, Implementation implementation) { + public PolicyProvider createImplementationPolicyProvider(RuntimeComponent component) { return null;//new TokenAuthenticationImplementationPolicyProvider(component, implementation); } - /** - * @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(RuntimeComponent component, - RuntimeComponentReference reference, - Binding binding) { - return new Axis2TokenAuthenticationReferencePolicyProvider(component, reference, binding); + public PolicyProvider createReferencePolicyProvider(EndpointReference endpointReference) { + return new Axis2TokenAuthenticationReferencePolicyProvider(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(RuntimeComponent component, - RuntimeComponentService service, - Binding binding) { - return new Axis2TokenAuthenticationServicePolicyProvider(component, service, binding); + public PolicyProvider createServicePolicyProvider(Endpoint endpoint) { + return new Axis2TokenAuthenticationServicePolicyProvider(endpoint); } /** * @see org.apache.tuscany.sca.provider.ProviderFactory#getModelType() */ - public Class getModelType() { - // TODO Auto-generated method stub - return null; + public Class getModelType() { + return Axis2TokenAuthenticationPolicy.class; } } diff --git a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationReferencePolicyInterceptor.java b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationReferencePolicyInterceptor.java index 0046d3d6ca..d9e4373c2f 100644 --- a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationReferencePolicyInterceptor.java +++ b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationReferencePolicyInterceptor.java @@ -20,9 +20,10 @@ package org.apache.tuscany.sca.binding.ws.axis2.policy.authentication.token; import org.apache.tuscany.sca.binding.ws.axis2.policy.header.Axis2SOAPHeaderString; import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Interceptor; import org.apache.tuscany.sca.invocation.Invoker; import org.apache.tuscany.sca.invocation.Message; +import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; import org.apache.tuscany.sca.policy.PolicySet; /** @@ -31,7 +32,7 @@ import org.apache.tuscany.sca.policy.PolicySet; * * @version $Rev: 698457 $ $Date: 2008-09-24 09:13:02 +0100 (Wed, 24 Sep 2008) $ */ -public class Axis2TokenAuthenticationReferencePolicyInterceptor implements Interceptor { +public class Axis2TokenAuthenticationReferencePolicyInterceptor implements PhasedInterceptor { private Invoker next; private Operation operation; @@ -81,4 +82,9 @@ public class Axis2TokenAuthenticationReferencePolicyInterceptor implements Inter public void setNext(Invoker next) { this.next = next; } + + public String getPhase() { + return Phase.REFERENCE_POLICY; + } + } diff --git a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationReferencePolicyProvider.java b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationReferencePolicyProvider.java index 4753012de4..94fcb236f8 100644 --- a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationReferencePolicyProvider.java +++ b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationReferencePolicyProvider.java @@ -21,41 +21,29 @@ package org.apache.tuscany.sca.binding.ws.axis2.policy.authentication.token; import java.util.List; -import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.EndpointReference; import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Interceptor; -import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; import org.apache.tuscany.sca.policy.PolicySet; -import org.apache.tuscany.sca.policy.PolicySubject; import org.apache.tuscany.sca.provider.PolicyProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; /** * @version $Rev: 695374 $ $Date: 2008-09-15 09:07:58 +0100 (Mon, 15 Sep 2008) $ */ public class Axis2TokenAuthenticationReferencePolicyProvider implements PolicyProvider { - private RuntimeComponent component; - private RuntimeComponentReference reference; - private Binding binding; + private EndpointReference endpointReference; - public Axis2TokenAuthenticationReferencePolicyProvider(RuntimeComponent component, - RuntimeComponentReference reference, - Binding binding) { + public Axis2TokenAuthenticationReferencePolicyProvider(EndpointReference endpointReference) { super(); - this.component = component; - this.reference = reference; - this.binding = binding; + this.endpointReference = endpointReference; } private PolicySet findPolicySet() { - if (binding instanceof PolicySubject) { - List policySets = ((PolicySubject)binding).getPolicySets(); - for (PolicySet ps : policySets) { - for (Object p : ps.getPolicies()) { - if (Axis2TokenAuthenticationPolicy.class.isInstance(p)) { - return ps; - } + List policySets = endpointReference.getPolicySets(); + for (PolicySet ps : policySets) { + for (Object p : ps.getPolicies()) { + if (Axis2TokenAuthenticationPolicy.class.isInstance(p)) { + return ps; } } } @@ -63,27 +51,21 @@ public class Axis2TokenAuthenticationReferencePolicyProvider implements PolicyPr } private String getContext() { - return "component.reference: " + component.getURI() - + "#" - + reference.getName() - + "(" - + binding.getClass().getName() - + ")"; + return endpointReference.getURI(); } /** * @see org.apache.tuscany.sca.provider.PolicyProvider#createInterceptor(org.apache.tuscany.sca.interfacedef.Operation) */ - public Interceptor createInterceptor(Operation operation) { + public PhasedInterceptor createInterceptor(Operation operation) { PolicySet ps = findPolicySet(); return ps == null ? null : new Axis2TokenAuthenticationReferencePolicyInterceptor(getContext(), operation, ps); } + + public void start() { + } - /** - * @see org.apache.tuscany.sca.provider.PolicyProvider#getPhase() - */ - public String getPhase() { - return Phase.REFERENCE_POLICY; + public void stop() { } } diff --git a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationServicePolicyInterceptor.java b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationServicePolicyInterceptor.java index cf081e1121..33f7d97869 100644 --- a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationServicePolicyInterceptor.java +++ b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationServicePolicyInterceptor.java @@ -26,9 +26,10 @@ import javax.security.auth.Subject; import org.apache.tuscany.sca.binding.ws.axis2.policy.header.Axis2HeaderPolicyUtil; import org.apache.tuscany.sca.binding.ws.axis2.policy.header.Axis2SOAPHeaderString; import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Interceptor; import org.apache.tuscany.sca.invocation.Invoker; import org.apache.tuscany.sca.invocation.Message; +import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; import org.apache.tuscany.sca.policy.PolicySet; import org.apache.tuscany.sca.policy.authentication.token.TokenPrincipal; import org.apache.tuscany.sca.policy.security.SecurityUtil; @@ -39,7 +40,7 @@ import org.apache.tuscany.sca.policy.security.SecurityUtil; * * @version $Rev: 721811 $ $Date: 2008-11-30 13:46:51 +0000 (Sun, 30 Nov 2008) $ */ -public class Axis2TokenAuthenticationServicePolicyInterceptor implements Interceptor { +public class Axis2TokenAuthenticationServicePolicyInterceptor implements PhasedInterceptor { private Invoker next; private Operation operation; private PolicySet policySet = null; @@ -90,4 +91,8 @@ public class Axis2TokenAuthenticationServicePolicyInterceptor implements Interce public void setNext(Invoker next) { this.next = next; } + + public String getPhase() { + return Phase.SERVICE_POLICY; + } } diff --git a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationServicePolicyProvider.java b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationServicePolicyProvider.java index d1be46d1ce..e229a7d328 100644 --- a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationServicePolicyProvider.java +++ b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationServicePolicyProvider.java @@ -21,39 +21,29 @@ package org.apache.tuscany.sca.binding.ws.axis2.policy.authentication.token; import java.util.List; -import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Endpoint; import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Interceptor; -import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; import org.apache.tuscany.sca.policy.PolicySet; -import org.apache.tuscany.sca.policy.PolicySubject; import org.apache.tuscany.sca.provider.PolicyProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; /** * @version $Rev: 695374 $ $Date: 2008-09-15 09:07:58 +0100 (Mon, 15 Sep 2008) $ */ public class Axis2TokenAuthenticationServicePolicyProvider implements PolicyProvider { - private RuntimeComponent component; - private RuntimeComponentService service; - private Binding binding; + private Endpoint endpoint; - public Axis2TokenAuthenticationServicePolicyProvider(RuntimeComponent component, RuntimeComponentService service, Binding binding) { + public Axis2TokenAuthenticationServicePolicyProvider(Endpoint endpoint) { super(); - this.component = component; - this.service = service; - this.binding = binding; + this.endpoint = endpoint; } private PolicySet findPolicySet() { - if (binding instanceof PolicySubject) { - List policySets = ((PolicySubject)binding).getPolicySets(); - for (PolicySet ps : policySets) { - for (Object p : ps.getPolicies()) { - if (Axis2TokenAuthenticationPolicy.class.isInstance(p)) { - return ps; - } + List policySets = endpoint.getPolicySets(); + for (PolicySet ps : policySets) { + for (Object p : ps.getPolicies()) { + if (Axis2TokenAuthenticationPolicy.class.isInstance(p)) { + return ps; } } } @@ -61,27 +51,20 @@ public class Axis2TokenAuthenticationServicePolicyProvider implements PolicyProv } private String getContext() { - return "component.service: " + component.getURI() - + "#" - + service.getName() - + "(" - + binding.getClass().getName() - + ")"; + return endpoint.getURI(); } /** * @see org.apache.tuscany.sca.provider.PolicyProvider#createInterceptor(org.apache.tuscany.sca.interfacedef.Operation) */ - public Interceptor createInterceptor(Operation operation) { + public PhasedInterceptor createInterceptor(Operation operation) { PolicySet ps = findPolicySet(); return ps == null ? null : new Axis2TokenAuthenticationServicePolicyInterceptor(getContext(), operation, ps); } - /** - * @see org.apache.tuscany.sca.provider.PolicyProvider#getPhase() - */ - public String getPhase() { - return Phase.SERVICE_POLICY; + public void start() { } + public void stop() { + } } diff --git a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProviderFactory.java b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProviderFactory.java index ed4335baa7..c224e7615a 100644 --- a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProviderFactory.java +++ b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProviderFactory.java @@ -22,15 +22,13 @@ package org.apache.tuscany.sca.binding.ws.axis2.policy.configuration; import org.apache.axis2.AxisFault; import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.description.Parameter; -import org.apache.tuscany.sca.assembly.Binding; -import org.apache.tuscany.sca.assembly.Implementation; +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.policy.PolicySet; import org.apache.tuscany.sca.provider.PolicyProvider; import org.apache.tuscany.sca.provider.PolicyProviderFactory; import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; import org.oasisopen.sca.ServiceRuntimeException; /** @@ -42,34 +40,18 @@ public class Axis2ConfigParamPolicyProviderFactory implements PolicyProviderFact super(); } - /** - * @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, Implementation 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(RuntimeComponent component, - RuntimeComponentReference reference, - Binding binding) { + public PolicyProvider createReferencePolicyProvider(EndpointReference endpointReference) { return null; } - /** - * @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(RuntimeComponent component, - RuntimeComponentService service, - Binding binding) { + public PolicyProvider createServicePolicyProvider(Endpoint endpoint) { return null; } - /** - * @see org.apache.tuscany.sca.provider.ProviderFactory#getModelType() - */ public Class getModelType() { return Axis2ConfigParamPolicy.class; } diff --git a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderPolicyProviderFactory.java b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderPolicyProviderFactory.java index 71833df382..64d816a8e7 100644 --- a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderPolicyProviderFactory.java +++ b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderPolicyProviderFactory.java @@ -19,14 +19,12 @@ package org.apache.tuscany.sca.binding.ws.axis2.policy.header; -import org.apache.tuscany.sca.assembly.Binding; -import org.apache.tuscany.sca.assembly.Implementation; +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; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; /** * @version $Rev$ $Date$ @@ -39,37 +37,23 @@ public class Axis2HeaderPolicyProviderFactory implements PolicyProviderFactory getModelType() { + return Axis2HeaderPolicy.class; } } diff --git a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderReferencePolicyInterceptor.java b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderReferencePolicyInterceptor.java index 35c8a68be2..9c2418a44f 100644 --- a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderReferencePolicyInterceptor.java +++ b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderReferencePolicyInterceptor.java @@ -19,18 +19,17 @@ package org.apache.tuscany.sca.binding.ws.axis2.policy.header; import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Interceptor; import org.apache.tuscany.sca.invocation.Invoker; import org.apache.tuscany.sca.invocation.Message; +import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; import org.apache.tuscany.sca.policy.PolicySet; /** - * Policy handler to handle PolicySet related to Logging with the QName - * {http://tuscany.apache.org/xmlns/sca/1.1/impl/java}LoggingPolicy * * @version $Rev$ $Date$ */ -public class Axis2HeaderReferencePolicyInterceptor implements Interceptor { +public class Axis2HeaderReferencePolicyInterceptor implements PhasedInterceptor { private Invoker next; private Operation operation; private PolicySet policySet = null; @@ -69,4 +68,9 @@ public class Axis2HeaderReferencePolicyInterceptor implements Interceptor { public void setNext(Invoker next) { this.next = next; } + + public String getPhase() { + return Phase.REFERENCE_POLICY; + } + } diff --git a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderReferencePolicyProvider.java b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderReferencePolicyProvider.java index d0fc58cd33..9037f3d9de 100644 --- a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderReferencePolicyProvider.java +++ b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderReferencePolicyProvider.java @@ -21,42 +21,29 @@ package org.apache.tuscany.sca.binding.ws.axis2.policy.header; import java.util.List; -import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.EndpointReference; import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Interceptor; -import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; import org.apache.tuscany.sca.policy.PolicySet; -import org.apache.tuscany.sca.policy.PolicySubject; import org.apache.tuscany.sca.provider.PolicyProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; /** * @version $Rev$ $Date$ */ public class Axis2HeaderReferencePolicyProvider implements PolicyProvider { - private RuntimeComponent component; - private RuntimeComponentReference reference; - private Binding binding; + private EndpointReference endpointReference; - public Axis2HeaderReferencePolicyProvider(RuntimeComponent component, - RuntimeComponentReference reference, - Binding binding) { + public Axis2HeaderReferencePolicyProvider(EndpointReference endpointReference) { super(); - this.component = component; - this.reference = reference; - this.binding = binding; + this.endpointReference = endpointReference; } - // FIXME: Need to use the endpoint with effective policies private PolicySet findPolicySet() { - if (binding instanceof PolicySubject) { - List policySets = ((PolicySubject)binding).getPolicySets(); - for (PolicySet ps : policySets) { - for (Object p : ps.getPolicies()) { - if (Axis2HeaderPolicy.class.isInstance(p)) { - return ps; - } + List policySets = endpointReference.getPolicySets(); + for (PolicySet ps : policySets) { + for (Object p : ps.getPolicies()) { + if (Axis2HeaderPolicy.class.isInstance(p)) { + return ps; } } } @@ -64,27 +51,21 @@ public class Axis2HeaderReferencePolicyProvider implements PolicyProvider { } private String getContext() { - return "component.reference: " + component.getURI() - + "#" - + reference.getName() - + "(" - + binding.getClass().getName() - + ")"; + return endpointReference.getURI(); } /** * @see org.apache.tuscany.sca.provider.PolicyProvider#createInterceptor(org.apache.tuscany.sca.interfacedef.Operation) */ - public Interceptor createInterceptor(Operation operation) { + public PhasedInterceptor createInterceptor(Operation operation) { PolicySet ps = findPolicySet(); return ps == null ? null : new Axis2HeaderReferencePolicyInterceptor(getContext(), operation, ps); } - /** - * @see org.apache.tuscany.sca.provider.PolicyProvider#getPhase() - */ - public String getPhase() { - return Phase.REFERENCE_POLICY; + public void start() { + } + + public void stop() { } } diff --git a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderServicePolicyInterceptor.java b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderServicePolicyInterceptor.java index c6758aea48..a05f04ad01 100644 --- a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderServicePolicyInterceptor.java +++ b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderServicePolicyInterceptor.java @@ -20,9 +20,10 @@ package org.apache.tuscany.sca.binding.ws.axis2.policy.header; import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Interceptor; import org.apache.tuscany.sca.invocation.Invoker; import org.apache.tuscany.sca.invocation.Message; +import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; import org.apache.tuscany.sca.policy.PolicySet; /** @@ -31,7 +32,7 @@ import org.apache.tuscany.sca.policy.PolicySet; * * @version $Rev$ $Date$ */ -public class Axis2HeaderServicePolicyInterceptor implements Interceptor { +public class Axis2HeaderServicePolicyInterceptor implements PhasedInterceptor { private Invoker next; private Operation operation; private PolicySet policySet = null; @@ -70,4 +71,9 @@ public class Axis2HeaderServicePolicyInterceptor implements Interceptor { public void setNext(Invoker next) { this.next = next; } + + public String getPhase() { + return Phase.SERVICE_POLICY; + } + } diff --git a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderServicePolicyProvider.java b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderServicePolicyProvider.java index 3cb6d8007b..88c77711eb 100644 --- a/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderServicePolicyProvider.java +++ b/java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderServicePolicyProvider.java @@ -21,39 +21,29 @@ package org.apache.tuscany.sca.binding.ws.axis2.policy.header; import java.util.List; -import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Endpoint; import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Interceptor; -import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; import org.apache.tuscany.sca.policy.PolicySet; -import org.apache.tuscany.sca.policy.PolicySubject; import org.apache.tuscany.sca.provider.PolicyProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; /** * @version $Rev$ $Date$ */ public class Axis2HeaderServicePolicyProvider implements PolicyProvider { - private RuntimeComponent component; - private RuntimeComponentService service; - private Binding binding; + private Endpoint endpoint; - public Axis2HeaderServicePolicyProvider(RuntimeComponent component, RuntimeComponentService service, Binding binding) { + public Axis2HeaderServicePolicyProvider(Endpoint endpoint) { super(); - this.component = component; - this.service = service; - this.binding = binding; + this.endpoint = endpoint; } private PolicySet findPolicySet() { - if (binding instanceof PolicySubject) { - List policySets = ((PolicySubject)binding).getPolicySets(); - for (PolicySet ps : policySets) { - for (Object p : ps.getPolicies()) { - if (Axis2HeaderPolicy.class.isInstance(p)) { - return ps; - } + List policySets = endpoint.getPolicySets(); + for (PolicySet ps : policySets) { + for (Object p : ps.getPolicies()) { + if (Axis2HeaderPolicy.class.isInstance(p)) { + return ps; } } } @@ -61,27 +51,21 @@ public class Axis2HeaderServicePolicyProvider implements PolicyProvider { } private String getContext() { - return "component.service: " + component.getURI() - + "#" - + service.getName() - + "(" - + binding.getClass().getName() - + ")"; + return endpoint.getURI(); } /** * @see org.apache.tuscany.sca.provider.PolicyProvider#createInterceptor(org.apache.tuscany.sca.interfacedef.Operation) */ - public Interceptor createInterceptor(Operation operation) { + public PhasedInterceptor createInterceptor(Operation operation) { PolicySet ps = findPolicySet(); return ps == null ? null : new Axis2HeaderServicePolicyInterceptor(getContext(), operation, ps); } - /** - * @see org.apache.tuscany.sca.provider.PolicyProvider#getPhase() - */ - public String getPhase() { - return Phase.SERVICE_POLICY; + public void start() { + } + + public void stop() { } } diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/InvocationChain.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/InvocationChain.java index 75719bb0cc..8d6578baa6 100644 --- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/InvocationChain.java +++ b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/InvocationChain.java @@ -73,25 +73,6 @@ public interface InvocationChain { */ Invoker getHeadInvoker(); - /** - * @deprecated This method is not used - * Returns the last invoker in the chain. - * - * @return The last invoker in the chain - */ - @Deprecated - Invoker getTailInvoker(); - - /** - * @deprecated Please use void addInterceptor(String phase, Interceptor interceptor); - * Adds an interceptor at the given position in the interceptor stack - * - * @param index The position in the interceptor stack to add the interceptor - * @param interceptor The interceptor to add - */ - @Deprecated - void addInterceptor(int index, Interceptor interceptor); - /** * Add an interceptor to the given phase * @param phase diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/PhasedInterceptor.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/PhasedInterceptor.java new file mode 100644 index 0000000000..f5390f7460 --- /dev/null +++ b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/PhasedInterceptor.java @@ -0,0 +1,31 @@ +/* + * 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.invocation; + +/** + * An interceptor that is designated to be a given phase + */ +public interface PhasedInterceptor extends Interceptor { + /** + * Get the name of the phase that this interceptor is positioned + * @return + */ + String getPhase(); +} diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/BasePolicyProvider.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/BasePolicyProvider.java new file mode 100644 index 0000000000..fe58c65a1c --- /dev/null +++ b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/BasePolicyProvider.java @@ -0,0 +1,149 @@ +/* + * 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.provider; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.assembly.Component; +import org.apache.tuscany.sca.assembly.ComponentService; +import org.apache.tuscany.sca.assembly.Endpoint; +import org.apache.tuscany.sca.assembly.EndpointReference; +import org.apache.tuscany.sca.interfacedef.Operation; +import org.apache.tuscany.sca.invocation.InvocationChain; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; +import org.apache.tuscany.sca.policy.PolicySet; +import org.apache.tuscany.sca.policy.PolicySubject; +import org.apache.tuscany.sca.runtime.RuntimeComponentReference; +import org.apache.tuscany.sca.runtime.RuntimeComponentService; +import org.apache.tuscany.sca.runtime.RuntimeWire; + +/** + * Abstract base class for policy providers + */ +public abstract class BasePolicyProvider implements PolicyProvider { + protected Class policyType; + protected PolicySubject subject; + + protected BasePolicyProvider(Class policyType, PolicySubject subject) { + this.policyType = policyType; + this.subject = subject; + } + + protected List findPolicies() { + List policies = new ArrayList(); + List policySets = subject.getPolicySets(); + for (PolicySet ps : policySets) { + for (Object p : ps.getPolicies()) { + if (policyType.isInstance(p)) { + policies.add(policyType.cast(p)); + } + } + } + return policies; + } + + protected List findPolicySets() { + List policies = new ArrayList(); + List policySets = subject.getPolicySets(); + for (PolicySet ps : policySets) { + for (Object p : ps.getPolicies()) { + if (policyType.isInstance(p)) { + policies.add(ps); + } + } + } + return policies; + } + + protected PolicySet findPolicySet() { + List policySets = subject.getPolicySets(); + for (PolicySet ps : policySets) { + for (Object p : ps.getPolicies()) { + if (policyType.isInstance(p)) { + return ps; + } + } + } + return null; + } + + protected String getContext() { + if (subject instanceof Endpoint) { + Endpoint endpoint = (Endpoint)subject; + return endpoint.getURI(); + } else if (subject instanceof EndpointReference) { + EndpointReference endpointReference = (EndpointReference)subject; + return endpointReference.getURI(); + } else if (subject instanceof Component) { + Component component = (Component)subject; + return component.getURI(); + } + return null; + } + + public void start() { + } + + public void stop() { + } + + public PhasedInterceptor createInterceptor(Operation operation) { + return null; + } + + private InvocationChain getInvocationChain() { + if (subject instanceof Endpoint) { + Endpoint endpoint = (Endpoint)subject; + RuntimeComponentService service = (RuntimeComponentService)endpoint.getService(); + RuntimeWire wire = service.getRuntimeWire(endpoint.getBinding()); + List chains = wire.getInvocationChains(); + for (InvocationChain chain : chains) { + configure(chain, chain.getTargetOperation()); + } + + } else if (subject instanceof EndpointReference) { + EndpointReference endpointReference = (EndpointReference)subject; + RuntimeComponentReference reference = (RuntimeComponentReference)endpointReference.getReference(); + RuntimeWire wire = reference.getRuntimeWire(endpointReference.getBinding()); + List chains = wire.getInvocationChains(); + for (InvocationChain chain : chains) { + configure(chain, chain.getSourceOperation()); + } + } else if (subject instanceof Component) { + Component component = (Component)subject; + for (ComponentService s : component.getServices()) { + RuntimeComponentService service = (RuntimeComponentService)s; + for (RuntimeWire wire : service.getRuntimeWires()) { + List chains = wire.getInvocationChains(); + for (InvocationChain chain : chains) { + configure(chain, chain.getTargetOperation()); + } + } + + } + } + return null; + } + + protected void configure(InvocationChain invocationChain, Operation operation) { + } + +} diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java index dabebb5400..23f8129e8d 100644 --- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java +++ b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java @@ -349,21 +349,16 @@ public class DefaultProviderFactoryExtensionPoint implements ProviderFactoryExte return factory; } - public PolicyProvider createImplementationPolicyProvider(RuntimeComponent component, - Implementation implementation) { - return getFactory().createImplementationPolicyProvider(component, implementation); + public PolicyProvider createImplementationPolicyProvider(RuntimeComponent component) { + return getFactory().createImplementationPolicyProvider(component); } - public PolicyProvider createReferencePolicyProvider(RuntimeComponent component, - RuntimeComponentReference reference, - Binding binding) { - return getFactory().createReferencePolicyProvider(component, reference, binding); + public PolicyProvider createReferencePolicyProvider(EndpointReference endpointReference) { + return getFactory().createReferencePolicyProvider(endpointReference); } - public PolicyProvider createServicePolicyProvider(RuntimeComponent component, - RuntimeComponentService service, - Binding binding) { - return getFactory().createServicePolicyProvider(component, service, binding); + public PolicyProvider createServicePolicyProvider(Endpoint endpoint) { + return getFactory().createServicePolicyProvider(endpoint); } public Class getModelType() { diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProvider.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProvider.java index 644283dea1..00ef0d1c3c 100644 --- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProvider.java +++ b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProvider.java @@ -20,7 +20,7 @@ package org.apache.tuscany.sca.provider; import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Interceptor; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; /** * @version $Rev$ $Date$ @@ -31,11 +31,15 @@ public interface PolicyProvider { * @param operation * @return An interceptor that realize the policySet */ - Interceptor createInterceptor(Operation operation); - + PhasedInterceptor createInterceptor(Operation operation); + + /** + * Start the provider + */ + void start(); + /** - * Get the phase that the interceptor should be added - * @return The phase that this interceptor belongs to + * Stop the provider */ - String getPhase(); + void stop(); } diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProviderFactory.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProviderFactory.java index d9ac4d16b0..564e6c633b 100644 --- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProviderFactory.java +++ b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProviderFactory.java @@ -19,11 +19,9 @@ package org.apache.tuscany.sca.provider; -import org.apache.tuscany.sca.assembly.Binding; -import org.apache.tuscany.sca.assembly.Implementation; +import org.apache.tuscany.sca.assembly.Endpoint; +import org.apache.tuscany.sca.assembly.EndpointReference; import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; /** * @version $Rev$ $Date$ @@ -31,32 +29,23 @@ import org.apache.tuscany.sca.runtime.RuntimeComponentService; public interface PolicyProviderFactory extends ProviderFactory { /** * Create policy provider for a given reference binding - * @param component - * @param reference - * @param binding - * @return + * @param endpointReference The endpoint reference + * @return A policy provider for the endpoint reference */ - PolicyProvider createReferencePolicyProvider(RuntimeComponent component, - RuntimeComponentReference reference, - Binding binding); + PolicyProvider createReferencePolicyProvider(EndpointReference endpointReference); /** * Create policy provider for a given service binding - * @param component - * @param service - * @param binding - * @return + * @param endpoint The endpoint + * @return A policy provider for the endpoint */ - PolicyProvider createServicePolicyProvider(RuntimeComponent component, - RuntimeComponentService service, - Binding binding); + PolicyProvider createServicePolicyProvider(Endpoint endpoint); /** * Create policy provider for a given component implementation * @param component - * @param implementation - * @return + * @return A policy provider for the implementation */ - PolicyProvider createImplementationPolicyProvider(RuntimeComponent component, Implementation implementation); + PolicyProvider createImplementationPolicyProvider(RuntimeComponent component); } diff --git a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProviderRRB.java b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProviderRRB.java index 23a48c8e36..6e7f2bd554 100644 --- a/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProviderRRB.java +++ b/java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProviderRRB.java @@ -19,7 +19,7 @@ package org.apache.tuscany.sca.provider; -import org.apache.tuscany.sca.invocation.Interceptor; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; /** * TODO RRB experiment @@ -32,6 +32,6 @@ public interface PolicyProviderRRB extends PolicyProvider { * Create a binding interceptor * @return An interceptor that realize the policySet */ - Interceptor createBindingInterceptor(); + PhasedInterceptor createBindingInterceptor(); } diff --git a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/CompositeActivatorImpl.java b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/CompositeActivatorImpl.java index cd27763885..15c38db0e7 100644 --- a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/CompositeActivatorImpl.java +++ b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/CompositeActivatorImpl.java @@ -230,7 +230,7 @@ public class CompositeActivatorImpl implements CompositeActivator { .getName()); } for (PolicyProviderFactory f : providerFactories.getPolicyProviderFactories()) { - PolicyProvider policyProvider = f.createImplementationPolicyProvider(component, implementation); + PolicyProvider policyProvider = f.createImplementationPolicyProvider(component); if (policyProvider != null) { component.addPolicyProvider(policyProvider); } @@ -315,10 +315,8 @@ public class CompositeActivatorImpl implements CompositeActivator { ((RuntimeComponentService) service).setBindingProvider(binding, bindingProvider); } - for (PolicyProviderFactory f : providerFactories - .getPolicyProviderFactories()) { - PolicyProvider policyProvider = f.createServicePolicyProvider( - component, service, binding); + for (PolicyProviderFactory f : providerFactories.getPolicyProviderFactories()) { + PolicyProvider policyProvider = f.createServicePolicyProvider(endpoint); if (policyProvider != null) { service.addPolicyProvider(binding, policyProvider); } @@ -530,6 +528,11 @@ public class CompositeActivatorImpl implements CompositeActivator { } RuntimeComponentService runtimeService = (RuntimeComponentService)service; for (Endpoint endpoint : service.getEndpoints()) { + // FIXME: Should the policy providers be started before the endpoint is started? + for (PolicyProvider policyProvider : runtimeService.getPolicyProviders(endpoint.getBinding())) { + policyProvider.start(); + } + final ServiceBindingProvider bindingProvider = runtimeService.getBindingProvider(endpoint.getBinding()); if (bindingProvider != null) { // bindingProvider.start(); @@ -549,6 +552,9 @@ public class CompositeActivatorImpl implements CompositeActivator { if (implementation instanceof Composite) { start((Composite)implementation); } else { + for (PolicyProvider policyProvider : runtimeComponent.getPolicyProviders()) { + policyProvider.start(); + } ImplementationProvider implementationProvider = runtimeComponent.getImplementationProvider(); if (implementationProvider != null) { implementationProvider.start(); @@ -588,6 +594,10 @@ public class CompositeActivatorImpl implements CompositeActivator { } }); } + for (PolicyProvider policyProvider : ((RuntimeComponentService)service).getPolicyProviders(endpoint + .getBinding())) { + policyProvider.stop(); + } } } for (ComponentReference reference : component.getReferences()) { @@ -607,6 +617,11 @@ public class CompositeActivatorImpl implements CompositeActivator { } }); } + for (PolicyProvider policyProvider : ((RuntimeComponentReference)reference) + .getPolicyProviders(endpointReference.getBinding())) { + policyProvider.stop(); + } + } } Implementation implementation = component.getImplementation(); @@ -623,6 +638,9 @@ public class CompositeActivatorImpl implements CompositeActivator { } }); } + for (PolicyProvider policyProvider : ((RuntimeComponent)component).getPolicyProviders()) { + policyProvider.stop(); + } } if (component instanceof ScopedRuntimeComponent) { @@ -722,6 +740,10 @@ public class CompositeActivatorImpl implements CompositeActivator { if (bindingProvider != null) { bindingProvider.stop(); } + for (PolicyProvider policyProvider : ((RuntimeComponentReference)reference) + .getPolicyProviders(endpointReference.getBinding())) { + policyProvider.stop(); + } } } diff --git a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentReferenceImpl.java b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentReferenceImpl.java index c0a9f616f6..3fdc35a720 100644 --- a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentReferenceImpl.java +++ b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentReferenceImpl.java @@ -20,6 +20,7 @@ package org.apache.tuscany.sca.core.assembly.impl; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -43,7 +44,7 @@ import org.apache.tuscany.sca.runtime.RuntimeWire; public class RuntimeComponentReferenceImpl extends ComponentReferenceImpl implements RuntimeComponentReference { private ArrayList wires; private HashMap bindingProviders = - new HashMap(); + new HashMap(); private HashMap> policyProviders = new HashMap>(); private RuntimeComponent component; @@ -134,7 +135,12 @@ public class RuntimeComponentReferenceImpl extends ComponentReferenceImpl implem } public List getPolicyProviders(Binding binding) { - return policyProviders.get(binding); + List providers = policyProviders.get(binding); + if (providers == null) { + return Collections.emptyList(); + } else { + return providers; + } } @Override diff --git a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentServiceImpl.java b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentServiceImpl.java index 776d35327d..ffa488b7bd 100644 --- a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentServiceImpl.java +++ b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentServiceImpl.java @@ -20,6 +20,7 @@ package org.apache.tuscany.sca.core.assembly.impl; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -153,7 +154,12 @@ public class RuntimeComponentServiceImpl extends ComponentServiceImpl implements } public List getPolicyProviders(Binding binding) { - return policyProviders.get(binding); + List providers = policyProviders.get(binding); + if (providers == null) { + return Collections.emptyList(); + } else { + return providers; + } } @Override diff --git a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeWireImpl.java b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeWireImpl.java index 32645244fb..3ec13b2190 100644 --- a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeWireImpl.java +++ b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeWireImpl.java @@ -354,6 +354,9 @@ public class RuntimeWireImpl implements RuntimeWire { } }); } + for (PolicyProvider policyProvider : runtimeRef.getPolicyProviders(endpointReference.getBinding())) { + policyProvider.start(); + } InterfaceContract bindingContract = getInterfaceContract(endpointReference.getReference(), endpointReference.getBinding()); Endpoint endpoint = endpointReference.getTargetEndpoint(); @@ -377,8 +380,7 @@ public class RuntimeWireImpl implements RuntimeWire { for (PolicyProviderFactory f : providerFactories .getPolicyProviderFactories()) { PolicyProvider policyProvider = f - .createReferencePolicyProvider(component, reference, - binding); + .createReferencePolicyProvider(endpointReference); if (policyProvider != null) { reference.addPolicyProvider(binding, policyProvider); } @@ -425,7 +427,7 @@ public class RuntimeWireImpl implements RuntimeWire { if (p instanceof PolicyProviderRRB) { Interceptor interceptor = ((PolicyProviderRRB)p).createBindingInterceptor(); if (interceptor != null) { - bindingInvocationChain.addInterceptor(p.getPhase(), interceptor); + bindingInvocationChain.addInterceptor(interceptor); } } } @@ -449,7 +451,7 @@ public class RuntimeWireImpl implements RuntimeWire { if (p instanceof PolicyProviderRRB) { Interceptor interceptor = ((PolicyProviderRRB)p).createBindingInterceptor(); if (interceptor != null) { - bindingInvocationChain.addInterceptor(p.getPhase(), interceptor); + bindingInvocationChain.addInterceptor(interceptor); } } } @@ -555,7 +557,7 @@ public class RuntimeWireImpl implements RuntimeWire { for (PolicyProvider p : pps) { Interceptor interceptor = p.createInterceptor(operation); if (interceptor != null) { - chain.addInterceptor(p.getPhase(), p.createInterceptor(operation)); + chain.addInterceptor(p.createInterceptor(operation)); } } } @@ -578,7 +580,7 @@ public class RuntimeWireImpl implements RuntimeWire { for (PolicyProvider p : pps) { Interceptor interceptor = p.createInterceptor(operation); if (interceptor != null) { - chain.addInterceptor(p.getPhase(), p.createInterceptor(operation)); + chain.addInterceptor(p.createInterceptor(operation)); } } } @@ -640,7 +642,7 @@ public class RuntimeWireImpl implements RuntimeWire { for (PolicyProvider p : pps) { Interceptor interceptor = p.createInterceptor(operation); if (interceptor != null) { - chain.addInterceptor(p.getPhase(), p.createInterceptor(operation)); + chain.addInterceptor(p.createInterceptor(operation)); } } } diff --git a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImpl.java b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImpl.java index 3c7fefb674..d8eb746776 100644 --- a/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImpl.java +++ b/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImpl.java @@ -28,6 +28,7 @@ import org.apache.tuscany.sca.invocation.Interceptor; import org.apache.tuscany.sca.invocation.InvocationChain; import org.apache.tuscany.sca.invocation.Invoker; import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; /** * Default implementation of an invocation chain @@ -45,9 +46,6 @@ public class InvocationChainImpl implements InvocationChain { private boolean allowsPassByReference; public InvocationChainImpl(Operation sourceOperation, Operation targetOperation, boolean forReference) { - // TODO - binding invocation chain doesn't provide operations - //assert sourceOperation != null; - //assert targetOperation != null; this.targetOperation = targetOperation; this.sourceOperation = sourceOperation; this.forReference = forReference; @@ -62,11 +60,25 @@ public class InvocationChainImpl implements InvocationChain { } public void addInterceptor(Interceptor interceptor) { + if (interceptor instanceof PhasedInterceptor) { + PhasedInterceptor pi = (PhasedInterceptor)interceptor; + if (pi.getPhase() != null) { + addInvoker(pi.getPhase(), pi); + return; + } + } String phase = forReference ? Phase.REFERENCE : Phase.SERVICE; addInterceptor(phase, interceptor); } public void addInvoker(Invoker invoker) { + if (invoker instanceof PhasedInterceptor) { + PhasedInterceptor pi = (PhasedInterceptor)invoker; + if (pi.getPhase() != null) { + addInvoker(pi.getPhase(), pi); + return; + } + } String phase = forReference ? Phase.REFERENCE_BINDING : Phase.IMPLEMENTATION; addInvoker(phase, invoker); } @@ -75,10 +87,6 @@ public class InvocationChainImpl implements InvocationChain { return nodes.isEmpty() ? null : nodes.get(0).getInvoker(); } - public Invoker getTailInvoker() { - return nodes.isEmpty() ? null : nodes.get(nodes.size() - 1).getInvoker(); - } - /** * @return the sourceOperation */ @@ -93,10 +101,6 @@ public class InvocationChainImpl implements InvocationChain { this.sourceOperation = sourceOperation; } - public void addInterceptor(int index, Interceptor interceptor) { - addInterceptor(interceptor); - } - public void addInterceptor(String phase, Interceptor interceptor) { addInvoker(phase, interceptor); } diff --git a/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/CallbackInterfaceInterceptorTestCase.java.fixme b/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/CallbackInterfaceInterceptorTestCase.java.fixme deleted file mode 100644 index b11eaa9621..0000000000 --- a/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/CallbackInterfaceInterceptorTestCase.java.fixme +++ /dev/null @@ -1,62 +0,0 @@ -/* - * 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.core.wire; - -import junit.framework.TestCase; - -import org.apache.tuscany.sca.core.assembly.impl.EndpointReferenceImpl; -import org.apache.tuscany.sca.core.invocation.CallbackInterfaceInterceptor; -import org.apache.tuscany.sca.core.invocation.impl.MessageFactoryImpl; -import org.apache.tuscany.sca.invocation.Interceptor; -import org.apache.tuscany.sca.invocation.Message; -import org.easymock.EasyMock; -import org.oasisopen.sca.NoRegisteredCallbackException; - -/** - * @version $Rev$ $Date$ - */ -public class CallbackInterfaceInterceptorTestCase extends TestCase { - - public void testHasCallbackObject() { - CallbackInterfaceInterceptor interceptor = new CallbackInterfaceInterceptor(); - Interceptor next = EasyMock.createMock(Interceptor.class); - EasyMock.expect(next.invoke(EasyMock.isA(Message.class))).andReturn(null); - EasyMock.replay(next); - interceptor.setNext(next); - Message msg = new MessageFactoryImpl().createMessage(); - msg.setFrom(new EndpointReferenceImpl("uri")); - msg.getFrom().getReferenceParameters().setCallbackObjectID("ABC"); - interceptor.invoke(msg); - EasyMock.verify(next); - } - - public void testNoCallbackObject() { - CallbackInterfaceInterceptor interceptor = new CallbackInterfaceInterceptor(); - Message msg = new MessageFactoryImpl().createMessage(); - msg.setFrom(new EndpointReferenceImpl("uri")); - msg.getFrom().getReferenceParameters().setCallbackObjectID(null); - try { - interceptor.invoke(msg); - fail(); - } catch (NoRegisteredCallbackException e) { - // expected - } - } - -} diff --git a/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImplTestCase.java b/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImplTestCase.java index d6367163fa..c8990686b9 100644 --- a/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImplTestCase.java +++ b/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImplTestCase.java @@ -45,8 +45,6 @@ public class InvocationChainImplTestCase { Interceptor head = (Interceptor)chain.getHeadInvoker(); assertEquals(inter1, head); assertEquals(inter2, head.getNext()); - assertEquals(inter2, chain.getTailInvoker()); - } @Test @@ -66,7 +64,6 @@ public class InvocationChainImplTestCase { assertEquals(inter2, inter1.getNext()); assertEquals(inter3, inter2.getNext()); assertEquals(inter4, inter3.getNext()); - assertEquals(inter4, chain.getTailInvoker()); } private class MockInterceptor implements Interceptor { diff --git a/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/NonBlockingInterceptorTestCase.java.fixme b/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/NonBlockingInterceptorTestCase.java.fixme deleted file mode 100644 index b8150d4edc..0000000000 --- a/java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/NonBlockingInterceptorTestCase.java.fixme +++ /dev/null @@ -1,74 +0,0 @@ -/* - * 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.core.wire; - -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.expectLastCall; -import static org.easymock.EasyMock.getCurrentArguments; -import static org.easymock.EasyMock.isA; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.verify; -import junit.framework.TestCase; - -import org.apache.tuscany.sca.core.invocation.NonBlockingInterceptor; -import org.apache.tuscany.sca.core.invocation.ThreadMessageContext; -import org.apache.tuscany.sca.invocation.Interceptor; -import org.apache.tuscany.sca.invocation.Message; -import org.apache.tuscany.sca.work.WorkScheduler; -import org.easymock.EasyMock; -import org.easymock.IAnswer; - -/** - * @version $Rev$ $Date$ - */ -public class NonBlockingInterceptorTestCase extends TestCase { - - public void testInvoke() throws Exception { - WorkScheduler scheduler = createMock(WorkScheduler.class); - scheduler.scheduleWork(isA(Runnable.class)); - expectLastCall().andStubAnswer(new IAnswer() { - public Object answer() throws Throwable { - Runnable runnable = (Runnable) getCurrentArguments()[0]; - runnable.run(); - return null; - } - }); - replay(scheduler); - Message context = createMock(Message.class); - //String convID = "convID"; - //TODO port to the new way of dealing with conversation IDs later - //EasyMock.expect(context.getConversationID()).andReturn(convID); - EasyMock.replay(context); - ThreadMessageContext.setMessageContext(context); - Message msg = createMock(Message.class); - //TODO port to the new way of dealing with conversation IDs later - //msg.setConversationID(convID); - Interceptor next = EasyMock.createMock(Interceptor.class); - EasyMock.expect(next.invoke(EasyMock.eq(msg))).andReturn(msg); - EasyMock.expect(msg.isFault()).andReturn(false); - EasyMock.replay(next); - EasyMock.replay(msg); - Interceptor interceptor = new NonBlockingInterceptor(scheduler, next); - interceptor.invoke(msg); - verify(context); - verify(next); - verify(msg); - } - -} diff --git a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationPolicyProviderFactory.java b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationPolicyProviderFactory.java index 348934bd6c..9b894101ef 100644 --- a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationPolicyProviderFactory.java +++ b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationPolicyProviderFactory.java @@ -19,14 +19,12 @@ package org.apache.tuscany.sca.policy.authentication.basic; -import org.apache.tuscany.sca.assembly.Binding; -import org.apache.tuscany.sca.assembly.Implementation; +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; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; /** * @version $Rev$ $Date$ @@ -39,37 +37,23 @@ public class BasicAuthenticationPolicyProviderFactory implements PolicyProviderF 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, Implementation implementation) { - return null;//new BasicAuthenticationImplementationPolicyProvider(component, 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(RuntimeComponent component, - RuntimeComponentReference reference, - Binding binding) { - return new BasicAuthenticationReferencePolicyProvider(component, reference, binding); + public PolicyProvider createReferencePolicyProvider(EndpointReference endpointReference) { + return new BasicAuthenticationReferencePolicyProvider(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(RuntimeComponent component, - RuntimeComponentService service, - Binding binding) { - return new BasicAuthenticationServicePolicyProvider(component, service, binding); + public PolicyProvider createServicePolicyProvider(Endpoint endpoint) { + return new BasicAuthenticationServicePolicyProvider(endpoint); } - /** - * @see org.apache.tuscany.sca.provider.ProviderFactory#getModelType() - */ - public Class getModelType() { - // TODO Auto-generated method stub - return null; + public Class getModelType() { + return BasicAuthenticationPolicy.class; } } diff --git a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationReferencePolicyInterceptor.java b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationReferencePolicyInterceptor.java index ef1e66b7de..189866a23f 100644 --- a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationReferencePolicyInterceptor.java +++ b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationReferencePolicyInterceptor.java @@ -22,9 +22,10 @@ import javax.security.auth.Subject; import javax.xml.namespace.QName; import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Interceptor; import org.apache.tuscany.sca.invocation.Invoker; import org.apache.tuscany.sca.invocation.Message; +import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; import org.apache.tuscany.sca.policy.PolicySet; import org.apache.tuscany.sca.policy.security.SecurityUtil; @@ -32,7 +33,7 @@ import org.apache.tuscany.sca.policy.security.SecurityUtil; * * @version $Rev$ $Date$ */ -public class BasicAuthenticationReferencePolicyInterceptor implements Interceptor { +public class BasicAuthenticationReferencePolicyInterceptor implements PhasedInterceptor { private static final String SCA10_TUSCANY_NS = "http://tuscany.apache.org/xmlns/sca/1.1"; public static final QName policySetQName = new QName(SCA10_TUSCANY_NS, "wsBasicAuthentication"); @@ -93,4 +94,8 @@ public class BasicAuthenticationReferencePolicyInterceptor implements Intercepto public void setNext(Invoker next) { this.next = next; } + + public String getPhase() { + return Phase.REFERENCE_POLICY; + } } diff --git a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationReferencePolicyProvider.java b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationReferencePolicyProvider.java index c5352e1f57..d4d8e59429 100644 --- a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationReferencePolicyProvider.java +++ b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationReferencePolicyProvider.java @@ -21,41 +21,29 @@ package org.apache.tuscany.sca.policy.authentication.basic; import java.util.List; -import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.EndpointReference; import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Interceptor; -import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; import org.apache.tuscany.sca.policy.PolicySet; -import org.apache.tuscany.sca.policy.PolicySubject; import org.apache.tuscany.sca.provider.PolicyProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; /** * @version $Rev$ $Date$ */ public class BasicAuthenticationReferencePolicyProvider implements PolicyProvider { - private RuntimeComponent component; - private RuntimeComponentReference reference; - private Binding binding; + private EndpointReference endpointReference; - public BasicAuthenticationReferencePolicyProvider(RuntimeComponent component, - RuntimeComponentReference reference, - Binding binding) { + public BasicAuthenticationReferencePolicyProvider(EndpointReference endpointReference) { super(); - this.component = component; - this.reference = reference; - this.binding = binding; + this.endpointReference = endpointReference; } private PolicySet findPolicySet() { - if (binding instanceof PolicySubject) { - List policySets = ((PolicySubject)binding).getPolicySets(); - for (PolicySet ps : policySets) { - for (Object p : ps.getPolicies()) { - if (BasicAuthenticationPolicy.class.isInstance(p)) { - return ps; - } + List policySets = endpointReference.getPolicySets(); + for (PolicySet ps : policySets) { + for (Object p : ps.getPolicies()) { + if (BasicAuthenticationPolicy.class.isInstance(p)) { + return ps; } } } @@ -63,27 +51,21 @@ public class BasicAuthenticationReferencePolicyProvider implements PolicyProvide } private String getContext() { - return "component.reference: " + component.getURI() - + "#" - + reference.getName() - + "(" - + binding.getClass().getName() - + ")"; + return endpointReference.getURI(); } /** * @see org.apache.tuscany.sca.provider.PolicyProvider#createInterceptor(org.apache.tuscany.sca.interfacedef.Operation) */ - public Interceptor createInterceptor(Operation operation) { + public PhasedInterceptor createInterceptor(Operation operation) { PolicySet ps = findPolicySet(); return ps == null ? null : new BasicAuthenticationReferencePolicyInterceptor(getContext(), operation, ps); } - /** - * @see org.apache.tuscany.sca.provider.PolicyProvider#getPhase() - */ - public String getPhase() { - return Phase.REFERENCE_POLICY; + public void start() { + } + + public void stop() { } } diff --git a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationServicePolicyInterceptor.java b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationServicePolicyInterceptor.java index da4d31a11a..39f70c7e78 100644 --- a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationServicePolicyInterceptor.java +++ b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationServicePolicyInterceptor.java @@ -23,9 +23,10 @@ import javax.security.auth.Subject; import javax.xml.namespace.QName; import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Interceptor; import org.apache.tuscany.sca.invocation.Invoker; import org.apache.tuscany.sca.invocation.Message; +import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; import org.apache.tuscany.sca.policy.PolicySet; import org.apache.tuscany.sca.policy.security.SecurityUtil; @@ -36,7 +37,7 @@ import org.apache.tuscany.sca.policy.security.SecurityUtil; * * @version $Rev$ $Date$ */ -public class BasicAuthenticationServicePolicyInterceptor implements Interceptor { +public class BasicAuthenticationServicePolicyInterceptor implements PhasedInterceptor { private static final String SCA10_TUSCANY_NS = "http://tuscany.apache.org/xmlns/sca/1.1"; public static final QName policySetQName = new QName(SCA10_TUSCANY_NS, "wsBasicAuthentication"); @@ -93,4 +94,9 @@ public class BasicAuthenticationServicePolicyInterceptor implements Interceptor public void setNext(Invoker next) { this.next = next; } + + public String getPhase() { + return Phase.SERVICE_POLICY; + } + } diff --git a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationServicePolicyProvider.java b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationServicePolicyProvider.java index b8684e29c0..b640ec60e5 100644 --- a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationServicePolicyProvider.java +++ b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationServicePolicyProvider.java @@ -21,39 +21,29 @@ package org.apache.tuscany.sca.policy.authentication.basic; import java.util.List; -import org.apache.tuscany.sca.assembly.Binding; +import org.apache.tuscany.sca.assembly.Endpoint; import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Interceptor; -import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; import org.apache.tuscany.sca.policy.PolicySet; -import org.apache.tuscany.sca.policy.PolicySubject; import org.apache.tuscany.sca.provider.PolicyProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; /** * @version $Rev$ $Date$ */ public class BasicAuthenticationServicePolicyProvider implements PolicyProvider { - private RuntimeComponent component; - private RuntimeComponentService service; - private Binding binding; + private Endpoint endpoint; - public BasicAuthenticationServicePolicyProvider(RuntimeComponent component, RuntimeComponentService service, Binding binding) { + public BasicAuthenticationServicePolicyProvider(Endpoint endpoint) { super(); - this.component = component; - this.service = service; - this.binding = binding; + this.endpoint = endpoint; } private PolicySet findPolicySet() { - if (binding instanceof PolicySubject) { - List policySets = ((PolicySubject)binding).getPolicySets(); - for (PolicySet ps : policySets) { - for (Object p : ps.getPolicies()) { - if (BasicAuthenticationPolicy.class.isInstance(p)) { - return ps; - } + List policySets = endpoint.getPolicySets(); + for (PolicySet ps : policySets) { + for (Object p : ps.getPolicies()) { + if (BasicAuthenticationPolicy.class.isInstance(p)) { + return ps; } } } @@ -61,27 +51,21 @@ public class BasicAuthenticationServicePolicyProvider implements PolicyProvider } private String getContext() { - return "component.service: " + component.getURI() - + "#" - + service.getName() - + "(" - + binding.getClass().getName() - + ")"; + return endpoint.getURI(); } /** * @see org.apache.tuscany.sca.provider.PolicyProvider#createInterceptor(org.apache.tuscany.sca.interfacedef.Operation) */ - public Interceptor createInterceptor(Operation operation) { + public PhasedInterceptor createInterceptor(Operation operation) { PolicySet ps = findPolicySet(); return ps == null ? null : new BasicAuthenticationServicePolicyInterceptor(getContext(), operation, ps); } + + public void start() { + } - /** - * @see org.apache.tuscany.sca.provider.PolicyProvider#getPhase() - */ - public String getPhase() { - return Phase.SERVICE_POLICY; + public void stop() { } } diff --git a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityImplementationPolicyInterceptor.java b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityImplementationPolicyInterceptor.java index 1f48b3b30a..773c874a90 100644 --- a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityImplementationPolicyInterceptor.java +++ b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityImplementationPolicyInterceptor.java @@ -23,16 +23,17 @@ import java.util.List; import javax.security.auth.Subject; -import org.apache.tuscany.sca.invocation.Interceptor; import org.apache.tuscany.sca.invocation.Invoker; import org.apache.tuscany.sca.invocation.Message; +import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; import org.apache.tuscany.sca.policy.security.SecurityUtil; import org.oasisopen.sca.ServiceRuntimeException; /** * @version $Rev$ $Date$ */ -public class SecurityIdentityImplementationPolicyInterceptor implements Interceptor { +public class SecurityIdentityImplementationPolicyInterceptor implements PhasedInterceptor { private List securityIdentityPolicies; private Invoker next; @@ -54,6 +55,11 @@ public class SecurityIdentityImplementationPolicyInterceptor implements Intercep public void setNext(Invoker next) { this.next = next; } + + public String getPhase() { + return Phase.IMPLEMENTATION_POLICY; + } + /** * @see org.apache.tuscany.sca.invocation.Invoker#invoke(org.apache.tuscany.sca.invocation.Message) diff --git a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityImplementationPolicyProvider.java b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityImplementationPolicyProvider.java index 38feea21b5..2783a37316 100644 --- a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityImplementationPolicyProvider.java +++ b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityImplementationPolicyProvider.java @@ -23,8 +23,7 @@ import java.util.List; import org.apache.tuscany.sca.assembly.Implementation; import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Interceptor; -import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; import org.apache.tuscany.sca.policy.PolicySet; import org.apache.tuscany.sca.provider.PolicyProvider; import org.apache.tuscany.sca.runtime.RuntimeComponent; @@ -36,10 +35,10 @@ public class SecurityIdentityImplementationPolicyProvider implements PolicyProvi private RuntimeComponent component; private Implementation implementation; - public SecurityIdentityImplementationPolicyProvider(RuntimeComponent component, Implementation implementation) { + public SecurityIdentityImplementationPolicyProvider(RuntimeComponent component) { super(); this.component = component; - this.implementation = implementation; + this.implementation = component.getImplementation(); } private List findPolicies(Operation op) { @@ -73,7 +72,7 @@ public class SecurityIdentityImplementationPolicyProvider implements PolicyProvi return polices; } - public Interceptor createInterceptor(Operation operation) { + public PhasedInterceptor createInterceptor(Operation operation) { List policies = findPolicies(operation); if (policies == null || policies.isEmpty()) { return null; @@ -82,7 +81,9 @@ public class SecurityIdentityImplementationPolicyProvider implements PolicyProvi } } - public String getPhase() { - return Phase.IMPLEMENTATION_POLICY; + public void start() { + } + + public void stop() { } } diff --git a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProviderFactory.java b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProviderFactory.java index a20f314a2a..80e1494796 100644 --- a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProviderFactory.java +++ b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProviderFactory.java @@ -19,14 +19,12 @@ package org.apache.tuscany.sca.policy.identity; -import org.apache.tuscany.sca.assembly.Binding; -import org.apache.tuscany.sca.assembly.Implementation; +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; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; /** * @version $Rev$ $Date$ @@ -39,37 +37,20 @@ public class SecurityIdentityPolicyProviderFactory implements PolicyProviderFact 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, Implementation implementation) { - return new SecurityIdentityImplementationPolicyProvider(component, implementation); + public PolicyProvider createImplementationPolicyProvider(RuntimeComponent component) { + return new SecurityIdentityImplementationPolicyProvider(component); } - /** - * @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(RuntimeComponent component, - RuntimeComponentReference reference, - Binding binding) { + public PolicyProvider createReferencePolicyProvider(EndpointReference endpointReference) { return null; } - /** - * @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(RuntimeComponent component, - RuntimeComponentService service, - Binding binding) { + public PolicyProvider createServicePolicyProvider(Endpoint endpoint) { return null; } - /** - * @see org.apache.tuscany.sca.provider.ProviderFactory#getModelType() - */ - public Class getModelType() { - // TODO Auto-generated method stub - return null; + public Class getModelType() { + return SecurityIdentityPolicy.class; } } diff --git a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationImplementationPolicyProvider.java b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationImplementationPolicyProvider.java index 203d9ca0ab..6666469b75 100644 --- a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationImplementationPolicyProvider.java +++ b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationImplementationPolicyProvider.java @@ -23,8 +23,7 @@ import java.util.List; import org.apache.tuscany.sca.assembly.Implementation; import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.Interceptor; -import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; import org.apache.tuscany.sca.policy.PolicySet; import org.apache.tuscany.sca.provider.PolicyProvider; import org.apache.tuscany.sca.runtime.RuntimeComponent; @@ -38,10 +37,10 @@ public class JaasAuthenticationImplementationPolicyProvider implements PolicyPro private RuntimeComponent component; private Implementation implementation; - public JaasAuthenticationImplementationPolicyProvider(RuntimeComponent component, Implementation implementation) { + public JaasAuthenticationImplementationPolicyProvider(RuntimeComponent component) { super(); this.component = component; - this.implementation = implementation; + this.implementation = component.getImplementation(); } private List findPolicies(Operation op) { @@ -75,7 +74,7 @@ public class JaasAuthenticationImplementationPolicyProvider implements PolicyPro return polices; } - public Interceptor createInterceptor(Operation operation) { + public PhasedInterceptor createInterceptor(Operation operation) { List policies = findPolicies(operation); if (policies == null || policies.isEmpty()) { return null; @@ -84,7 +83,9 @@ public class JaasAuthenticationImplementationPolicyProvider implements PolicyPro } } - public String getPhase() { - return Phase.IMPLEMENTATION_POLICY; + public void start() { } + + public void stop() { + } } diff --git a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationInterceptor.java b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationInterceptor.java index 41a7b62772..247243fcf8 100644 --- a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationInterceptor.java +++ b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationInterceptor.java @@ -24,15 +24,16 @@ import java.util.List; import javax.security.auth.callback.CallbackHandler; import javax.security.auth.login.LoginContext; -import org.apache.tuscany.sca.invocation.Interceptor; import org.apache.tuscany.sca.invocation.Invoker; import org.apache.tuscany.sca.invocation.Message; +import org.apache.tuscany.sca.invocation.Phase; +import org.apache.tuscany.sca.invocation.PhasedInterceptor; import org.oasisopen.sca.ServiceRuntimeException; /** * @version $Rev$ $Date$ */ -public class JaasAuthenticationInterceptor implements Interceptor { +public class JaasAuthenticationInterceptor implements PhasedInterceptor { private List authenticationPolicies; private Invoker next; @@ -72,5 +73,9 @@ public class JaasAuthenticationInterceptor implements Interceptor { } return getNext().invoke(msg); } + + public String getPhase() { + return Phase.IMPLEMENTATION_POLICY; + } } diff --git a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProviderFactory.java b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProviderFactory.java index 48a42eb711..ab1ab1870f 100644 --- a/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProviderFactory.java +++ b/java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProviderFactory.java @@ -19,14 +19,12 @@ package org.apache.tuscany.sca.policy.security.jaas; -import org.apache.tuscany.sca.assembly.Binding; -import org.apache.tuscany.sca.assembly.Implementation; +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; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; /** * @version $Rev$ $Date$ @@ -37,28 +35,18 @@ public class JaasAuthenticationPolicyProviderFactory implements PolicyProviderFa super(); } - /** - * @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, Implementation implementation) { - return new JaasAuthenticationImplementationPolicyProvider(component, implementation); + public PolicyProvider createImplementationPolicyProvider(RuntimeComponent component) { + return new JaasAuthenticationImplementationPolicyProvider(component); } - /** - * @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(RuntimeComponent component, - RuntimeComponentReference reference, - Binding binding) { + public PolicyProvider createReferencePolicyProvider(EndpointReference endpointReference) { return null; } /** * @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(RuntimeComponent component, - RuntimeComponentService service, - Binding binding) { + public PolicyProvider createServicePolicyProvider(Endpoint endpoint) { return null; } -- cgit v1.2.3