Author: rfeng
Date: Mon Feb  8 21:36:46 2010
New Revision: 907810

URL: http://svn.apache.org/viewvc?rev=907810&view=rev
Log:
Generate unique Node URI if it's not set in the NodeConfiguration

Modified:
    
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
    
tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java?rev=907810&r1=907809&r2=907810&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-api/src/main/java/org/apache/tuscany/sca/node/NodeFactory.java
 Mon Feb  8 21:36:46 2010
@@ -415,12 +415,11 @@
         return createNode(contributions);
     }
 
-    private volatile static int count =0;
     private NodeConfiguration createConfiguration(Contribution... 
contributions) {
         NodeConfigurationFactory factory = this;
         NodeConfiguration configuration = factory.createNodeConfiguration();
         // Make sure a unique node URI is created for the same node factory
-        configuration.setURI(Node.DEFAULT_NODE_URI+(count++));
+        configuration.setURI(generateNodeURI());
         if (contributions != null) {
             for (Contribution c : contributions) {
                 configuration.addContribution(c.getURI(), c.getLocation());
@@ -429,6 +428,12 @@
         return configuration;
     }
 
+    private static int count = 0;
+
+    protected synchronized String generateNodeURI() {
+        return Node.DEFAULT_NODE_URI + (count++);
+    }
+
     private Contribution[] getContributions(List<String> locations) {
         Contribution[] contributions = new Contribution[locations.size()];
         int index = 0;

Modified: 
tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java?rev=907810&r1=907809&r2=907810&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/NodeFactoryImpl.java
 Mon Feb  8 21:36:46 2010
@@ -108,6 +108,10 @@
 
     @Override
     public Node createNode(NodeConfiguration configuration) {
+        if (configuration.getURI() == null) {
+            // Make sure a unique node URI is created for the same node factory
+            configuration.setURI(generateNodeURI());
+        }
         return new NodeImpl(this, configuration);
     }
 


Reply via email to