From 420526884c2571aa4b17c69e98128bfd0612046e Mon Sep 17 00:00:00 2001 From: wjaniszewski Date: Thu, 19 Mar 2009 21:28:08 +0000 Subject: 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 --- .../tuscany/sca/binding/erlang/ErlangBinding.java | 8 + .../sca/binding/erlang/impl/ErlangBindingImpl.java | 181 ++++++++++++--------- .../erlang/impl/ErlangBindingProcessor.java | 122 +++++++------- .../testing/ErlangBindingProcessorTestCase.java | 52 ++++++ 4 files changed, 228 insertions(+), 135 deletions(-) (limited to 'sandbox/wjaniszewski/binding-erlang') 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 requiredIntents = new ArrayList(); - private List policySets = new ArrayList(); - private IntentAttachPointType intentAttachPointType; - private List applicablePolicySets = new ArrayList(); - - 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 getApplicablePolicySets() { - return applicablePolicySets; - } - - public List getPolicySets() { - return policySets; - } - - public List 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 requiredIntents = new ArrayList(); + private List policySets = new ArrayList(); + private IntentAttachPointType intentAttachPointType; + private List applicablePolicySets = new ArrayList(); + 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 getApplicablePolicySets() { + return applicablePolicySets; + } + + public List getPolicySets() { + return policySets; + } + + public List 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 { +public class ErlangBindingProcessor implements + StAXArtifactProcessor { - 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 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 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; @@ -46,6 +47,16 @@ import org.junit.Test; public class ErlangBindingProcessorTestCase { private static final String COMPOSITE = + "" + "" + + " " + + " " + + " " + + " " + + " " + + " " + + ""; + + private static final String COMPOSITE_DEFAULT_TIMEOUT = "" + "" + " " + " " @@ -54,6 +65,16 @@ public class ErlangBindingProcessorTestCase { + " " + " " + ""; + + private static final String COMPOSITE_ZERO_TIMEOUT = + "" + "" + + " " + + " " + + " " + + " " + + " " + + " " + + ""; private static XMLInputFactory inputFactory; private static StAXArtifactProcessor 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()); + } + } -- cgit v1.2.3