summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache
diff options
context:
space:
mode:
Diffstat (limited to 'branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache')
-rw-r--r--branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/ErlangBinding.java10
-rw-r--r--branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingImpl.java24
-rw-r--r--branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProcessor.java66
3 files changed, 90 insertions, 10 deletions
diff --git a/branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/ErlangBinding.java b/branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/ErlangBinding.java
index 4014dbc11f..a472e88f98 100644
--- a/branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/ErlangBinding.java
+++ b/branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/ErlangBinding.java
@@ -30,6 +30,8 @@ import org.apache.tuscany.sca.assembly.xml.Constants;
public interface ErlangBinding extends Binding {
final long NO_TIMEOUT = 0;
+ // NOTE: default thread pool size
+ final int DEFAULT_THREAD_POOL = 20;
QName BINDING_ERLANG_QNAME = new QName(Constants.SCA10_TUSCANY_NS, "binding.erlang");
@@ -56,5 +58,13 @@ public interface ErlangBinding extends Binding {
boolean hasTimeout();
boolean hasCookie();
+
+ int getServiceThreadPool();
+
+ void setServiceThreadPool(int threads);
+
+ boolean isDefaultTimeout();
+
+ boolean isDefaultServiceThreadPool();
}
diff --git a/branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingImpl.java b/branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingImpl.java
index 9c0e9c82e7..17fd731063 100644
--- a/branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingImpl.java
+++ b/branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingImpl.java
@@ -37,6 +37,10 @@ public class ErlangBindingImpl implements ErlangBinding, PolicySetAttachPoint {
private String module;
private boolean mbox;
private String cookie;
+ private int serviceThreadPool = DEFAULT_THREAD_POOL;
+
+ private boolean defaultTimeout = true;
+ private boolean defaultThreads = true;
private List<Intent> requiredIntents = new ArrayList<Intent>();
private List<PolicySet> policySets = new ArrayList<PolicySet>();
@@ -121,6 +125,9 @@ public class ErlangBindingImpl implements ErlangBinding, PolicySetAttachPoint {
public void setTimeout(long timeout) {
// NOTE: not setting timeout or setting it to 0 will cause no timeout
this.timeout = timeout;
+ if (timeout != 0) {
+ defaultTimeout = false;
+ }
}
public String getCookie() {
@@ -139,4 +146,21 @@ public class ErlangBindingImpl implements ErlangBinding, PolicySetAttachPoint {
return cookie != null && cookie.length() > 0;
}
+ public int getServiceThreadPool() {
+ return serviceThreadPool;
+ }
+
+ public void setServiceThreadPool(int threads) {
+ this.serviceThreadPool = threads;
+ this.defaultThreads = false;
+ }
+
+ public boolean isDefaultServiceThreadPool() {
+ return defaultThreads;
+ }
+
+ public boolean isDefaultTimeout() {
+ return defaultTimeout;
+ }
+
}
diff --git a/branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProcessor.java b/branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProcessor.java
index b611cb2296..07b7533314 100644
--- a/branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProcessor.java
+++ b/branches/sca-java-1.x/modules/binding-erlang/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProcessor.java
@@ -44,6 +44,13 @@ public class ErlangBindingProcessor implements
private PolicyFactory policyFactory;
private PolicyAttachPointProcessor policyProcessor;
+ private static final String ATTR_COOKIE = "cookie";
+ private static final String ATTR_MBOX = "mbox";
+ private static final String ATTR_MODULE = "module";
+ private static final String ATTR_NODE = "node";
+ private static final String ATTR_SERVICE_THREAD_POOL = "serviceThreadPool";
+ private static final String ATTR_TIMEOUT = "timeout";
+
public ErlangBindingProcessor(ModelFactoryExtensionPoint modelFactories) {
this.policyFactory = modelFactories.getFactory(PolicyFactory.class);
this.policyProcessor = new PolicyAttachPointProcessor(policyFactory);
@@ -65,23 +72,34 @@ public class ErlangBindingProcessor implements
// Read the policies
policyProcessor.readPolicies(binding, reader);
- binding.setNode(reader.getAttributeValue(null, "node"));
- String mboxValue = reader.getAttributeValue(null, "mbox");
+
+ binding.setNode(reader.getAttributeValue(null, ATTR_NODE));
+
+ String mboxValue = reader.getAttributeValue(null, ATTR_MBOX);
+
if (mboxValue != null && mboxValue.length() > 0) {
try {
- boolean boolMboxValue = Boolean.parseBoolean(mboxValue);
- binding.setMbox(boolMboxValue);
+ binding.setMbox(Boolean.parseBoolean(mboxValue));
} catch (Exception e) {
}
}
- String timeoutValue = reader.getAttributeValue(null, "timeout");
+
+ try {
+ binding.setTimeout(Long.parseLong(reader.getAttributeValue(null,
+ ATTR_TIMEOUT)));
+ } catch (NumberFormatException e) {
+ }
+
+ binding.setModule(reader.getAttributeValue(null, ATTR_MODULE));
+
+ binding.setCookie(reader.getAttributeValue(null, ATTR_COOKIE));
+
try {
- long longTimeoutValue = Long.parseLong(timeoutValue);
- binding.setTimeout(longTimeoutValue);
+ binding.setServiceThreadPool(Integer.parseInt(reader
+ .getAttributeValue(null, ATTR_SERVICE_THREAD_POOL)));
} catch (NumberFormatException e) {
}
- binding.setModule(reader.getAttributeValue(null, "module"));
- binding.setCookie(reader.getAttributeValue(null, "cookie"));
+
return binding;
}
@@ -91,8 +109,36 @@ public class ErlangBindingProcessor implements
*/
public void write(ErlangBinding model, XMLStreamWriter writer)
throws ContributionWriteException, XMLStreamException {
+
+
writer.writeStartElement(Constants.SCA10_TUSCANY_NS, "binding.erlang");
- // TODO: implement writing binding element
+
+ if (model.getCookie() != null && model.getCookie().length() > 0) {
+ writer.writeAttribute(ATTR_COOKIE, model.getCookie());
+ }
+
+ if (model.isMbox()) {
+ writer.writeAttribute(ATTR_MBOX, Boolean.TRUE.toString());
+ }
+
+ if (model.getModule() != null && model.getModule().length() > 0) {
+ writer.writeAttribute(ATTR_MODULE, model.getModule());
+ }
+
+ if (model.getNode() != null && model.getNode().length() > 0) {
+ writer.writeAttribute(ATTR_NODE, model.getNode());
+ }
+
+ if (!model.isDefaultServiceThreadPool()) {
+ writer.writeAttribute(ATTR_SERVICE_THREAD_POOL, Integer
+ .toString(model.getServiceThreadPool()));
+ }
+
+ if (!model.isDefaultTimeout()) {
+ writer.writeAttribute(ATTR_TIMEOUT, Long.toString(model
+ .getTimeout()));
+ }
+
writer.writeEndElement();
}