summaryrefslogtreecommitdiffstats
path: root/sandbox/wjaniszewski/binding-erlang
diff options
context:
space:
mode:
authorwjaniszewski <wjaniszewski@13f79535-47bb-0310-9956-ffa450edef68>2009-03-19 21:28:08 +0000
committerwjaniszewski <wjaniszewski@13f79535-47bb-0310-9956-ffa450edef68>2009-03-19 21:28:08 +0000
commit420526884c2571aa4b17c69e98128bfd0612046e (patch)
treebf9a9dc5514c9a677f671f92b64602cd37866a3b /sandbox/wjaniszewski/binding-erlang
parent33a374fb68af272fb1b130ed8e68538141028cef (diff)
Added timeout feature for reference bindings. Added reference cookies - need more testing. Added some comments to organize tasks.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@756212 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sandbox/wjaniszewski/binding-erlang')
-rw-r--r--sandbox/wjaniszewski/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/ErlangBinding.java8
-rw-r--r--sandbox/wjaniszewski/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingImpl.java181
-rw-r--r--sandbox/wjaniszewski/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProcessor.java122
-rw-r--r--sandbox/wjaniszewski/binding-erlang/src/test/java/org/apache/tuscany/sca/binding/erlang/testing/ErlangBindingProcessorTestCase.java52
4 files changed, 228 insertions, 135 deletions
diff --git a/sandbox/wjaniszewski/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/ErlangBinding.java b/sandbox/wjaniszewski/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/ErlangBinding.java
index c1c699cffe..a6bb801005 100644
--- a/sandbox/wjaniszewski/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/ErlangBinding.java
+++ b/sandbox/wjaniszewski/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/ErlangBinding.java
@@ -42,5 +42,13 @@ public interface ErlangBinding extends Binding {
boolean isMbox();
void setMbox(boolean mbox);
+
+ long getTimeout();
+
+ void setTimeout(long timeout);
+
+ String getCookie();
+
+ void setCookie(String cookie);
}
diff --git a/sandbox/wjaniszewski/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingImpl.java b/sandbox/wjaniszewski/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingImpl.java
index 36b8df9fab..ad1bec06d3 100644
--- a/sandbox/wjaniszewski/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingImpl.java
+++ b/sandbox/wjaniszewski/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingImpl.java
@@ -33,83 +33,108 @@ import org.apache.tuscany.sca.policy.PolicySetAttachPoint;
*/
public class ErlangBindingImpl implements ErlangBinding, PolicySetAttachPoint {
- private String node;
- private String module;
- private boolean mbox;
-
- private List<Intent> requiredIntents = new ArrayList<Intent>();
- private List<PolicySet> policySets = new ArrayList<PolicySet>();
- private IntentAttachPointType intentAttachPointType;
- private List<PolicySet> applicablePolicySets = new ArrayList<PolicySet>();
-
- public String getNode() {
- return node;
- }
-
- public void setNode(String nodeName) {
- this.node = nodeName;
- }
-
- public String getName() {
- return null;
- }
-
- public String getURI() {
- return null;
- }
-
- public void setName(String arg0) {
- }
-
- public void setURI(String arg0) {
- }
-
- public boolean isUnresolved() {
- return false;
- }
-
- public void setUnresolved(boolean arg0) {
- }
-
- public List<PolicySet> getApplicablePolicySets() {
- return applicablePolicySets;
- }
-
- public List<PolicySet> getPolicySets() {
- return policySets;
- }
-
- public List<Intent> getRequiredIntents() {
- return requiredIntents;
- }
-
- public IntentAttachPointType getType() {
- return intentAttachPointType;
- }
-
- public void setType(IntentAttachPointType intentAttachPointType) {
- this.intentAttachPointType = intentAttachPointType;
- }
-
- @Override
- public Object clone() throws CloneNotSupportedException {
- return super.clone();
- }
-
- public String getModule() {
- return module;
- }
-
- public boolean isMbox() {
- return mbox;
- }
-
- public void setMbox(boolean mbox) {
- this.mbox = mbox;
- }
-
- public void setModule(String module) {
- this.module = module;
- }
+ public static final long DEFAULT_TIMEOUT = 10000;
+
+ private String node;
+ private String module;
+ private boolean mbox;
+ private String cookie;
+
+ private List<Intent> requiredIntents = new ArrayList<Intent>();
+ private List<PolicySet> policySets = new ArrayList<PolicySet>();
+ private IntentAttachPointType intentAttachPointType;
+ private List<PolicySet> applicablePolicySets = new ArrayList<PolicySet>();
+ private long timeout = DEFAULT_TIMEOUT;
+
+ public String getNode() {
+ return node;
+ }
+
+ public void setNode(String nodeName) {
+ this.node = nodeName;
+ }
+
+ public String getName() {
+ return null;
+ }
+
+ public String getURI() {
+ return null;
+ }
+
+ public void setName(String arg0) {
+ }
+
+ public void setURI(String arg0) {
+ }
+
+ public boolean isUnresolved() {
+ return false;
+ }
+
+ public void setUnresolved(boolean arg0) {
+ }
+
+ public List<PolicySet> getApplicablePolicySets() {
+ return applicablePolicySets;
+ }
+
+ public List<PolicySet> getPolicySets() {
+ return policySets;
+ }
+
+ public List<Intent> getRequiredIntents() {
+ return requiredIntents;
+ }
+
+ public IntentAttachPointType getType() {
+ return intentAttachPointType;
+ }
+
+ public void setType(IntentAttachPointType intentAttachPointType) {
+ this.intentAttachPointType = intentAttachPointType;
+ }
+
+ @Override
+ public Object clone() throws CloneNotSupportedException {
+ return super.clone();
+ }
+
+ public String getModule() {
+ return module;
+ }
+
+ public boolean isMbox() {
+ return mbox;
+ }
+
+ public void setMbox(boolean mbox) {
+ this.mbox = mbox;
+ }
+
+ public void setModule(String module) {
+ this.module = module;
+ }
+
+ public long getTimeout() {
+ return timeout;
+ }
+
+ public void setTimeout(long timeout) {
+ // NOTE: 0 timeout will cause setting to default
+ if (timeout == 0) {
+ this.timeout = DEFAULT_TIMEOUT;
+ } else {
+ this.timeout = timeout;
+ }
+ }
+
+ public String getCookie() {
+ return cookie;
+ }
+
+ public void setCookie(String cookie) {
+ this.cookie = cookie;
+ }
}
diff --git a/sandbox/wjaniszewski/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProcessor.java b/sandbox/wjaniszewski/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProcessor.java
index f601e3327c..b611cb2296 100644
--- a/sandbox/wjaniszewski/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProcessor.java
+++ b/sandbox/wjaniszewski/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProcessor.java
@@ -38,69 +38,77 @@ import org.apache.tuscany.sca.policy.PolicyFactory;
/**
* @version $Rev: $ $Date: $
*/
-public class ErlangBindingProcessor implements StAXArtifactProcessor<ErlangBinding> {
+public class ErlangBindingProcessor implements
+ StAXArtifactProcessor<ErlangBinding> {
- private PolicyFactory policyFactory;
- private PolicyAttachPointProcessor policyProcessor;
-
- public ErlangBindingProcessor(ModelFactoryExtensionPoint modelFactories) {
- this.policyFactory = modelFactories.getFactory(PolicyFactory.class);
- this.policyProcessor = new PolicyAttachPointProcessor(policyFactory);
- }
+ private PolicyFactory policyFactory;
+ private PolicyAttachPointProcessor policyProcessor;
- /**
- * @see org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor#getArtifactType()
- */
- public QName getArtifactType() {
- return ErlangBinding.BINDING_ERLANG_QNAME;
- }
+ public ErlangBindingProcessor(ModelFactoryExtensionPoint modelFactories) {
+ this.policyFactory = modelFactories.getFactory(PolicyFactory.class);
+ this.policyProcessor = new PolicyAttachPointProcessor(policyFactory);
+ }
- /**
- * @see org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor#read(javax.xml.stream.XMLStreamReader)
- */
- public ErlangBinding read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
- ErlangBinding binding = new ErlangBindingImpl();
+ /**
+ * @see org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor#getArtifactType()
+ */
+ public QName getArtifactType() {
+ return ErlangBinding.BINDING_ERLANG_QNAME;
+ }
- // Read the policies
- policyProcessor.readPolicies(binding, reader);
- binding.setNode(reader.getAttributeValue(null, "node"));
- String mboxValue = reader.getAttributeValue(null, "mbox");
- if (mboxValue != null && mboxValue.length() > 0) {
- boolean boolMboxValue = false;
- try {
- boolMboxValue = Boolean.parseBoolean(mboxValue);
- binding.setMbox(boolMboxValue);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- binding.setModule(reader.getAttributeValue(null, "module"));
- return binding;
- }
+ /**
+ * @see org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor#read(javax.xml.stream.XMLStreamReader)
+ */
+ public ErlangBinding read(XMLStreamReader reader)
+ throws ContributionReadException, XMLStreamException {
+ ErlangBinding binding = new ErlangBindingImpl();
- /**
- * @see org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor#write(java.lang.Object,
- * javax.xml.stream.XMLStreamWriter)
- */
- public void write(ErlangBinding model, XMLStreamWriter writer) throws ContributionWriteException,
- XMLStreamException {
- writer.writeStartElement(Constants.SCA10_TUSCANY_NS, "binding.erlang");
- //TODO: implement
- writer.writeEndElement();
- }
+ // Read the policies
+ policyProcessor.readPolicies(binding, reader);
+ binding.setNode(reader.getAttributeValue(null, "node"));
+ String mboxValue = reader.getAttributeValue(null, "mbox");
+ if (mboxValue != null && mboxValue.length() > 0) {
+ try {
+ boolean boolMboxValue = Boolean.parseBoolean(mboxValue);
+ binding.setMbox(boolMboxValue);
+ } catch (Exception e) {
+ }
+ }
+ String timeoutValue = reader.getAttributeValue(null, "timeout");
+ try {
+ long longTimeoutValue = Long.parseLong(timeoutValue);
+ binding.setTimeout(longTimeoutValue);
+ } catch (NumberFormatException e) {
+ }
+ binding.setModule(reader.getAttributeValue(null, "module"));
+ binding.setCookie(reader.getAttributeValue(null, "cookie"));
+ return binding;
+ }
- /**
- * @see org.apache.tuscany.sca.contribution.processor.ArtifactProcessor#getModelType()
- */
- public Class<ErlangBinding> getModelType() {
- return ErlangBinding.class;
- }
+ /**
+ * @see org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor#write(java.lang.Object,
+ * javax.xml.stream.XMLStreamWriter)
+ */
+ public void write(ErlangBinding model, XMLStreamWriter writer)
+ throws ContributionWriteException, XMLStreamException {
+ writer.writeStartElement(Constants.SCA10_TUSCANY_NS, "binding.erlang");
+ // TODO: implement writing binding element
+ writer.writeEndElement();
+ }
- /**
- * @see org.apache.tuscany.sca.contribution.processor.ArtifactProcessor#resolve(java.lang.Object,
- * org.apache.tuscany.sca.contribution.resolver.ModelResolver)
- */
- public void resolve(ErlangBinding model, ModelResolver resolver) throws ContributionResolveException {
- }
+ /**
+ * @see org.apache.tuscany.sca.contribution.processor.ArtifactProcessor#getModelType()
+ */
+ public Class<ErlangBinding> getModelType() {
+ return ErlangBinding.class;
+ }
+
+ /**
+ * @see org.apache.tuscany.sca.contribution.processor.ArtifactProcessor#resolve(java.lang.Object,
+ * org.apache.tuscany.sca.contribution.resolver.ModelResolver)
+ */
+ public void resolve(ErlangBinding model, ModelResolver resolver)
+ throws ContributionResolveException {
+ }
}
diff --git a/sandbox/wjaniszewski/binding-erlang/src/test/java/org/apache/tuscany/sca/binding/erlang/testing/ErlangBindingProcessorTestCase.java b/sandbox/wjaniszewski/binding-erlang/src/test/java/org/apache/tuscany/sca/binding/erlang/testing/ErlangBindingProcessorTestCase.java
index 72574b2fb6..6a229d1ea2 100644
--- a/sandbox/wjaniszewski/binding-erlang/src/test/java/org/apache/tuscany/sca/binding/erlang/testing/ErlangBindingProcessorTestCase.java
+++ b/sandbox/wjaniszewski/binding-erlang/src/test/java/org/apache/tuscany/sca/binding/erlang/testing/ErlangBindingProcessorTestCase.java
@@ -28,6 +28,7 @@ import javax.xml.stream.XMLStreamReader;
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.binding.erlang.ErlangBinding;
+import org.apache.tuscany.sca.binding.erlang.impl.ErlangBindingImpl;
import org.apache.tuscany.sca.contribution.processor.DefaultStAXArtifactProcessorExtensionPoint;
import org.apache.tuscany.sca.contribution.processor.ExtensibleStAXArtifactProcessor;
import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
@@ -50,10 +51,30 @@ public class ErlangBindingProcessorTestCase {
+ " <component name=\"HelloWorldComponent\">"
+ " <implementation.java class=\"services.HelloWorld\"/>"
+ " <service name=\"HelloWorldService\">"
+ + " <tuscany:binding.erlang node=\"SomeNode\" timeout=\"1000\" cookie=\"cookie\"/>"
+ + " </service>"
+ + " </component>"
+ + "</composite>";
+
+ private static final String COMPOSITE_DEFAULT_TIMEOUT =
+ "<?xml version=\"1.0\" encoding=\"ASCII\"?>" + "<composite xmlns=\"http://www.osoa.org/xmlns/sca/1.0\" xmlns:tuscany=\"http://tuscany.apache.org/xmlns/sca/1.0\" targetNamespace=\"http://binding-erlang\" name=\"binding-erlang\">"
+ + " <component name=\"HelloWorldComponent\">"
+ + " <implementation.java class=\"services.HelloWorld\"/>"
+ + " <service name=\"HelloWorldService\">"
+ " <tuscany:binding.erlang node=\"SomeNode\"/>"
+ " </service>"
+ " </component>"
+ "</composite>";
+
+ private static final String COMPOSITE_ZERO_TIMEOUT =
+ "<?xml version=\"1.0\" encoding=\"ASCII\"?>" + "<composite xmlns=\"http://www.osoa.org/xmlns/sca/1.0\" xmlns:tuscany=\"http://tuscany.apache.org/xmlns/sca/1.0\" targetNamespace=\"http://binding-erlang\" name=\"binding-erlang\">"
+ + " <component name=\"HelloWorldComponent\">"
+ + " <implementation.java class=\"services.HelloWorld\"/>"
+ + " <service name=\"HelloWorldService\">"
+ + " <tuscany:binding.erlang node=\"SomeNode\" timeout=\"0\"/>"
+ + " </service>"
+ + " </component>"
+ + "</composite>";
private static XMLInputFactory inputFactory;
private static StAXArtifactProcessor<Object> staxProcessor;
@@ -87,6 +108,37 @@ public class ErlangBindingProcessorTestCase {
ErlangBinding binding =
(ErlangBinding)composite.getComponents().get(0).getServices().get(0).getBindings().get(0);
assertEquals("SomeNode", binding.getNode());
+ assertEquals(1000, binding.getTimeout());
+ assertEquals("cookie", binding.getCookie());
+ }
+
+ /**
+ * Tests using default "resultTimeout" value
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testLoadDefaultTimeout() throws Exception {
+ XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(COMPOSITE_DEFAULT_TIMEOUT));
+ Composite composite = (Composite)staxProcessor.read(reader);
+ ErlangBinding binding =
+ (ErlangBinding)composite.getComponents().get(0).getServices().get(0).getBindings().get(0);
+ assertEquals(ErlangBindingImpl.DEFAULT_TIMEOUT, binding.getTimeout());
+ assertEquals(null, binding.getCookie());
}
+ /**
+ * Tests "resultTimeout" attribute set to 0
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testLoadZeroTimeout() throws Exception {
+ XMLStreamReader reader = inputFactory.createXMLStreamReader(new StringReader(COMPOSITE_ZERO_TIMEOUT));
+ Composite composite = (Composite)staxProcessor.read(reader);
+ ErlangBinding binding =
+ (ErlangBinding)composite.getComponents().get(0).getServices().get(0).getBindings().get(0);
+ assertEquals(ErlangBindingImpl.DEFAULT_TIMEOUT, binding.getTimeout());
+ }
+
}