summaryrefslogtreecommitdiffstats
path: root/sandbox/wjaniszewski/binding-erlang-runtime/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProviderFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/wjaniszewski/binding-erlang-runtime/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProviderFactory.java')
-rw-r--r--sandbox/wjaniszewski/binding-erlang-runtime/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProviderFactory.java33
1 files changed, 15 insertions, 18 deletions
diff --git a/sandbox/wjaniszewski/binding-erlang-runtime/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProviderFactory.java b/sandbox/wjaniszewski/binding-erlang-runtime/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProviderFactory.java
index d01d266332..f7ea057e56 100644
--- a/sandbox/wjaniszewski/binding-erlang-runtime/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProviderFactory.java
+++ b/sandbox/wjaniszewski/binding-erlang-runtime/src/main/java/org/apache/tuscany/sca/binding/erlang/impl/ErlangBindingProviderFactory.java
@@ -19,8 +19,8 @@
package org.apache.tuscany.sca.binding.erlang.impl;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.HashSet;
+import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -39,9 +39,10 @@ import org.apache.tuscany.sca.runtime.RuntimeComponentService;
public class ErlangBindingProviderFactory implements
BindingProviderFactory<ErlangBinding> {
- private Map<String, ErlangNode> nodes = new HashMap<String, ErlangNode>();
private static final Logger logger = Logger
.getLogger(ErlangBindingProviderFactory.class.getName());
+
+ private Set<String> nodes = new HashSet<String>();
public ErlangBindingProviderFactory(ExtensionPointRegistry registry) {
@@ -68,10 +69,18 @@ public class ErlangBindingProviderFactory implements
ErlangBinding binding) {
ServiceBindingProvider provider = null;
try {
- provider = new ErlangServiceBindingProvider(getErlangNode(binding
- .getNode()), binding, service);
+ if (nodes.contains(binding.getNode())) {
+ // TODO: externalize message?
+ logger.log(Level.WARNING,
+ "Node name '" + binding.getNode() + "' already registered. This service will not be spawned.");
+ } else {
+ provider = new ErlangServiceBindingProvider(binding, service);
+ nodes.add(binding.getNode());
+ }
} catch (Exception e) {
- logger.log(Level.WARNING, "Exception during creating ServiceBindingProvider", e);
+ // TODO: externalize message?
+ logger.log(Level.WARNING,
+ "Exception during creating ServiceBindingProvider", e);
}
return provider;
}
@@ -82,16 +91,4 @@ public class ErlangBindingProviderFactory implements
public Class<ErlangBinding> getModelType() {
return ErlangBinding.class;
}
-
- private ErlangNode getErlangNode(String name) throws Exception {
- ErlangNode result = null;
- if (nodes.containsKey(name)) {
- result = nodes.get(name);
- } else {
- result = new ErlangNode(name);
- nodes.put(name, result);
- }
- return result;
- }
-
}