You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by al...@apache.org on 2015/01/29 16:18:12 UTC

[4/6] juddi git commit: JUDDI-910 directed graph replication is now implemented, 3 instances of tomcat are now generates with juddi-tomcat build JUDDI-923 change record browser added, soap methods added for obtaining only failed (to apply changes) record

http://git-wip-us.apache.org/repos/asf/juddi/blob/c0354a44/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/JuddiAdminService.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/JuddiAdminService.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/JuddiAdminService.java
index 65f5863..69a1900 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/JuddiAdminService.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/JuddiAdminService.java
@@ -22,6 +22,8 @@ import javax.xml.bind.JAXB;
 import javax.xml.ws.BindingProvider;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.juddi.api_v3.DeleteNode;
+import org.apache.juddi.api_v3.GetFailedReplicationChangeRecordsMessageRequest;
+import org.apache.juddi.api_v3.GetFailedReplicationChangeRecordsMessageResponse;
 import org.apache.juddi.api_v3.Node;
 import org.apache.juddi.api_v3.NodeDetail;
 import org.apache.juddi.api_v3.NodeList;
@@ -43,6 +45,7 @@ import org.uddi.api_v3.PersonName;
 import org.uddi.api_v3.Phone;
 import org.uddi.repl_v3.ChangeRecordIDType;
 import org.uddi.repl_v3.CommunicationGraph;
+import org.uddi.repl_v3.CommunicationGraph.Edge;
 import org.uddi.repl_v3.Operator;
 import org.uddi.repl_v3.OperatorStatusType;
 import org.uddi.repl_v3.ReplicationConfiguration;
@@ -56,23 +59,25 @@ import org.uddi.v3_service.UDDISecurityPortType;
  */
 public class JuddiAdminService {
 
-        private static UDDISecurityPortType security = null;
-        private static UDDIPublicationPortType publish = null;
+      //  private static UDDISecurityPortType security = null;
+        //  private static UDDIPublicationPortType publish = null;
         static JUDDIApiPortType juddi = null;
-        static UDDIClerk clerk = null;
+        // static UDDIClerk clerk = null;
         static UDDIClient clerkManager = null;
 
-        public JuddiAdminService() {
+        public JuddiAdminService(UDDIClient client, Transport transport) {
                 try {
+                        clerkManager = client;
+                        if (transport==null)
                         // create a manager and read the config in the archive; 
                         // you can use your config file name
-                        clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
-                        clerk = clerkManager.getClerk("default");
+                        // clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
+                        //clerk = clerkManager.getClerk("default");
                         // The transport can be WS, inVM, RMI etc which is defined in the uddi.xml
-                        Transport transport = clerkManager.getTransport();
+                                transport = clerkManager.getTransport();
                         // Now you create a reference to the UDDI API
-                        security = transport.getUDDISecurityService();
-                        publish = transport.getUDDIPublishService();
+                        //security = transport.getUDDISecurityService();
+                        //publish = transport.getUDDIPublishService();
                         juddi = transport.getJUDDIApiService();
                 } catch (Exception e) {
                         e.printStackTrace();
@@ -187,17 +192,8 @@ public class JuddiAdminService {
 
         }
 
-        void viewReplicationConfig(String authtoken) throws Exception {
-                List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
-                System.out.println();
-                System.out.println("Select a node (from *this config)");
-                for (int i = 0; i < uddiNodeList.size(); i++) {
-                        System.out.print(i + 1);
-                        System.out.println(") " + uddiNodeList.get(i).getName() + uddiNodeList.get(i).getDescription());
-                }
-                System.out.println("Node #: ");
-                int index = Integer.parseInt(System.console().readLine()) - 1;
-                String node = uddiNodeList.get(index).getName();
+        void viewReplicationConfig(String authtoken, String node) throws Exception {
+                
                 Transport transport = clerkManager.getTransport(node);
 
                 JUDDIApiPortType juddiApiService = transport.getJUDDIApiService();
@@ -454,8 +450,9 @@ public class JuddiAdminService {
                 return pn;
         }
 
-        void autoMagic() throws Exception {
+        void autoMagic123() throws Exception {
 
+                //1 > 2 >3 >1
                 List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
 
                 Transport transport = clerkManager.getTransport("default");
@@ -494,8 +491,19 @@ public class JuddiAdminService {
                 op.getContact().get(0).getPersonName().add(new PersonName("mary", "en"));
                 op.getContact().get(0).setUseType("admin");
                 replicationNodes.getOperator().add(op);
+                op = new Operator();
+
+                op.setOperatorNodeID("uddi:yet.another.juddi.apache.org:node3");
+                op.setSoapReplicationURL("http://localhost:10080/juddiv3/services/replication");
+                op.setOperatorStatus(OperatorStatusType.NORMAL);
+                op.getContact().add(new Contact());
+                op.getContact().get(0).getPersonName().add(new PersonName("mary", "en"));
+                op.getContact().get(0).setUseType("admin");
+                replicationNodes.getOperator().add(op);
+
                 replicationNodes.getCommunicationGraph().getNode().add("uddi:another.juddi.apache.org:node2");
                 replicationNodes.getCommunicationGraph().getNode().add("uddi:juddi.apache.org:node1");
+                replicationNodes.getCommunicationGraph().getNode().add("uddi:yet.another.juddi.apache.org:node3");
                 replicationNodes.setSerialNumber(0L);
                 replicationNodes.setTimeOfConfigurationUpdate("");
                 replicationNodes.setMaximumTimeToGetChanges(BigInteger.ONE);
@@ -508,19 +516,125 @@ public class JuddiAdminService {
 
                 JAXB.marshal(replicationNodes, System.out);
                 juddiApiService.setReplicationNodes(authtoken, replicationNodes);
-                
+
                 transport = clerkManager.getTransport("uddi:another.juddi.apache.org:node2");
-                 authtoken = transport.getUDDISecurityService().getAuthToken(new GetAuthToken("root", "root")).getAuthInfo();
+                authtoken = transport.getUDDISecurityService().getAuthToken(new GetAuthToken("root", "root")).getAuthInfo();
+
+                juddiApiService = transport.getJUDDIApiService();
+                juddiApiService.setReplicationNodes(authtoken, replicationNodes);
+
+                transport = clerkManager.getTransport("uddi:yet.another.juddi.apache.org:node3");
+                authtoken = transport.getUDDISecurityService().getAuthToken(new GetAuthToken("root", "root")).getAuthInfo();
 
                 juddiApiService = transport.getJUDDIApiService();
                 juddiApiService.setReplicationNodes(authtoken, replicationNodes);
-             
 
         }
 
-        void printStatus() throws Exception{
-                
-                
+        void autoMagicDirected() throws Exception {
+
+                //1 > 2 >3 >1
+                List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
+
+                Transport transport = clerkManager.getTransport("default");
+                String authtoken = transport.getUDDISecurityService().getAuthToken(new GetAuthToken("root", "root")).getAuthInfo();
+
+                JUDDIApiPortType juddiApiService = transport.getJUDDIApiService();
+                System.out.println("fetching...");
+
+                ReplicationConfiguration replicationNodes = null;
+                try {
+                        replicationNodes = juddiApiService.getReplicationNodes(authtoken);
+                } catch (Exception ex) {
+                        System.out.println("Error getting replication config");
+                        ex.printStackTrace();
+                        replicationNodes = new ReplicationConfiguration();
+
+                }
+                if (replicationNodes.getCommunicationGraph() == null) {
+                        replicationNodes.setCommunicationGraph(new CommunicationGraph());
+                }
+                Operator op = new Operator();
+                op.setOperatorNodeID("uddi:juddi.apache.org:node1");
+                op.setSoapReplicationURL("http://localhost:8080/juddiv3/services/replication");
+                op.setOperatorStatus(OperatorStatusType.NORMAL);
+                op.getContact().add(new Contact());
+                op.getContact().get(0).getPersonName().add(new PersonName("bob", "en"));
+                op.getContact().get(0).setUseType("admin");
+                replicationNodes.getOperator().clear();
+                replicationNodes.getOperator().add(op);
+
+                op = new Operator();
+                op.setOperatorNodeID("uddi:another.juddi.apache.org:node2");
+                op.setSoapReplicationURL("http://localhost:9080/juddiv3/services/replication");
+                op.setOperatorStatus(OperatorStatusType.NORMAL);
+                op.getContact().add(new Contact());
+                op.getContact().get(0).getPersonName().add(new PersonName("mary", "en"));
+                op.getContact().get(0).setUseType("admin");
+                replicationNodes.getOperator().add(op);
+                op = new Operator();
+
+                op.setOperatorNodeID("uddi:yet.another.juddi.apache.org:node3");
+                op.setSoapReplicationURL("http://localhost:10080/juddiv3/services/replication");
+                op.setOperatorStatus(OperatorStatusType.NORMAL);
+                op.getContact().add(new Contact());
+                op.getContact().get(0).getPersonName().add(new PersonName("mary", "en"));
+                op.getContact().get(0).setUseType("admin");
+                replicationNodes.getOperator().add(op);
+                replicationNodes.getCommunicationGraph().getNode().clear();
+                replicationNodes.getCommunicationGraph().getNode().add("uddi:another.juddi.apache.org:node2");
+                replicationNodes.getCommunicationGraph().getNode().add("uddi:juddi.apache.org:node1");
+                replicationNodes.getCommunicationGraph().getNode().add("uddi:yet.another.juddi.apache.org:node3");
+                replicationNodes.getCommunicationGraph().getEdge().clear();
+                Edge e = new CommunicationGraph.Edge();
+                e.setMessageSender("uddi:juddi.apache.org:node1");
+                e.setMessageReceiver("uddi:another.juddi.apache.org:node2");
+                replicationNodes.getCommunicationGraph().getEdge().add(e);
+
+                e = new CommunicationGraph.Edge();
+                e.setMessageSender("uddi:another.juddi.apache.org:node2");
+                e.setMessageReceiver("uddi:yet.another.juddi.apache.org:node3");
+                replicationNodes.getCommunicationGraph().getEdge().add(e);
+
+                e = new CommunicationGraph.Edge();
+                e.setMessageSender("uddi:yet.another.juddi.apache.org:node3");
+                e.setMessageReceiver("uddi:juddi.apache.org:node1");
+                replicationNodes.getCommunicationGraph().getEdge().add(e);
+
+                replicationNodes.setSerialNumber(0L);
+                replicationNodes.setTimeOfConfigurationUpdate("");
+                replicationNodes.setMaximumTimeToGetChanges(BigInteger.ONE);
+                replicationNodes.setMaximumTimeToSyncRegistry(BigInteger.ONE);
+
+                if (replicationNodes.getRegistryContact().getContact() == null) {
+                        replicationNodes.getRegistryContact().setContact(new Contact());
+                        replicationNodes.getRegistryContact().getContact().getPersonName().add(new PersonName("unknown", null));
+                }
+
+                JAXB.marshal(replicationNodes, System.out);
+
+                juddiApiService.setReplicationNodes(authtoken, replicationNodes);
+                System.out.println("Saved to node1");
+                TestEquals(replicationNodes, juddiApiService.getReplicationNodes(authtoken));
+
+                transport = clerkManager.getTransport("uddi:another.juddi.apache.org:node2");
+                authtoken = transport.getUDDISecurityService().getAuthToken(new GetAuthToken("root", "root")).getAuthInfo();
+                juddiApiService = transport.getJUDDIApiService();
+                juddiApiService.setReplicationNodes(authtoken, replicationNodes);
+                System.out.println("Saved to node2");
+                TestEquals(replicationNodes, juddiApiService.getReplicationNodes(authtoken));
+
+                transport = clerkManager.getTransport("uddi:yet.another.juddi.apache.org:node3");
+                authtoken = transport.getUDDISecurityService().getAuthToken(new GetAuthToken("root", "root")).getAuthInfo();
+                juddiApiService = transport.getJUDDIApiService();
+                juddiApiService.setReplicationNodes(authtoken, replicationNodes);
+                System.out.println("Saved to node3");
+                TestEquals(replicationNodes, juddiApiService.getReplicationNodes(authtoken));
+
+        }
+
+        void autoMagic() throws Exception {
+
                 List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
 
                 Transport transport = clerkManager.getTransport("default");
@@ -538,17 +652,152 @@ public class JuddiAdminService {
                         replicationNodes = new ReplicationConfiguration();
 
                 }
+                if (replicationNodes.getCommunicationGraph() == null) {
+                        replicationNodes.setCommunicationGraph(new CommunicationGraph());
+                }
+                Operator op = new Operator();
+                op.setOperatorNodeID("uddi:juddi.apache.org:node1");
+                op.setSoapReplicationURL("http://localhost:8080/juddiv3/services/replication");
+                op.setOperatorStatus(OperatorStatusType.NORMAL);
+                op.getContact().add(new Contact());
+                op.getContact().get(0).getPersonName().add(new PersonName("bob", "en"));
+                op.getContact().get(0).setUseType("admin");
+                replicationNodes.getOperator().clear();
+                replicationNodes.getOperator().add(op);
+
+                op = new Operator();
+                op.setOperatorNodeID("uddi:another.juddi.apache.org:node2");
+                op.setSoapReplicationURL("http://localhost:9080/juddiv3/services/replication");
+                op.setOperatorStatus(OperatorStatusType.NORMAL);
+                op.getContact().add(new Contact());
+                op.getContact().get(0).getPersonName().add(new PersonName("mary", "en"));
+                op.getContact().get(0).setUseType("admin");
+                replicationNodes.getOperator().add(op);
+                replicationNodes.getCommunicationGraph().getNode().add("uddi:another.juddi.apache.org:node2");
+                replicationNodes.getCommunicationGraph().getNode().add("uddi:juddi.apache.org:node1");
+                replicationNodes.setSerialNumber(0L);
+                replicationNodes.setTimeOfConfigurationUpdate("");
+                replicationNodes.setMaximumTimeToGetChanges(BigInteger.ONE);
+                replicationNodes.setMaximumTimeToSyncRegistry(BigInteger.ONE);
+
+                if (replicationNodes.getRegistryContact().getContact() == null) {
+                        replicationNodes.getRegistryContact().setContact(new Contact());
+                        replicationNodes.getRegistryContact().getContact().getPersonName().add(new PersonName("unknown", null));
+                }
+
+                JAXB.marshal(replicationNodes, System.out);
+                juddiApiService.setReplicationNodes(authtoken, replicationNodes);
+
+                transport = clerkManager.getTransport("uddi:another.juddi.apache.org:node2");
+                authtoken = transport.getUDDISecurityService().getAuthToken(new GetAuthToken("root", "root")).getAuthInfo();
+
+                juddiApiService = transport.getJUDDIApiService();
+                juddiApiService.setReplicationNodes(authtoken, replicationNodes);
+
+        }
+
+        void printStatus(Transport transport, String authtoken) throws Exception {
+
+                JUDDIApiPortType juddiApiService = transport.getJUDDIApiService();
+                System.out.println("fetching...");
+
+                ReplicationConfiguration replicationNodes = null;
+                try {
+                        replicationNodes = juddiApiService.getReplicationNodes(authtoken);
+                } catch (Exception ex) {
+                        System.out.println("Error getting replication config");
+                        ex.printStackTrace();
+                        replicationNodes = new ReplicationConfiguration();
+
+                }
                 UDDIReplicationPortType uddiReplicationPort = new UDDIService().getUDDIReplicationPort();
-                
-                for (Operator o: replicationNodes.getOperator()){
+
+                for (Operator o : replicationNodes.getOperator()) {
                         System.out.println("*******************\n\rstats for node " + o.getOperatorNodeID());
-                        ((BindingProvider)uddiReplicationPort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, o.getSoapReplicationURL());
-                        
+                        ((BindingProvider) uddiReplicationPort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, o.getSoapReplicationURL());
+
                         List<ChangeRecordIDType> highWaterMarks = uddiReplicationPort.getHighWaterMarks();
-                        for (ChangeRecordIDType cr : highWaterMarks){
+                        for (ChangeRecordIDType cr : highWaterMarks) {
                                 JAXB.marshal(cr, System.out);
                         }
                 }
-                
+        }
+
+        void printStatus() throws Exception {
+
+                //List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
+
+                Transport transport = clerkManager.getTransport("default");
+                String authtoken = transport.getUDDISecurityService().getAuthToken(new GetAuthToken("root", "root")).getAuthInfo();
+
+                JUDDIApiPortType juddiApiService = transport.getJUDDIApiService();
+                System.out.println("fetching...");
+
+                ReplicationConfiguration replicationNodes = null;
+                try {
+                        replicationNodes = juddiApiService.getReplicationNodes(authtoken);
+                } catch (Exception ex) {
+                        System.out.println("Error getting replication config");
+                        ex.printStackTrace();
+                        replicationNodes = new ReplicationConfiguration();
+
+                }
+                UDDIReplicationPortType uddiReplicationPort = new UDDIService().getUDDIReplicationPort();
+
+                for (Operator o : replicationNodes.getOperator()) {
+                        System.out.println("*******************\n\rstats for node " + o.getOperatorNodeID());
+                        ((BindingProvider) uddiReplicationPort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, o.getSoapReplicationURL());
+
+                        List<ChangeRecordIDType> highWaterMarks = uddiReplicationPort.getHighWaterMarks();
+                        for (ChangeRecordIDType cr : highWaterMarks) {
+                                JAXB.marshal(cr, System.out);
+                        }
+                }
+
+        }
+
+        private void TestEquals(ReplicationConfiguration setter, ReplicationConfiguration getter) {
+                if (getter == null) {
+                        l("null getter");
+                        return;
+                }
+                if (setter == null) {
+                        l("null setter");
+                        return;
+                }
+                if (getter.getOperator().size() != setter.getOperator().size()) {
+                        l("operator size mismatch");
+                        return;
+                }
+                if (getter.getCommunicationGraph().getNode().size() != setter.getCommunicationGraph().getNode().size()) {
+                        l("comm/node size mismatch");
+                        return;
+                }
+                if (getter.getCommunicationGraph().getEdge().size() != setter.getCommunicationGraph().getEdge().size()) {
+                        l("comm/node size mismatch");
+                        return;
+                }
+
+        }
+
+        private void l(String msg) {
+                System.out.println(msg);
+        }
+
+        void dumpFailedReplicationRecords(String authtoken) throws Exception {
+                GetFailedReplicationChangeRecordsMessageRequest req = new GetFailedReplicationChangeRecordsMessageRequest();
+                req.setAuthInfo(authtoken);
+                req.setMaxRecords(20);
+                req.setOffset(0);
+                GetFailedReplicationChangeRecordsMessageResponse failedReplicationChangeRecords = juddi.getFailedReplicationChangeRecords(req);
+                while (failedReplicationChangeRecords != null
+                        && failedReplicationChangeRecords.getChangeRecords() != null
+                        && !failedReplicationChangeRecords.getChangeRecords().getChangeRecord().isEmpty()) {
+                        for (int i = 0; i < failedReplicationChangeRecords.getChangeRecords().getChangeRecord().size(); i++) {
+                                JAXB.marshal(failedReplicationChangeRecords.getChangeRecords().getChangeRecord().get(i), System.out);
+                        }
+                        req.setOffset(req.getOffset() + failedReplicationChangeRecords.getChangeRecords().getChangeRecord().size());
+                        failedReplicationChangeRecords = juddi.getFailedReplicationChangeRecords(req);
+                }
         }
 }

http://git-wip-us.apache.org/repos/asf/juddi/blob/c0354a44/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiCreatebulk.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiCreatebulk.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiCreatebulk.java
index 7825e79..cf46f3a 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiCreatebulk.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiCreatebulk.java
@@ -40,13 +40,14 @@ public class UddiCreatebulk {
 
         private static UDDISecurityPortType security = null;
         private static UDDIPublicationPortType publish = null;
-
+        String curretNode = null;
         public UddiCreatebulk(String node) {
                 try {
                         // create a manager and read the config in the archive; 
                         // you can use your config file name
                         UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
                         Transport transport = clerkManager.getTransport(node);
+                        curretNode=node;
                         // Now you create a reference to the UDDI API
                         security = transport.getUDDISecurityService();
                         publish = transport.getUDDIPublishService();
@@ -54,6 +55,16 @@ public class UddiCreatebulk {
                         e.printStackTrace();
                 }
         }
+        
+        public UddiCreatebulk(Transport transport, boolean notused, String node) {
+                try {
+                       curretNode=node;
+                        security = transport.getUDDISecurityService();
+                        publish = transport.getUDDIPublishService();
+                } catch (Exception e) {
+                        e.printStackTrace();
+                }
+        }
 
         public void publishBusiness(String token, int businesses, int servicesPerBusiness) {
                 try {
@@ -80,7 +91,7 @@ public class UddiCreatebulk {
                                 BusinessEntity myBusEntity = new BusinessEntity();
                                 Name myBusName = new Name();
                                 myBusName.setLang("en");
-                                myBusName.setValue("My Business " + i + " " + xcal.toString() + " " + textgen.getWords(5, 2) );
+                                myBusName.setValue("My Business " +curretNode +" " + i + " " + xcal.toString() + " " + textgen.getWords(5, 2) );
                                 myBusEntity.getDescription().add(new Description( textgen.getWords(10, 2), null));
                                 myBusEntity.getName().add(myBusName);
 
@@ -98,7 +109,7 @@ public class UddiCreatebulk {
                                         myService.setBusinessKey(myBusKey);
                                         Name myServName = new Name();
                                         myServName.setLang("en");
-                                        myServName.setValue("My Service " + i + " " + k + " " + xcal.toString()+ " " + textgen.getWords(5, 2) );
+                                        myServName.setValue("My Service " +curretNode+" "+ i + " " + k + " " + xcal.toString()+ " " + textgen.getWords(5, 2) );
                                         myService.getName().add(myServName);
                                         myService.getDescription().add(new Description( textgen.getWords(10, 2), null));
                                         

http://git-wip-us.apache.org/repos/asf/juddi/blob/c0354a44/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiDigitalSignatureBusiness.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiDigitalSignatureBusiness.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiDigitalSignatureBusiness.java
index aac42d9..4ec5b6d 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiDigitalSignatureBusiness.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiDigitalSignatureBusiness.java
@@ -56,6 +56,18 @@ public class UddiDigitalSignatureBusiness {
                         e.printStackTrace();
                 }
         }
+        
+        public UddiDigitalSignatureBusiness(Transport transport) {
+                try {
+                       
+                        // Now you create a reference to the UDDI API
+                        security = transport.getUDDISecurityService();
+                        inquiry = transport.getUDDIInquiryService();
+                        publish = transport.getUDDIPublishService();
+                } catch (Exception e) {
+                        e.printStackTrace();
+                }
+        }
 
         /**
          * Main entry point

http://git-wip-us.apache.org/repos/asf/juddi/blob/c0354a44/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiReplication.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiReplication.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiReplication.java
index ea6fc52..4448df5 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiReplication.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiReplication.java
@@ -16,13 +16,14 @@
 package org.apache.juddi.samples;
 
 import java.math.BigInteger;
-import java.rmi.RemoteException;
 import java.util.List;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import javax.xml.bind.JAXB;
 import javax.xml.ws.BindingProvider;
+import org.apache.commons.configuration.ConfigurationException;
 import org.apache.juddi.v3.client.UDDIService;
+import org.apache.juddi.v3.client.config.UDDIClient;
 import org.uddi.repl_v3.ChangeRecord;
 import org.uddi.repl_v3.ChangeRecordIDType;
 import org.uddi.repl_v3.ChangeRecords;
@@ -37,13 +38,16 @@ import org.uddi.v3_service.UDDIReplicationPortType;
  */
 class UddiReplication {
 
-        public UddiReplication() {
+        public UddiReplication(UDDIClient client, String nodename) throws ConfigurationException {
+
+                 uddiReplicationPort = new UDDIService().getUDDIReplicationPort();
+                ((BindingProvider) uddiReplicationPort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, client.getClientConfig().getUDDINode(nodename).getReplicationUrl());
         }
 
-        String DoPing(String key2) {
+        UDDIReplicationPortType uddiReplicationPort = null;
+
+        String DoPing() {
                 try {
-                        UDDIReplicationPortType uddiReplicationPort = new UDDIService().getUDDIReplicationPort();
-                        ((BindingProvider) uddiReplicationPort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, key2);
                         String doPing = uddiReplicationPort.doPing(new DoPing());
                         System.out.println("Ping Success, remote node's id is " + doPing);
                         return doPing;
@@ -53,31 +57,26 @@ class UddiReplication {
                 return null;
         }
 
-        void GetHighWatermarks(String key2) {
+        void GetHighWatermarks() {
                 try {
-                        UDDIReplicationPortType uddiReplicationPort = new UDDIService().getUDDIReplicationPort();
-                        ((BindingProvider) uddiReplicationPort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, key2);
-                        List<ChangeRecordIDType> highWaterMarks = uddiReplicationPort.getHighWaterMarks();
+                           List<ChangeRecordIDType> highWaterMarks = uddiReplicationPort.getHighWaterMarks();
                         System.out.println("Success....");
                         System.out.println("Node, USN");
                         for (int i = 0; i < highWaterMarks.size(); i++) {
                                 System.out.println(
-                                     highWaterMarks.get(i).getNodeID() + ", "
-                                     + highWaterMarks.get(i).getOriginatingUSN());
+                                        highWaterMarks.get(i).getNodeID() + ", "
+                                        + highWaterMarks.get(i).getOriginatingUSN());
                         }
                 } catch (Exception ex) {
                         Logger.getLogger(UddiReplication.class.getName()).log(Level.SEVERE, null, ex);
                 }
         }
 
-        void GetChangeRecords(String key2, Long record, String sourcenode) {
+        void GetChangeRecords(Long record, String sourcenode) {
                 try {
-                        UDDIReplicationPortType uddiReplicationPort = new UDDIService().getUDDIReplicationPort();
                         HighWaterMarkVectorType highWaterMarkVectorType = new HighWaterMarkVectorType();
-                        
-                        
-                        highWaterMarkVectorType.getHighWaterMark().add(new ChangeRecordIDType(DoPing(key2), record));
-                        ((BindingProvider) uddiReplicationPort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, key2);
+
+                        highWaterMarkVectorType.getHighWaterMark().add(new ChangeRecordIDType(DoPing(), record));
                         GetChangeRecords req = new GetChangeRecords();
                         req.setRequestingNode(sourcenode);
                         req.setChangesAlreadySeen(highWaterMarkVectorType);
@@ -88,9 +87,9 @@ class UddiReplication {
                         System.out.println("Node, USN, type");
                         for (int i = 0; i < changeRecords.size(); i++) {
                                 System.out.println(
-                                     changeRecords.get(i).getChangeID().getNodeID() + ", "
-                                     + changeRecords.get(i).getChangeID().getOriginatingUSN() + ": "
-                                     + GetChangeType(changeRecords.get(i)));
+                                        changeRecords.get(i).getChangeID().getNodeID() + ", "
+                                        + changeRecords.get(i).getChangeID().getOriginatingUSN() + ": "
+                                        + GetChangeType(changeRecords.get(i)));
                                 JAXB.marshal(changeRecords.get(i), System.out);
                         }
                 } catch (Exception ex) {

http://git-wip-us.apache.org/repos/asf/juddi/blob/c0354a44/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscribe.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscribe.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscribe.java
index 38306ab..093a759 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscribe.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscribe.java
@@ -68,6 +68,24 @@ public class UddiSubscribe implements ISubscriptionCallback, Runnable {
                         e.printStackTrace();
                 }
         }
+        String nodename = "default";
+        public UddiSubscribe(UDDIClient client, String nodename, Transport transport) {
+                try {
+                        // create a manager and read the config in the archive; 
+                        // you can use your config file name
+                        //client = new UDDIClient("META-INF/simple-publish-uddi.xml");
+                        clerk = client.getClerk(nodename);
+                        this.nodename = nodename;
+                        // Now you create a reference to the UDDI API
+                        security = transport.getUDDISecurityService();
+                        juddiApi = transport.getJUDDIApiService();
+                        publish = transport.getUDDIPublishService();
+                        uddiInquiryService = transport.getUDDIInquiryService();
+                        uddiSubscriptionService = transport.getUDDISubscriptionService();
+                } catch (Exception e) {
+                        e.printStackTrace();
+                }
+        }
 
         public static void main(String args[]) throws Exception {
                 UddiSubscribe sp = new UddiSubscribe();
@@ -95,7 +113,7 @@ public class UddiSubscribe implements ISubscriptionCallback, Runnable {
                 System.out.println("Registered business keygen: " + register.getBusinessKey());
 
                 //start up our listener
-                BindingTemplate start = SubscriptionCallbackListener.start(client, "default");
+                BindingTemplate start = SubscriptionCallbackListener.start(client, nodename);
 
                 //register for callbacks
                 SubscriptionCallbackListener.registerCallback(this);
@@ -189,7 +207,7 @@ public class UddiSubscribe implements ISubscriptionCallback, Runnable {
 
                 System.in.read();
 
-                SubscriptionCallbackListener.stop(client, "default", start.getBindingKey());
+                SubscriptionCallbackListener.stop(client, nodename, start.getBindingKey());
                 clerk.unRegisterSubscription(subscriptionBiz.getSubscriptionKey());
                 clerk.unRegisterSubscription(subscriptionSvc.getSubscriptionKey());
                 clerk.unRegisterSubscription(subscriptionTM.getSubscriptionKey());

http://git-wip-us.apache.org/repos/asf/juddi/blob/c0354a44/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscribeAssertionStatus.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscribeAssertionStatus.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscribeAssertionStatus.java
index 58f241f..0c14e5d 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscribeAssertionStatus.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscribeAssertionStatus.java
@@ -69,12 +69,26 @@ public class UddiSubscribeAssertionStatus implements ISubscriptionCallback, Runn
                 }
         }
 
+         public UddiSubscribeAssertionStatus(Transport transport) {
+                try {
+                        // Now you create a reference to the UDDI API
+                        security = transport.getUDDISecurityService();
+                        juddiApi = transport.getJUDDIApiService();
+                        publish = transport.getUDDIPublishService();
+                        uddiInquiryService = transport.getUDDIInquiryService();
+                        uddiSubscriptionService = transport.getUDDISubscriptionService();
+                } catch (Exception e) {
+                        e.printStackTrace();
+                }
+        }
+
+         
         public static void main(String args[]) throws Exception {
                 UddiSubscribeAssertionStatus sp = new UddiSubscribeAssertionStatus();
-                sp.Fire();
+                sp.Fire("default");
         }
 
-        public void Fire() throws Exception {
+        public void Fire(String nodename) throws Exception {
 
                 TModel createKeyGenator = UDDIClerk.createKeyGenator("somebusiness", "A test key domain SubscriptionCallbackTest1", "SubscriptionCallbackTest1");
 
@@ -95,7 +109,7 @@ public class UddiSubscribeAssertionStatus implements ISubscriptionCallback, Runn
                 System.out.println("Registered business keygen: " + register.getBusinessKey());
 
                 //start up our listener
-                BindingTemplate start = SubscriptionCallbackListener.start(client, "default");
+                BindingTemplate start = SubscriptionCallbackListener.start(client, nodename);
 
                 //register for callbacks
                 SubscriptionCallbackListener.registerCallback(this);
@@ -118,7 +132,7 @@ public class UddiSubscribeAssertionStatus implements ISubscriptionCallback, Runn
                 
                         System.in.read();
                 
-                SubscriptionCallbackListener.stop(client, "default", start.getBindingKey());
+                SubscriptionCallbackListener.stop(client, nodename, start.getBindingKey());
                 clerk.unRegisterSubscription(subscriptionBiz.getSubscriptionKey());
 
                 clerk.unRegisterTModel(createKeyGenator.getTModelKey());

http://git-wip-us.apache.org/repos/asf/juddi/blob/c0354a44/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscribeValidate.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscribeValidate.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscribeValidate.java
index 6192362..2d7a83f 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscribeValidate.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscribeValidate.java
@@ -65,6 +65,20 @@ public class UddiSubscribeValidate {
                         e.printStackTrace();
                 }
         }
+        
+          public UddiSubscribeValidate(Transport transport) {
+                try {
+                        // Now you create a reference to the UDDI API
+                        security = transport.getUDDISecurityService();
+                        juddiApi = transport.getJUDDIApiService();
+                        publish = transport.getUDDIPublishService();
+                        uddiInquiryService = transport.getUDDIInquiryService();
+                        uddiSubscriptionService = transport.getUDDISubscriptionService();
+                        uddiSubscriptionListenerService = transport.getUDDISubscriptionListenerService();
+                } catch (Exception e) {
+                        e.printStackTrace();
+                }
+        }
 
         /**
          * gets subscription results synchronously

http://git-wip-us.apache.org/repos/asf/juddi/blob/c0354a44/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscriptionManagement.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscriptionManagement.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscriptionManagement.java
index e303bef..27c3c5a 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscriptionManagement.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiSubscriptionManagement.java
@@ -74,6 +74,19 @@ public class UddiSubscriptionManagement {
                         e.printStackTrace();
                 }
         }
+        
+         public UddiSubscriptionManagement(Transport transport) {
+                try {
+                       
+                        // Now you create a reference to the UDDI API
+                        security = transport.getUDDISecurityService();
+                        publish = transport.getUDDIPublishService();
+                        uddiInquiryService = transport.getUDDIInquiryService();
+                        uddiSubscriptionService = transport.getUDDISubscriptionService();
+                } catch (Exception e) {
+                        e.printStackTrace();
+                }
+        }
 
         public static void main(String args[]) throws Exception {
                 UddiSubscriptionManagement sp = new UddiSubscriptionManagement();

http://git-wip-us.apache.org/repos/asf/juddi/blob/c0354a44/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/WadlImport.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/WadlImport.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/WadlImport.java
index 08be299..c53d45c 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/WadlImport.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/WadlImport.java
@@ -62,12 +62,14 @@ public class WadlImport {
         private static JUDDIApiPortType juddiApi = null;
         private static UDDIPublicationPortType publish = null;
 
-        public void Fire(String pathOrURL, String businessKey, String token) throws Exception {
+        public void Fire(String pathOrURL, String businessKey, String token, Transport transport) throws Exception {
 
+                if (transport == null) {
                 // create a manager and read the config in the archive; 
-                // you can use your config file name
-                UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
-                Transport transport = clerkManager.getTransport();
+                        // you can use your config file name
+                        UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
+                        transport = clerkManager.getTransport();
+                }
                 // Now you create a reference to the UDDI API
                 security = transport.getUDDISecurityService();
                 publish = transport.getUDDIPublishService();
@@ -161,7 +163,7 @@ public class WadlImport {
 
                 System.out.println("here's our new service: " + servicePrinter.print(businessServices));
 
-                if (businessKey == null || businessKey.length()==0) {
+                if (businessKey == null || businessKey.length() == 0) {
                         BusinessEntity be = new BusinessEntity();
                         be.setBusinessKey(businessServices.getBusinessKey());
                         be.getName().add(new Name());
@@ -189,7 +191,7 @@ public class WadlImport {
 
         public static void main(String[] args) throws Exception {
 
-                new WadlImport().Fire("http://svn.apache.org/repos/asf/cxf/trunk/systests/jaxrs/src/test/resources/wadl/bookstoreImportResource.wadl", null, null);
+                new WadlImport().Fire("http://svn.apache.org/repos/asf/cxf/trunk/systests/jaxrs/src/test/resources/wadl/bookstoreImportResource.wadl", null, null, null);
 
         }
 }

http://git-wip-us.apache.org/repos/asf/juddi/blob/c0354a44/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/WsdlImport.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/WsdlImport.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/WsdlImport.java
index 570ed70..2e21f33 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/WsdlImport.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/WsdlImport.java
@@ -64,15 +64,17 @@ public class WsdlImport {
         private static UDDIPublicationPortType publish = null;
 
         public static void main(String[] args) throws Exception {
-                new WsdlImport().Fire("http://svn.apache.org/repos/asf/juddi/trunk/uddi-ws/src/main/resources/juddi_api_v1.wsdl", null, null);
+                new WsdlImport().Fire("http://svn.apache.org/repos/asf/juddi/trunk/uddi-ws/src/main/resources/juddi_api_v1.wsdl", null, null, null);
         }
 
-        public void Fire(String pathOrURL, String businessKey, String token) throws Exception {
+        public void Fire(String pathOrURL, String businessKey, String token, Transport transport) throws Exception {
 
+                if (transport == null) {
                 // create a manager and read the config in the archive; 
-                // you can use your config file name
-                UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
-                Transport transport = clerkManager.getTransport();
+                        // you can use your config file name
+                        UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
+                        transport = clerkManager.getTransport();
+                }
                 // Now you create a reference to the UDDI API
                 security = transport.getUDDISecurityService();
                 publish = transport.getUDDIPublishService();

http://git-wip-us.apache.org/repos/asf/juddi/blob/c0354a44/juddi-examples/more-uddi-samples/src/main/resources/META-INF/simple-publish-uddi.xml
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/resources/META-INF/simple-publish-uddi.xml b/juddi-examples/more-uddi-samples/src/main/resources/META-INF/simple-publish-uddi.xml
index 2e681ca..0dd7ed7 100644
--- a/juddi-examples/more-uddi-samples/src/main/resources/META-INF/simple-publish-uddi.xml
+++ b/juddi-examples/more-uddi-samples/src/main/resources/META-INF/simple-publish-uddi.xml
@@ -70,6 +70,32 @@
                                 <juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api</juddiApiUrl>
                                 <replicationUrl>http://${serverName}:${serverPort}/juddiv3/services/replication</replicationUrl>
                         </node>
+                        
+                        <node>
+                                <!-- required 'default' node -->
+                                <name>uddi:yet.another.juddi.apache.org:node3</name> 
+                                <properties>
+                                        <property name="serverName" value="localhost"/>
+                                        <property name="serverPort" value="10080"/>
+                                        <!-- for UDDI nodes that use HTTP u/p, using the following 
+                                        <property name="basicAuthUsername" value="root" />
+                                        <property name="basicAuthPassword" value="password" />
+                                        <property name="basicAuthPasswordIsEncrypted" value="false" />
+                                        <property name="basicAuthPasswordCryptoProvider" value="org.apache.juddi.v3.client.crypto.AES128Cryptor (an example)" />-->
+                                </properties>
+                                <description>juddi node on 10080</description>
+                                <!-- JAX-WS Transport -->
+                                <proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport</proxyTransport>
+                                <custodyTransferUrl>http://${serverName}:${serverPort}/juddiv3/services/custody-transfer</custodyTransferUrl>
+                                <inquiryUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiry</inquiryUrl>
+                                <inquiryRESTUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiryRest</inquiryRESTUrl>
+                                <publishUrl>http://${serverName}:${serverPort}/juddiv3/services/publish</publishUrl>
+                                <securityUrl>http://${serverName}:${serverPort}/juddiv3/services/security</securityUrl>
+                                <subscriptionUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription</subscriptionUrl>
+                                <subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener</subscriptionListenerUrl>
+                                <juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api</juddiApiUrl>
+                                <replicationUrl>http://${serverName}:${serverPort}/juddiv3/services/replication</replicationUrl>
+                        </node>
                 </nodes>
                 <clerks registerOnStartup="false">
                         <clerk name="default" node="default" publisher="uddi" password="uddi"  isPasswordEncrypted="false" cryptoProvider=""/>

http://git-wip-us.apache.org/repos/asf/juddi/blob/c0354a44/juddi-tomcat/build.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/build.xml b/juddi-tomcat/build.xml
index 823b894..4f7b3ae 100644
--- a/juddi-tomcat/build.xml
+++ b/juddi-tomcat/build.xml
@@ -128,7 +128,77 @@
 			</fileset>
 		</chmod>
 	</target>
+        
+        
+        <!-- node 3 -->
+        
+        <property name="lib3.dir" value="${basedir}/target/tomcat3/apache-tomcat-${apache.tomcat.version}/lib"/>
+	<property name="webapps3.dir" value="${basedir}/target/tomcat3/apache-tomcat-${apache.tomcat.version}/webapps"/>
+	<property name="conf3.dir" value="${basedir}/target/tomcat3/apache-tomcat-${apache.tomcat.version}/conf"/>
+	<property name="endorsed3.dir" value="${basedir}/target/tomcat3/apache-tomcat-${apache.tomcat.version}/endorsed"/>
+
+	<target name="unzip-tomcat3">
+		<mkdir dir="${basedir}/target/tomcat3"/>
+		<unzip dest="${basedir}/target/tomcat3" src="${dependency.tomcat.zip}"/>
+		<unzip dest="${webapps3.dir}/juddiv3" src="${dependency.juddiv3.war}"/>
+		<unzip dest="${webapps3.dir}/juddi-gui" src="${dependency.juddi-gui.war}"/>
+	</target>
+	
+	<target name="copy-resources3" depends="unzip-tomcat3">
+		<!-- JUDDI-894 -->
+		<move file="${basedir}/target/tomcat3/apache-tomcat-${apache.tomcat.version}/webapps/ROOT/index.html" tofile="${basedir}/target/tomcat3/apache-tomcat-${apache.tomcat.version}/webapps/ROOT/index-tomcat.html" overwrite="true"/>
+		<copy file="${basedir}/index.html" todir="${basedir}/target/tomcat3/apache-tomcat-${apache.tomcat.version}/webapps/ROOT" overwrite="true"/>
+
+		<copy file="${basedir}/catalina.sh" todir="${basedir}/target/tomcat3/apache-tomcat-${apache.tomcat.version}/bin" overwrite="true"/>
+		<copy file="${basedir}/catalina.bat" todir="${basedir}/target/tomcat3/apache-tomcat-${apache.tomcat.version}/bin" overwrite="true"/>
+		<copy file="${basedir}/truststore.jks" todir="${basedir}/target/tomcat3/apache-tomcat-${apache.tomcat.version}/bin" overwrite="true"/>
+		<copy file="${basedir}/truststore.jks" todir="${basedir}/target/tomcat3/apache-tomcat-${apache.tomcat.version}/" overwrite="true"/>
+		
+		<copy file="${basedir}/juddi-cryptor.bat" todir="${basedir}/target/tomcat3/apache-tomcat-${apache.tomcat.version}/bin" overwrite="true"/>
+		<copy file="${basedir}/juddi-md5.bat" todir="${basedir}/target/tomcat3/apache-tomcat-${apache.tomcat.version}/bin" overwrite="true"/>
+		<copy file="${basedir}/juddi-cryptor.sh" todir="${basedir}/target/tomcat3/apache-tomcat-${apache.tomcat.version}/bin" overwrite="true"/>
+		<copy file="${basedir}/juddi-md5.sh" todir="${basedir}/target/tomcat3/apache-tomcat-${apache.tomcat.version}/bin" overwrite="true"/>
+		
+		
+		<copy file="${basedir}/juddiv3Node3.xml" tofile="${webapps3.dir}/juddiv3/WEB-INF/classes/juddiv3.xml" overwrite="true"/>
+		<copy file="${basedir}/juddi_install_data_node3/root_BusinessEntity.xml" todir="${webapps3.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
+		<copy file="${basedir}/juddi_install_data_node3/root_Publisher.xml" todir="${webapps3.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
+		<copy file="${basedir}/juddi_install_data_node3/root_tModelKeyGen.xml" todir="${webapps3.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
+		<copy file="${basedir}/juddi_install_data_node3/UDDI_Publisher.xml" todir="${webapps3.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
+		<copy file="${basedir}/juddi_install_data_node3/UDDI_tModels.xml" todir="${webapps3.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
+
+		
+		<copy file="${basedir}/uddiNode3.xml" tofile="${webapps3.dir}/juddi-gui/WEB-INF/classes/META-INF/uddi.xml" overwrite="true"/>
+		<copy file="${basedir}/serverNode3.xml" tofile="${conf3.dir}/server.xml" overwrite="true"/>
+		
+		
+		
+        <copy file="${basedir}/tomcat-users.xml" todir="${conf3.dir}" overwrite="true"/>
+		<copy file="${basedir}/context.xml" todir="${webapps3.dir}/juddiv3/META-INF" overwrite="true"/>
+		<copy file="${basedir}/keystore.jks" todir="${conf3.dir}" overwrite="true"/>
+		
+ 		<copy file="${dependency.mysql.jar}" todir="${lib3.dir}"/>
+		<copy file="${dependency.postgres.jar}" todir="${lib3.dir}"/>
+		<copy file="${dependency.log4j.jar}" todir="${lib3.dir}"/>
+		<copy file="${dependency.derby.jar}" todir="${lib3.dir}"/>
+		<copy file="${dependency.commons-discovery.jar}" todir="${lib3.dir}"/>
+		<copy file="${dependency.jaxws.jar}" todir="${endorsed3.dir}"/>
+	</target>
+	
+	<target name="package-tomcat3" depends="copy-resources3">
+		<chmod perm="ugo+x">
+			<fileset dir="${basedir}/target/tomcat3/apache-tomcat-${apache.tomcat.version}/bin">
+				<include name="*.sh"/>
+			</fileset>
+		</chmod>
+	</target>
+
+
+
 
 	<target name="twonode" depends="package-tomcat,package-tomcat2"/>
+        
+        
+        <target name="threenode" depends="package-tomcat,package-tomcat2,package-tomcat3"/>
 
 </project>

http://git-wip-us.apache.org/repos/asf/juddi/blob/c0354a44/juddi-tomcat/juddi_install_data_node2/root_BusinessEntity.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/juddi_install_data_node2/root_BusinessEntity.xml b/juddi-tomcat/juddi_install_data_node2/root_BusinessEntity.xml
index 8c923d9..da5fdb4 100644
--- a/juddi-tomcat/juddi_install_data_node2/root_BusinessEntity.xml
+++ b/juddi-tomcat/juddi_install_data_node2/root_BusinessEntity.xml
@@ -38,7 +38,7 @@
   
 See below for other fields that you may want to edit...
 -->
-<businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:another.juddi.apache.org:businesses-asf">
+<businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:another.juddi.apache.org:node2">
      <!-- Change the name field to represent the name of your registry -->
      <name xml:lang="en">An Apache jUDDI Node (2)</name>
      <!-- Change the description field to provided a brief description of your registry -->
@@ -54,7 +54,7 @@ See below for other fields that you may want to edit...
           <!-- As mentioned above, you may want to provide user-defined keys for these (and the services/bindingTemplates below.  Services that you
           don't intend to support should be removed entirely -->
           <!-- inquiry v3 -->
-          <businessService serviceKey="uddi:another.juddi.apache.org:services-inquiry" businessKey="uddi:another.juddi.apache.org:businesses-asf">
+          <businessService serviceKey="uddi:another.juddi.apache.org:services-inquiry" businessKey="uddi:another.juddi.apache.org:node2">
                <name xml:lang="en">UDDI Inquiry Service</name>
                <description xml:lang="en">Web Service supporting UDDI Inquiry API</description>
                <bindingTemplates>
@@ -124,7 +124,7 @@ See below for other fields that you may want to edit...
                </categoryBag>
           </businessService>
           <!-- inquiry v2 -->
-          <businessService serviceKey="uddi:another.juddi.apache.org:services-inquiryv2" businessKey="uddi:another.juddi.apache.org:businesses-asf">
+          <businessService serviceKey="uddi:another.juddi.apache.org:services-inquiryv2" businessKey="uddi:another.juddi.apache.org:node2">
                <name xml:lang="en">UDDIv2 Inquiry Service</name>
                <description xml:lang="en">Web Service supporting UDDIv2 Inquiry API</description>
                <bindingTemplates>
@@ -165,7 +165,7 @@ See below for other fields that you may want to edit...
                </categoryBag>
           </businessService>
           <!-- inquiry v3 REST -->
-          <businessService serviceKey="uddi:another.juddi.apache.org:services-inquiry-rest" businessKey="uddi:another.juddi.apache.org:businesses-asf">
+          <businessService serviceKey="uddi:another.juddi.apache.org:services-inquiry-rest" businessKey="uddi:another.juddi.apache.org:node2">
                <name xml:lang="en">UDDI Inquiry REST Service</name>
                <description xml:lang="en">Web Service supporting UDDI Inquiry API via HTTP GET</description>
                <bindingTemplates>
@@ -200,7 +200,7 @@ See below for other fields that you may want to edit...
                </categoryBag>
           </businessService>
           <!-- publish v3 -->
-          <businessService serviceKey="uddi:another.juddi.apache.org:services-publish" businessKey="uddi:another.juddi.apache.org:businesses-asf">
+          <businessService serviceKey="uddi:another.juddi.apache.org:services-publish" businessKey="uddi:another.juddi.apache.org:node2">
                <name xml:lang="en">UDDI Publish Service</name>
                <description xml:lang="en">Web Service supporting UDDI Publish API</description>
                <bindingTemplates>
@@ -265,7 +265,7 @@ See below for other fields that you may want to edit...
           </businessService>
  
           <!-- publish v2 -->
-          <businessService serviceKey="uddi:another.juddi.apache.org:services-publishv2" businessKey="uddi:another.juddi.apache.org:businesses-asf">
+          <businessService serviceKey="uddi:another.juddi.apache.org:services-publishv2" businessKey="uddi:another.juddi.apache.org:node2">
                <name xml:lang="en">UDDIv2 Publish Service</name>
                <description xml:lang="en">Web Service supporting UDDIv2 Publish API</description>
                <bindingTemplates>
@@ -302,7 +302,7 @@ See below for other fields that you may want to edit...
  
           <!-- security v3 -->
 
-          <businessService serviceKey="uddi:another.juddi.apache.org:services-security" businessKey="uddi:another.juddi.apache.org:businesses-asf">
+          <businessService serviceKey="uddi:another.juddi.apache.org:services-security" businessKey="uddi:another.juddi.apache.org:node2">
                <name xml:lang="en">UDDI Security Service</name>
                <description xml:lang="en">Web Service supporting UDDI Security API</description>
                <bindingTemplates>
@@ -342,7 +342,7 @@ See below for other fields that you may want to edit...
                </categoryBag>
           </businessService>
           <!-- custody v3 -->
-          <businessService serviceKey="uddi:another.juddi.apache.org:services-custodytransfer" businessKey="uddi:another.juddi.apache.org:businesses-asf">
+          <businessService serviceKey="uddi:another.juddi.apache.org:services-custodytransfer" businessKey="uddi:another.juddi.apache.org:node2">
                <name xml:lang="en">UDDI Custody and Ownership Transfer Service</name>
                <description xml:lang="en">Web Service supporting UDDI Custody and Ownership Transfer API</description>
                <bindingTemplates>
@@ -411,7 +411,7 @@ See below for other fields that you may want to edit...
           </businessService>
                 
           <!-- subscription v3 -->
-          <businessService serviceKey="uddi:another.juddi.apache.org:services-subscription" businessKey="uddi:another.juddi.apache.org:businesses-asf">
+          <businessService serviceKey="uddi:another.juddi.apache.org:services-subscription" businessKey="uddi:another.juddi.apache.org:node2">
                <name xml:lang="en">UDDI Subscription Service</name>
                <description xml:lang="en">Web Service supporting UDDI Subscription API</description>
                <bindingTemplates>
@@ -477,7 +477,7 @@ See below for other fields that you may want to edit...
                </categoryBag>
           </businessService>
           <!-- subscription listener v3 -->
-          <businessService serviceKey="uddi:another.juddi.apache.org:services-subscriptionlistener" businessKey="uddi:another.juddi.apache.org:businesses-asf">
+          <businessService serviceKey="uddi:another.juddi.apache.org:services-subscriptionlistener" businessKey="uddi:another.juddi.apache.org:node2">
                <name xml:lang="en">UDDI Subscription Listener Service</name>
                <description xml:lang="en">Web Service supporting UDDI Subscription Listener API</description>
                <bindingTemplates>
@@ -520,7 +520,7 @@ See below for other fields that you may want to edit...
           </businessService>
 	
 
-          <businessService serviceKey="uddi:another.juddi.apache.org:services-valueset" businessKey="uddi:another.juddi.apache.org:businesses-asf">
+          <businessService serviceKey="uddi:another.juddi.apache.org:services-valueset" businessKey="uddi:another.juddi.apache.org:node2">
                <name xml:lang="en">UDDI Value Set API Service</name>
                <description xml:lang="en">Web Service supporting UDDI Value Set Validation service. This service provides tModel value validation and is
                     configured using the jUDDI Publisher Service</description>
@@ -562,7 +562,7 @@ See below for other fields that you may want to edit...
           </businessService>
 	
 	
-          <businessService serviceKey="uddi:another.juddi.apache.org:services-valueset-cache" businessKey="uddi:another.juddi.apache.org:businesses-asf">
+          <businessService serviceKey="uddi:another.juddi.apache.org:services-valueset-cache" businessKey="uddi:another.juddi.apache.org:node2">
                <name xml:lang="en">UDDI Value Set Caching API Service</name>
                <description xml:lang="en">Web Service supporting UDDI Value Set Caching service. This service provides tModel value validation and is
                     configured using the jUDDI Publisher Service</description>
@@ -601,7 +601,7 @@ See below for other fields that you may want to edit...
 	
 
 
-          <businessService serviceKey="uddi:another.juddi.apache.org:replication" businessKey="uddi:another.juddi.apache.org:businesses-asf">
+          <businessService serviceKey="uddi:another.juddi.apache.org:replication" businessKey="uddi:another.juddi.apache.org:node2">
                <name xml:lang="en">UDDI Replication API Version 3</name>
                <description xml:lang="en">UDDI Replication API Version 3</description>
                <bindingTemplates>
@@ -625,7 +625,7 @@ See below for other fields that you may want to edit...
 	
                 
           <!-- juddi api service -->
-          <businessService serviceKey="uddi:another.juddi.apache.org:services-publisher" businessKey="uddi:another.juddi.apache.org:businesses-asf">
+          <businessService serviceKey="uddi:another.juddi.apache.org:services-publisher" businessKey="uddi:another.juddi.apache.org:node2">
                <name xml:lang="en">jUDDI Publisher Service</name>
                <description xml:lang="en">Web Service supporting jUDDI specific API</description>
                <bindingTemplates>

http://git-wip-us.apache.org/repos/asf/juddi/blob/c0354a44/juddi-tomcat/juddi_install_data_node3/UDDI_Publisher.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/juddi_install_data_node3/UDDI_Publisher.xml b/juddi-tomcat/juddi_install_data_node3/UDDI_Publisher.xml
new file mode 100644
index 0000000..0bfd815
--- /dev/null
+++ b/juddi-tomcat/juddi_install_data_node3/UDDI_Publisher.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */ -->
+<publisher xmlns="urn:juddi-apache-org:api_v3" authorizedName="uddi">
+  <publisherName>UDDI publisher</publisherName>
+  <isAdmin>false</isAdmin>
+</publisher>
+


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org