diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-06-12 20:57:24 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2009-06-12 20:57:24 +0000 |
commit | 667940fec12c91bb231d7f8ff477f9e78112b80b (patch) | |
tree | 3b3051540279487817ed2fef8bdbff6b85f0e5d6 /java/sca/modules/assembly/src | |
parent | c2b73c42cf96cb67efdf76a7c73635343a747ad3 (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/src')
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; + } } |