summaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-07-08 23:39:36 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-07-08 23:39:36 +0000
commit9059026361e282b7f867817bcf8fd721030c8f8d (patch)
treeb5cb829671d35f8bcd604570cd8c1a8f03ae07f7 /java
parenta36d95000a638694fa3004cf5a2da0fe44808921 (diff)
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
Diffstat (limited to 'java')
-rw-r--r--java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationPolicyProviderFactory.java34
-rw-r--r--java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationReferencePolicyInterceptor.java10
-rw-r--r--java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationReferencePolicyProvider.java50
-rw-r--r--java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationServicePolicyInterceptor.java9
-rw-r--r--java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/authentication/token/Axis2TokenAuthenticationServicePolicyProvider.java47
-rw-r--r--java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/configuration/Axis2ConfigParamPolicyProviderFactory.java28
-rw-r--r--java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderPolicyProviderFactory.java34
-rw-r--r--java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderReferencePolicyInterceptor.java12
-rw-r--r--java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderReferencePolicyProvider.java51
-rw-r--r--java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderServicePolicyInterceptor.java10
-rw-r--r--java/sca/modules/binding-ws-axis2-policy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/policy/header/Axis2HeaderServicePolicyProvider.java48
-rw-r--r--java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/InvocationChain.java19
-rw-r--r--java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/invocation/PhasedInterceptor.java31
-rw-r--r--java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/BasePolicyProvider.java149
-rw-r--r--java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/DefaultProviderFactoryExtensionPoint.java17
-rw-r--r--java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProvider.java16
-rw-r--r--java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProviderFactory.java31
-rw-r--r--java/sca/modules/core-spi/src/main/java/org/apache/tuscany/sca/provider/PolicyProviderRRB.java4
-rw-r--r--java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/CompositeActivatorImpl.java32
-rw-r--r--java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentReferenceImpl.java10
-rw-r--r--java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeComponentServiceImpl.java8
-rw-r--r--java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/assembly/impl/RuntimeWireImpl.java16
-rw-r--r--java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImpl.java26
-rw-r--r--java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/CallbackInterfaceInterceptorTestCase.java.fixme62
-rw-r--r--java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImplTestCase.java3
-rw-r--r--java/sca/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/NonBlockingInterceptorTestCase.java.fixme74
-rw-r--r--java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationPolicyProviderFactory.java36
-rw-r--r--java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationReferencePolicyInterceptor.java9
-rw-r--r--java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationReferencePolicyProvider.java50
-rw-r--r--java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationServicePolicyInterceptor.java10
-rw-r--r--java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/authentication/basic/BasicAuthenticationServicePolicyProvider.java48
-rw-r--r--java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityImplementationPolicyInterceptor.java10
-rw-r--r--java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityImplementationPolicyProvider.java15
-rw-r--r--java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/identity/SecurityIdentityPolicyProviderFactory.java35
-rw-r--r--java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationImplementationPolicyProvider.java15
-rw-r--r--java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationInterceptor.java9
-rw-r--r--java/sca/modules/policy-security/src/main/java/org/apache/tuscany/sca/policy/security/jaas/JaasAuthenticationPolicyProviderFactory.java24
37 files changed, 493 insertions, 599 deletions
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<Axis2TokenAuthenticationPolicy> 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<PolicySet> policySets = ((PolicySubject)binding).getPolicySets();
- for (PolicySet ps : policySets) {
- for (Object p : ps.getPolicies()) {
- if (Axis2TokenAuthenticationPolicy.class.isInstance(p)) {
- return ps;
- }
+ List<PolicySet> 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<PolicySet> policySets = ((PolicySubject)binding).getPolicySets();
- for (PolicySet ps : policySets) {
- for (Object p : ps.getPolicies()) {
- if (Axis2TokenAuthenticationPolicy.class.isInstance(p)) {
- return ps;
- }
+ List<PolicySet> 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<Axis2ConfigParamPolicy> 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<A
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 Axis2HeaderReferencePolicyProvider(component, reference, binding);
+ public PolicyProvider createReferencePolicyProvider(EndpointReference endpointReference) {
+ return new Axis2HeaderReferencePolicyProvider(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 Axis2HeaderServicePolicyProvider(component, service, binding);
+ public PolicyProvider createServicePolicyProvider(Endpoint endpoint) {
+ return new Axis2HeaderServicePolicyProvider(endpoint);
}
/**
* @see org.apache.tuscany.sca.provider.ProviderFactory#getModelType()
*/
- public Class getModelType() {
- // TODO Auto-generated method stub
- return null;
+ public Class<Axis2HeaderPolicy> 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<PolicySet> policySets = ((PolicySubject)binding).getPolicySets();
- for (PolicySet ps : policySets) {
- for (Object p : ps.getPolicies()) {
- if (Axis2HeaderPolicy.class.isInstance(p)) {
- return ps;
- }
+ List<PolicySet> 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<PolicySet> policySets = ((PolicySubject)binding).getPolicySets();
- for (PolicySet ps : policySets) {
- for (Object p : ps.getPolicies()) {
- if (Axis2HeaderPolicy.class.isInstance(p)) {
- return ps;
- }
+ List<PolicySet> 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
@@ -74,25 +74,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 <code>void addInterceptor(String phase, Interceptor interceptor);</code>
- * 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
* @param interceptor
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<T> implements PolicyProvider {
+ protected Class<T> policyType;
+ protected PolicySubject subject;
+
+ protected BasePolicyProvider(Class<T> policyType, PolicySubject subject) {
+ this.policyType = policyType;
+ this.subject = subject;
+ }
+
+ protected List<T> findPolicies() {
+ List<T> policies = new ArrayList<T>();
+ List<PolicySet> 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<PolicySet> findPolicySets() {
+ List<PolicySet> policies = new ArrayList<PolicySet>();
+ List<PolicySet> 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<PolicySet> 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<InvocationChain> 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<InvocationChain> 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<InvocationChain> 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<M> extends ProviderFactory<M> {
/**
* 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<RuntimeWire> wires;
private HashMap<Binding, ReferenceBindingProvider> bindingProviders =
- new HashMap<Binding, ReferenceBindingProvider>();
+ new HashMap<Binding, ReferenceBindingProvider>();
private HashMap<Binding, List<PolicyProvider>> policyProviders = new HashMap<Binding, List<PolicyProvider>>();
private RuntimeComponent component;
@@ -134,7 +135,12 @@ public class RuntimeComponentReferenceImpl extends ComponentReferenceImpl implem
}
public List<PolicyProvider> getPolicyProviders(Binding binding) {
- return policyProviders.get(binding);
+ List<PolicyProvider> 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<PolicyProvider> getPolicyProviders(Binding binding) {
- return policyProviders.get(binding);
+ List<PolicyProvider> 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<Object>() {
- 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<BasicAuthenticationPolicy> 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<PolicySet> policySets = ((PolicySubject)binding).getPolicySets();
- for (PolicySet ps : policySets) {
- for (Object p : ps.getPolicies()) {
- if (BasicAuthenticationPolicy.class.isInstance(p)) {
- return ps;
- }
+ List<PolicySet> 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<PolicySet> policySets = ((PolicySubject)binding).getPolicySets();
- for (PolicySet ps : policySets) {
- for (Object p : ps.getPolicies()) {
- if (BasicAuthenticationPolicy.class.isInstance(p)) {
- return ps;
- }
+ List<PolicySet> 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<SecurityIdentityPolicy> 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<SecurityIdentityPolicy> 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<SecurityIdentityPolicy> 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<SecurityIdentityPolicy> 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<JaasAuthenticationPolicy> 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<JaasAuthenticationPolicy> 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<JaasAuthenticationPolicy> 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;
}