summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/assembly
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-06-12 20:57:24 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-06-12 20:57:24 +0000
commit667940fec12c91bb231d7f8ff477f9e78112b80b (patch)
tree3b3051540279487817ed2fef8bdbff6b85f0e5d6 /java/sca/modules/assembly
parentc2b73c42cf96cb67efdf76a7c73635343a747ad3 (diff)
Add methods to Endpoint/EndpointReference to set the ExtensionPointRegistry so that deserialized object can be resolved
Make the EndpointSerializer a declared utility git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@784270 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/assembly')
-rw-r--r--java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Endpoint.java9
-rw-r--r--java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/EndpointReference.java9
-rw-r--r--java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java4
-rw-r--r--java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointReferenceImpl.java29
4 files changed, 48 insertions, 3 deletions
diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Endpoint.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Endpoint.java
index f8d1692c92..5aa26e16cf 100644
--- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Endpoint.java
+++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/Endpoint.java
@@ -21,6 +21,7 @@ package org.apache.tuscany.sca.assembly;
import java.io.Serializable;
import java.util.List;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.interfacedef.InterfaceContract;
import org.apache.tuscany.sca.policy.PolicySubject;
@@ -118,4 +119,12 @@ public interface Endpoint extends Base, PolicySubject, Cloneable, Serializable {
*/
List<EndpointReference> getCallbackEndpointReferences();
+ /**
+ * Set the extension point registry against the endpoint after it is deserialized as
+ * the registry needs to be re-attached
+ *
+ * @param registry
+ */
+ void setExtensionPointRegistry(ExtensionPointRegistry registry);
+
}
diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/EndpointReference.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/EndpointReference.java
index 446aa2dbac..073f592c9b 100644
--- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/EndpointReference.java
+++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/EndpointReference.java
@@ -20,6 +20,7 @@ package org.apache.tuscany.sca.assembly;
import java.io.Serializable;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.interfacedef.InterfaceContract;
import org.apache.tuscany.sca.policy.PolicySubject;
@@ -138,4 +139,12 @@ public interface EndpointReference extends Base, PolicySubject, Cloneable, Seria
* @param callbackEndpoint the reference callback endpoint
*/
void setCallbackEndpoint(Endpoint callbackEndpoint);
+
+ /**
+ * Set the extension point registry against the endpoint after it is deserialized as
+ * the registry needs to be re-attached
+ *
+ * @param registry
+ */
+ void setExtensionPointRegistry(ExtensionPointRegistry registry);
}
diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java
index 9c00caf01c..1974113d1c 100644
--- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java
+++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointImpl.java
@@ -182,4 +182,8 @@ public class EndpointImpl implements Endpoint {
protected void reset() {
this.uri = null;
}
+
+ public void setExtensionPointRegistry(ExtensionPointRegistry registry) {
+ this.registry = registry;
+ }
}
diff --git a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointReferenceImpl.java b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointReferenceImpl.java
index aa11088727..eb611339d1 100644
--- a/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointReferenceImpl.java
+++ b/java/sca/modules/assembly/src/main/java/org/apache/tuscany/sca/assembly/impl/EndpointReferenceImpl.java
@@ -39,6 +39,7 @@ import org.apache.tuscany.sca.policy.PolicySubject;
* @version $Rev$ $Date$
*/
public class EndpointReferenceImpl implements EndpointReference {
+ private static final long serialVersionUID = 8838066441709300972L;
protected ExtensionPointRegistry registry;
protected boolean unresolved = true;
protected String uri;
@@ -80,53 +81,62 @@ public class EndpointReferenceImpl implements EndpointReference {
}
public Component getComponent() {
+ resolve();
return component;
}
public void setComponent(Component component) {
this.component = component;
- this.uri = null;
+ reset();
}
public ComponentReference getReference() {
+ resolve();
return reference;
}
public void setReference(ComponentReference reference) {
this.reference = reference;
- this.uri = null;
+ reset();
}
public Binding getBinding() {
+ resolve();
return binding;
}
public void setBinding(Binding binding) {
this.binding = binding;
- this.uri = null;
+ reset();
}
public Endpoint getTargetEndpoint() {
+ resolve();
return targetEndpoint;
}
public void setTargetEndpoint(Endpoint targetEndpoint) {
this.targetEndpoint = targetEndpoint;
+ reset();
}
public InterfaceContract getInterfaceContract() {
+ resolve();
return interfaceContract;
}
public void setInterfaceContract(InterfaceContract interfaceContract) {
this.interfaceContract = interfaceContract;
+ reset();
}
public List<PolicySet> getPolicySets() {
+ resolve();
return policySets;
}
public List<Intent> getRequiredIntents() {
+ resolve();
return requiredIntents;
}
@@ -142,11 +152,13 @@ public class EndpointReferenceImpl implements EndpointReference {
}
public Endpoint getCallbackEndpoint() {
+ resolve();
return callbackEndpoint;
}
public void setCallbackEndpoint(Endpoint callbackEndpoint) {
this.callbackEndpoint = callbackEndpoint;
+ reset();
}
public String toString() {
@@ -187,4 +199,15 @@ public class EndpointReferenceImpl implements EndpointReference {
public void setURI(String uri) {
this.uri = uri;
}
+
+ protected void resolve() {
+ }
+
+ protected void reset() {
+ this.uri = null;
+ }
+
+ public void setExtensionPointRegistry(ExtensionPointRegistry registry) {
+ this.registry = registry;
+ }
}