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/02/16 03:18:26 UTC

[11/12] juddi git commit: JUDDI-919 replication now works with ssl + client-cert authentication. In order to support this, we need to have two different war file (unfortunately). Included with this change set is number of typos in our deployment files (w

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoitMultiNode.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoitMultiNode.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoitMultiNode.java
index b017bb0..b73d2f5 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoitMultiNode.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoitMultiNode.java
@@ -17,8 +17,18 @@ package org.apache.juddi.samples;
 
 import java.util.List;
 import org.apache.juddi.api_v3.Node;
+import org.apache.juddi.v3.client.UDDIConstants;
 import org.apache.juddi.v3.client.config.UDDIClient;
 import org.apache.juddi.v3.client.transport.Transport;
+import org.uddi.api_v3.BusinessList;
+import org.uddi.api_v3.FindBusiness;
+import org.uddi.api_v3.FindQualifiers;
+import org.uddi.api_v3.FindService;
+import org.uddi.api_v3.FindTModel;
+import org.uddi.api_v3.Name;
+import org.uddi.api_v3.ServiceList;
+import org.uddi.api_v3.TModelList;
+import org.uddi.v3_service.UDDIInquiryPortType;
 
 /**
  *
@@ -26,56 +36,113 @@ import org.apache.juddi.v3.client.transport.Transport;
  */
 public class EntryPoitMultiNode {
 
-        static void goMultiNode() throws Exception{
-              String currentNode = "default";
+        static void goMultiNode() throws Exception {
+                String currentNode = "default";
                 UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
-                
+
                 List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
-                String input=null;
+                String input = null;
                 do {
                         System.out.println("1) Replication - Setup replication between two nodes");
-                      
-                        System.out.println("2) Sets the replication between two instances of jUDDI on 8080 and 9080");
-                        System.out.println("3) Sets directed replication between 3 instances of jUDDI on 8080 and 8080, 10080");
-                        System.out.println("4) Prints the replication status for all nodes");
 
+                        System.out.println("2) Sets undirected replication two instances of jUDDI on 8080 and 9080");
+                        System.out.println("3) Sets undirected replication 3 instances of jUDDI on 8080 and 9080 and 10080");
+                        System.out.println("4) Sets directed replication between 3 instances of jUDDI on 8080 and 9080, 10080");
+                        System.out.println("5) Sets directed replication between 3 instances of jUDDI on 8443 and 9443, 10443 over two way ssl");
+                        System.out.println("6) Prints the replication status for all nodes");
+                        System.out.println("7) Prints the business, service, and tmodels counts");
+                        System.out.println("8) Ping all nodes");
 
                         System.out.println("q) quit");
                         System.out.print("Selection: ");
                         input = System.console().readLine();
-                        
-                                processInput(input,clerkManager);
-                        
+
+                        processInput(input, clerkManager);
+
                 } while (!input.equalsIgnoreCase("q"));
         }
 
-        private static void processInput(String input, UDDIClient clerkManager) throws Exception{
-                 if (input.equals("1")) {
+        private static void processInput(String input, UDDIClient clerkManager) throws Exception {
+                if (input.equals("1")) {
                         // System.out.println("30) Replication - Setup replication between two nodes");
-                        new JuddiAdminService(null, null).setupReplication();
+                        new JuddiAdminService(clerkManager, null).setupReplication();
 
+                } else if (input.equals("2")) {
+
+                        new JuddiAdminService(clerkManager, null).autoMagic();
+                        List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
+                        for (int i = 0; i < uddiNodeList.size(); i++) {
+                                new UddiCreatebulk(uddiNodeList.get(i).getName()).publishBusiness(null, 1, 1, "root@" + uddiNodeList.get(i).getName());
+                        }
+                        //new UddiCreatebulk("uddi:another.juddi.apache.org:node2").publishBusiness(null, 1, 1);
                 }
-                else  if (input.equals("2")) {
-                       
-                        new JuddiAdminService(null, null).autoMagic();
-                         List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
-                         for (int i=0; i < uddiNodeList.size(); i++){
-                                 new UddiCreatebulk(uddiNodeList.get(i).getName()).publishBusiness(null, 1, 1);
-                         }
+                else if (input.equals("3")) {
+
+                        new JuddiAdminService(clerkManager, null).autoMagic3();
+                        List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
+                        for (int i = 0; i < uddiNodeList.size(); i++) {
+                                new UddiCreatebulk(uddiNodeList.get(i).getName()).publishBusiness(null, 1, 1, "root@" + uddiNodeList.get(i).getName());
+                        }
                         //new UddiCreatebulk("uddi:another.juddi.apache.org:node2").publishBusiness(null, 1, 1);
                 }
-               else if (input.equals("3")) {
+                else if (input.equals("4")) {
                         new JuddiAdminService(clerkManager, null).autoMagicDirected();
 
                         List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
-                         for (int i=0; i < uddiNodeList.size(); i++){
-                                 new UddiCreatebulk(uddiNodeList.get(i).getName()).publishBusiness(null, 1, 1);
-                         }
-                }
-               else if (input.equals("4")) {
+                        for (int i = 0; i < uddiNodeList.size(); i++) {
+                                new UddiCreatebulk(uddiNodeList.get(i).getName()).publishBusiness(null, 1, 1, "root@" + uddiNodeList.get(i).getName());
+                        }
+                } else if (input.equals("5")) {
+                        new JuddiAdminService(clerkManager, null).autoMagicDirectedSSL();
+
+                        List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
+                        for (int i = 0; i < uddiNodeList.size(); i++) {
+                                new UddiCreatebulk(uddiNodeList.get(i).getName()).publishBusiness(null, 1, 1, "root@" + uddiNodeList.get(i).getName());
+                        }
+                } else if (input.equals("6")) {
                         new JuddiAdminService(clerkManager, null).printStatus();
+                } else if (input.equals("7")) {
+                        List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
+                        for (Node n : uddiNodeList) {
+                                UDDIInquiryPortType uddiInquiryService = clerkManager.getTransport(n.getName()).getUDDIInquiryService();
+
+                                FindBusiness fb = new FindBusiness();
+
+                                fb.getName().add(new Name(UDDIConstants.WILDCARD, null));
+                                fb.setFindQualifiers(new FindQualifiers());
+                                fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                                fb.setMaxRows(1);
+                                fb.setListHead(0);
+                                BusinessList findBusiness = uddiInquiryService.findBusiness(fb);
+                                System.out.println(n.getName() + " business count "
+                                        + findBusiness.getListDescription().getActualCount());
+                                FindService fs = new FindService();
+
+                                fs.getName().add(new Name(UDDIConstants.WILDCARD, null));
+                                fs.setFindQualifiers(new FindQualifiers());
+                                fs.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                                fs.setMaxRows(1);
+                                fs.setListHead(0);
+                                ServiceList findService = uddiInquiryService.findService(fs);
+                                System.out.println(n.getName() + " service count "
+                                        + findService.getListDescription().getActualCount());
+                                
+                                FindTModel ft= new FindTModel();
+                                ft.setName(new Name(UDDIConstants.WILDCARD, null));
+                                ft.setFindQualifiers(new FindQualifiers());
+                                ft.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                                ft.setMaxRows(1);
+                                ft.setListHead(0);
+                                TModelList findTModel = uddiInquiryService.findTModel(ft);
+                                 System.out.println(n.getName() + " tModel count "
+                                        + findTModel.getListDescription().getActualCount());
+
+                        }
+                        System.out.println();
+                } else if (input.equals("8")){
+                         new JuddiAdminService(clerkManager, null).pingAll();
                 }
-                
+
         }
-        
+
 }

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/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 69a1900..57ce10e 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
@@ -15,9 +15,15 @@
  */
 package org.apache.juddi.samples;
 
+//import com.sun.xml.internal.ws.developer.JAXWSProperties;
+import java.io.File;
+import java.io.FileInputStream;
 import java.math.BigInteger;
 import java.rmi.RemoteException;
+import java.security.KeyStore;
 import java.util.List;
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLContext;
 import javax.xml.bind.JAXB;
 import javax.xml.ws.BindingProvider;
 import org.apache.commons.configuration.ConfigurationException;
@@ -30,7 +36,6 @@ import org.apache.juddi.api_v3.NodeList;
 import org.apache.juddi.api_v3.SaveNode;
 import org.apache.juddi.jaxb.PrintJUDDI;
 import org.apache.juddi.v3.client.UDDIService;
-import org.apache.juddi.v3.client.config.UDDIClerk;
 import org.apache.juddi.v3.client.config.UDDIClient;
 import org.apache.juddi.v3.client.config.UDDINode;
 import org.apache.juddi.v3.client.transport.Transport;
@@ -46,10 +51,10 @@ 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.DoPing;
 import org.uddi.repl_v3.Operator;
 import org.uddi.repl_v3.OperatorStatusType;
 import org.uddi.repl_v3.ReplicationConfiguration;
-import org.uddi.v3_service.UDDIPublicationPortType;
 import org.uddi.v3_service.UDDIReplicationPortType;
 import org.uddi.v3_service.UDDISecurityPortType;
 
@@ -59,7 +64,7 @@ import org.uddi.v3_service.UDDISecurityPortType;
  */
 public class JuddiAdminService {
 
-      //  private static UDDISecurityPortType security = null;
+        //  private static UDDISecurityPortType security = null;
         //  private static UDDIPublicationPortType publish = null;
         static JUDDIApiPortType juddi = null;
         // static UDDIClerk clerk = null;
@@ -68,17 +73,19 @@ public class JuddiAdminService {
         public JuddiAdminService(UDDIClient client, Transport transport) {
                 try {
                         clerkManager = client;
-                        if (transport==null)
-                        // create a manager and read the config in the archive; 
+                        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");
                         // The transport can be WS, inVM, RMI etc which is defined in the uddi.xml
+                        {
                                 transport = clerkManager.getTransport();
+                                juddi = transport.getJUDDIApiService();
+                        }
                         // Now you create a reference to the UDDI API
                         //security = transport.getUDDISecurityService();
                         //publish = transport.getUDDIPublishService();
-                        juddi = transport.getJUDDIApiService();
+
                 } catch (Exception e) {
                         e.printStackTrace();
                 }
@@ -101,6 +108,29 @@ public class JuddiAdminService {
                 return n;
         }
 
+        JuddiAdminService(UDDIClient client, Transport transport, String currentNode) {
+                curentnode = currentNode;
+                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");
+                        // The transport can be WS, inVM, RMI etc which is defined in the uddi.xml
+                        {
+                                transport = clerkManager.getTransport();
+                        }
+                        // Now you create a reference to the UDDI API
+                        //security = transport.getUDDISecurityService();
+                        //publish = transport.getUDDIPublishService();
+                        juddi = transport.getJUDDIApiService();
+                } catch (Exception e) {
+                        e.printStackTrace();
+                }
+        }
+
+        String curentnode = "default";
+
         public void quickRegisterRemoteCloud(String token) {
                 try {
                         // Setting up the values to get an authentication token for the 'root' user ('root' user has admin privileges
@@ -193,7 +223,7 @@ public class JuddiAdminService {
         }
 
         void viewReplicationConfig(String authtoken, String node) throws Exception {
-                
+
                 Transport transport = clerkManager.getTransport(node);
 
                 JUDDIApiPortType juddiApiService = transport.getJUDDIApiService();
@@ -696,6 +726,86 @@ public class JuddiAdminService {
 
         }
 
+        void autoMagic3() 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();
+
+                }
+                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().add("uddi:another.juddi.apache.org:node2");
+                replicationNodes.getCommunicationGraph().getNode().add("uddi:yet.another.juddi.apache.org:node3");
+                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);
+
+                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(Transport transport, String authtoken) throws Exception {
 
                 JUDDIApiPortType juddiApiService = transport.getJUDDIApiService();
@@ -726,7 +836,6 @@ public class JuddiAdminService {
         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();
 
@@ -800,4 +909,176 @@ public class JuddiAdminService {
                         failedReplicationChangeRecords = juddi.getFailedReplicationChangeRecords(req);
                 }
         }
+
+        void printStatusSingleNode(Transport transport, String authtoken) throws Exception {
+                String replicationUrl = clerkManager.getClientConfig().getUDDINode(curentnode).getReplicationUrl();
+
+                SSLContext sc = SSLContext.getInstance("SSLv3");
+
+                KeyManagerFactory kmf
+                        = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
+
+                KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
+                ks.load(new FileInputStream(System.getProperty("javax.net.ssl.keyStore")), System.getProperty("javax.net.ssl.keyStorePassword").toCharArray());
+
+                kmf.init(ks, System.getProperty("javax.net.ssl.keyStorePassword").toCharArray());
+
+                sc.init(kmf.getKeyManagers(), null, null);
+
+                UDDIReplicationPortType uddiReplicationPort = new UDDIService().getUDDIReplicationPort();
+                ((BindingProvider) uddiReplicationPort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, replicationUrl);
+                ((BindingProvider) uddiReplicationPort).getRequestContext()
+                        .put(
+                                "com.sun.xml.internal.ws.transport.https.client.SSLSocketFactory",
+                                sc.getSocketFactory());
+                /*((BindingProvider) uddiReplicationPort).getRequestContext()
+                 .put(
+                 JAXWSProperties.SSL_SOCKET_FACTORY,
+                 sc.getSocketFactory());*/
+
+                String doPing = uddiReplicationPort.doPing(new DoPing());
+                System.out.println(doPing + ".., success");
+
+        }
+
+        void autoMagicDirectedSSL() 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("https://localhost:8443/juddiv3replication/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("https://localhost:9443/juddiv3replication/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("https://localhost:10443/juddiv3replication/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 pingAll() throws Exception {
+                List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
+
+                UDDIReplicationPortType uddiReplicationPort = new UDDIService().getUDDIReplicationPort();
+                File currentdir = new File(".");
+                System.out.println("Using keystore from " + System.getProperty("javax.net.ssl.keyStore") + " current dir is " + currentdir.getAbsolutePath());
+                System.out.println("Using truststure from " + System.getProperty("javax.net.ssl.trustStore") + " current dir is " + currentdir.getAbsolutePath());
+                SSLContext sc = SSLContext.getInstance("SSLv3");
+
+                KeyManagerFactory kmf
+                        = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
+
+                KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
+                ks.load(new FileInputStream(System.getProperty("javax.net.ssl.keyStore")), System.getProperty("javax.net.ssl.keyStorePassword").toCharArray());
+
+                kmf.init(ks, System.getProperty("javax.net.ssl.keyStorePassword").toCharArray());
+
+                sc.init(kmf.getKeyManagers(), null, null);
+
+                ((BindingProvider) uddiReplicationPort).getRequestContext()
+                        .put(
+                                "com.sun.xml.internal.ws.transport.https.client.SSLSocketFactory",
+                                sc.getSocketFactory());
+
+                for (Node currenteNode : uddiNodeList) {
+                        try {
+                                String replicationUrl = clerkManager.getClientConfig().getUDDINode(currenteNode.getName()).getReplicationUrl();
+                                ((BindingProvider) uddiReplicationPort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, replicationUrl);
+                                long now = System.currentTimeMillis();
+                                String doPing = uddiReplicationPort.doPing(new DoPing());
+                                System.out.println(replicationUrl + " " + currenteNode.getName() + " says it's node id is " + doPing + " (took " + (System.currentTimeMillis() - now) + "ms)");
+                        } catch (Exception ex) {
+                                System.out.println("Error! " + currenteNode.getName() + " " + currenteNode.getReplicationUrl());
+                                ex.printStackTrace();
+                        }
+
+                }
+
+        }
+
 }

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/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 cf46f3a..f74fc9b 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
@@ -66,7 +66,14 @@ public class UddiCreatebulk {
                 }
         }
 
-        public void publishBusiness(String token, int businesses, int servicesPerBusiness) {
+        /**
+         * bulk creates businesses, services and binding templates
+         * @param token if null, root/root will be used to authenticate
+         * @param businesses
+         * @param servicesPerBusiness
+         * @param user purely for display purposes
+         */
+        public void publishBusiness(String token, int businesses, int servicesPerBusiness, String user) {
                 try {
                         // Setting up the values to get an authentication token for the 'root' user ('root' user has admin privileges
                         // and can save other publishers).
@@ -91,7 +98,7 @@ public class UddiCreatebulk {
                                 BusinessEntity myBusEntity = new BusinessEntity();
                                 Name myBusName = new Name();
                                 myBusName.setLang("en");
-                                myBusName.setValue("My Business " +curretNode +" " + i + " " + xcal.toString() + " " + textgen.getWords(5, 2) );
+                                myBusName.setValue(user + "'s Business " +curretNode +" " + i + " " + xcal.toString() + " " + textgen.getWords(5, 2) );
                                 myBusEntity.getDescription().add(new Description( textgen.getWords(10, 2), null));
                                 myBusEntity.getName().add(myBusName);
 
@@ -109,7 +116,7 @@ public class UddiCreatebulk {
                                         myService.setBusinessKey(myBusKey);
                                         Name myServName = new Name();
                                         myServName.setLang("en");
-                                        myServName.setValue("My Service " +curretNode+" "+ i + " " + k + " " + xcal.toString()+ " " + textgen.getWords(5, 2) );
+                                        myServName.setValue(user + "'s Service " +curretNode+" "+ i + " " + k + " " + xcal.toString()+ " " + textgen.getWords(5, 2) );
                                         myService.getName().add(myServName);
                                         myService.getDescription().add(new Description( textgen.getWords(10, 2), null));
                                         
@@ -198,6 +205,6 @@ public class UddiCreatebulk {
 
         public static void main(String args[]) {
                 UddiCreatebulk sp = new UddiCreatebulk(null);
-                sp.publishBusiness(null, 15, 20);
+                sp.publishBusiness(null, 15, 20, "root");
         }
 }

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/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 0dd7ed7..9d071a6 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
@@ -27,6 +27,7 @@
                                 <properties>
                                         <property name="serverName" value="localhost"/>
                                         <property name="serverPort" value="8080"/>
+                                       
                                         <!-- for UDDI nodes that use HTTP u/p, using the following 
                                         <property name="basicAuthUsername" value="root" />
                                         <property name="basicAuthPassword" value="password" />
@@ -44,6 +45,7 @@
                                 <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>https://${serverName}:8443/juddiv3replication/services/replication</replicationUrl>
                         </node>
                         <node>
                                 <!-- required 'default' node -->
@@ -51,6 +53,7 @@
                                 <properties>
                                         <property name="serverName" value="localhost"/>
                                         <property name="serverPort" value="9080"/>
+                                        
                                         <!-- for UDDI nodes that use HTTP u/p, using the following 
                                         <property name="basicAuthUsername" value="root" />
                                         <property name="basicAuthPassword" value="password" />
@@ -68,7 +71,7 @@
                                 <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>
+                                <replicationUrl>https://${serverName}:9443/juddiv3replication/services/replication</replicationUrl>
                         </node>
                         
                         <node>
@@ -77,6 +80,7 @@
                                 <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" />
@@ -94,7 +98,7 @@
                                 <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>
+                                <replicationUrl>https://${serverName}:10443/juddiv3replication/services/replication</replicationUrl>
                         </node>
                 </nodes>
                 <clerks registerOnStartup="false">

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-tomcat/build.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/build.xml b/juddi-tomcat/build.xml
index 4f7b3ae..03fc37b 100644
--- a/juddi-tomcat/build.xml
+++ b/juddi-tomcat/build.xml
@@ -27,6 +27,7 @@
 		<unzip dest="${basedir}/target/tomcat" src="${dependency.tomcat.zip}"/>
 		<unzip dest="${webapps.dir}/juddiv3" src="${dependency.juddiv3.war}"/>
 		<unzip dest="${webapps.dir}/juddi-gui" src="${dependency.juddi-gui.war}"/>
+		<unzip dest="${webapps.dir}/juddiv3replication" src="${dependency.juddiv3replication.war}"/>
 	</target>
 	
 	<target name="copy-resources" depends="unzip-tomcat">
@@ -47,6 +48,7 @@
 		
         <copy file="${basedir}/tomcat-users.xml" todir="${conf.dir}" overwrite="true"/>
 		<copy file="${basedir}/context.xml" todir="${webapps.dir}/juddiv3/META-INF" overwrite="true"/>
+		<copy file="${basedir}/context.xml" todir="${webapps.dir}/juddiv3replication/META-INF" overwrite="true"/>
 		<copy file="${basedir}/server.xml" todir="${conf.dir}" overwrite="true"/>
 		<copy file="${basedir}/keystore.jks" todir="${conf.dir}" overwrite="true"/>
 		
@@ -78,6 +80,7 @@
 		<unzip dest="${basedir}/target/tomcat2" src="${dependency.tomcat.zip}"/>
 		<unzip dest="${webapps2.dir}/juddiv3" src="${dependency.juddiv3.war}"/>
 		<unzip dest="${webapps2.dir}/juddi-gui" src="${dependency.juddi-gui.war}"/>
+		<unzip dest="${webapps2.dir}/juddiv3replication" src="${dependency.juddiv3replication.war}"/>
 	</target>
 	
 	<target name="copy-resources2" depends="unzip-tomcat2">
@@ -97,6 +100,8 @@
 		
 		
 		<copy file="${basedir}/juddiv3Node2.xml" tofile="${webapps2.dir}/juddiv3/WEB-INF/classes/juddiv3.xml" overwrite="true"/>
+		<copy file="${basedir}/juddiv3Node2.xml" tofile="${webapps2.dir}/juddiv3replication/WEB-INF/classes/juddiv3.xml" overwrite="true"/>
+
 		<copy file="${basedir}/juddi_install_data_node2/root_BusinessEntity.xml" todir="${webapps2.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
 		<copy file="${basedir}/juddi_install_data_node2/root_Publisher.xml" todir="${webapps2.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
 		<copy file="${basedir}/juddi_install_data_node2/root_tModelKeyGen.xml" todir="${webapps2.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
@@ -111,6 +116,7 @@
 		
         <copy file="${basedir}/tomcat-users.xml" todir="${conf2.dir}" overwrite="true"/>
 		<copy file="${basedir}/context.xml" todir="${webapps2.dir}/juddiv3/META-INF" overwrite="true"/>
+		<copy file="${basedir}/context.xml" todir="${webapps2.dir}/juddiv3replication/META-INF" overwrite="true"/>
 		<copy file="${basedir}/keystore.jks" todir="${conf2.dir}" overwrite="true"/>
 		
  		<copy file="${dependency.mysql.jar}" todir="${lib2.dir}"/>
@@ -142,6 +148,7 @@
 		<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}"/>
+		<unzip dest="${webapps3.dir}/juddiv3replication" src="${dependency.juddiv3replication.war}"/>
 	</target>
 	
 	<target name="copy-resources3" depends="unzip-tomcat3">
@@ -161,6 +168,8 @@
 		
 		
 		<copy file="${basedir}/juddiv3Node3.xml" tofile="${webapps3.dir}/juddiv3/WEB-INF/classes/juddiv3.xml" overwrite="true"/>
+		<copy file="${basedir}/juddiv3Node3.xml" tofile="${webapps3.dir}/juddiv3replication/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"/>
@@ -175,6 +184,7 @@
 		
         <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}/context.xml" todir="${webapps3.dir}/juddiv3replication/META-INF" overwrite="true"/>
 		<copy file="${basedir}/keystore.jks" todir="${conf3.dir}" overwrite="true"/>
 		
  		<copy file="${dependency.mysql.jar}" todir="${lib3.dir}"/>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-tomcat/pom.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/pom.xml b/juddi-tomcat/pom.xml
index f5d8a17..b703958 100644
--- a/juddi-tomcat/pom.xml
+++ b/juddi-tomcat/pom.xml
@@ -44,6 +44,12 @@
 			<type>war</type>
 		</dependency>
 		<dependency>
+			<artifactId>juddiv3-war-repl</artifactId>
+			<groupId>org.apache.juddi</groupId>
+			<version>${project.parent.version}</version>
+			<type>war</type>
+		</dependency>
+		<dependency>
             <artifactId>juddi-gui-war</artifactId>
             <groupId>org.apache.juddi</groupId>
             <version>${project.parent.version}</version>
@@ -98,7 +104,7 @@
 						<configuration>
 							<stripVersion>true</stripVersion>
 							<includeGroupIds>org.apache.juddi</includeGroupIds>
-							<includeArtifactIds>juddiv3-war,juddi-gui-war</includeArtifactIds>
+							<includeArtifactIds>juddiv3-war,juddiv3-war-repl,juddi-gui-war</includeArtifactIds>
 							<outputDirectory>
 								${project.build.directory}
 							</outputDirectory>
@@ -134,6 +140,7 @@
 								<property name="dependency.derby.jar" value="${maven.dependency.org.apache.derby.derby.jar.path}" />
 								<property name="dependency.tomcat.zip" value="${maven.dependency.org.apache.juddi.bootstrap.apache-tomcat.zip.path}" />
 								<property name="dependency.juddiv3.war" value="${project.build.directory}/juddiv3-war.war" />
+								<property name="dependency.juddiv3replication.war" value="${project.build.directory}/juddiv3-war-repl.war" />
 								<property name="dependency.juddi-gui.war" value="${project.build.directory}/juddi-gui-war.war" />
 								<property name="dependency.jaxws.jar" value="${maven.dependency.org.apache.geronimo.specs.geronimo-jaxws_2.2_spec.jar.path}" />
 								<ant antfile="${basedir}/build.xml">

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-tomcat/server.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/server.xml b/juddi-tomcat/server.xml
index d00f397..6243f46 100644
--- a/juddi-tomcat/server.xml
+++ b/juddi-tomcat/server.xml
@@ -81,7 +81,8 @@
     
     <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                maxThreads="150" scheme="https" secure="true"
-               clientAuth="false" sslProtocol="TLS" 
+               clientAuth="want" sslProtocol="TLS" 
+               truststoreFile="truststore.jks" truststorePass="password"
 			   keystoreFile="conf/keystore.jks" keystorePass="password"
 			   />
     

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-tomcat/serverNode2.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/serverNode2.xml b/juddi-tomcat/serverNode2.xml
index 8f438a7..7f34dda 100644
--- a/juddi-tomcat/serverNode2.xml
+++ b/juddi-tomcat/serverNode2.xml
@@ -81,7 +81,8 @@
     
     <Connector port="9443" protocol="HTTP/1.1" SSLEnabled="true"
                maxThreads="150" scheme="https" secure="true"
-               clientAuth="false" sslProtocol="TLS" 
+               clientAuth="want" sslProtocol="TLS" 
+               truststoreFile="truststore.jks" truststorePass="password"
 			   keystoreFile="conf/keystore.jks" keystorePass="password"
 			   />
     

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-tomcat/serverNode3.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/serverNode3.xml b/juddi-tomcat/serverNode3.xml
index 257bc21..0ef70cc 100644
--- a/juddi-tomcat/serverNode3.xml
+++ b/juddi-tomcat/serverNode3.xml
@@ -81,7 +81,8 @@
     
     <Connector port="10443" protocol="HTTP/1.1" SSLEnabled="true"
                maxThreads="150" scheme="https" secure="true"
-               clientAuth="false" sslProtocol="TLS" 
+               clientAuth="want" sslProtocol="TLS" 
+               truststoreFile="truststore.jks" truststorePass="password"
 			   keystoreFile="conf/keystore.jks" keystorePass="password"
 			   />
     

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-tomcat/tomcat-users.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/tomcat-users.xml b/juddi-tomcat/tomcat-users.xml
index 52c29e9..9333f39 100644
--- a/juddi-tomcat/tomcat-users.xml
+++ b/juddi-tomcat/tomcat-users.xml
@@ -39,7 +39,9 @@
     -   the juddi-gui configuration page http://localhost:8080/juddi-gui/settings.jsp
     
     -->
-	<role rolename="tomcat"/>
-  <role rolename="uddiadmin"/>  
+  <role rolename="tomcat"/>
+  <role rolename="uddiadmin"/>
+  <role rolename="replication"/>  
   <user username="uddiadmin" password="da_password1" roles="uddiadmin,tomcat,manager" />
+  <user username="CN=localhost, OU=jUDDI Test, O=Apache Software Foundation, L=Anytown, ST=MD, C=US" password="null" roles="replication"/>
 </tomcat-users>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/.gitignore
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/.gitignore b/juddiv3-war-repl/.gitignore
new file mode 100644
index 0000000..c1a69fd
--- /dev/null
+++ b/juddiv3-war-repl/.gitignore
@@ -0,0 +1,6 @@
+target
+**/target/*
+**/derby.log
+**/.project
+**/.classpath
+**/.settings/*

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/conf/axis2.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/conf/axis2.xml b/juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/conf/axis2.xml
new file mode 100644
index 0000000..cad435b
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/conf/axis2.xml
@@ -0,0 +1,520 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one
+  ~ or more contributor license agreements. See the NOTICE file
+  ~ distributed with this work for additional information
+  ~ regarding copyright ownership. The ASF licenses this file
+  ~ to you 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.
+  -->
+
+<axisconfig name="AxisJava2.0">
+    <!-- ================================================= -->
+    <!-- Parameters -->
+    <!-- ================================================= -->
+    <parameter name="hotdeployment">true</parameter>
+    <parameter name="hotupdate">false</parameter>
+    <parameter name="enableMTOM">false</parameter>
+    <parameter name="enableSwA">false</parameter>
+
+    <!--Uncomment if you want to enable file caching for attachments -->
+    <!--parameter name="cacheAttachments">true</parameter>
+    <parameter name="attachmentDIR"></parameter>
+    <parameter name="sizeThreshold">4000</parameter-->
+
+    <parameter name="EnableChildFirstClassLoading">false</parameter>
+
+     <!--
+       The exposeServiceMetadata parameter decides whether the metadata (WSDL, schema, policy) of
+       the services deployed on Axis2 should be visible when ?wsdl, ?wsdl2, ?xsd, ?policy requests
+       are received.
+       This parameter can be defined in the axi2.xml file, in which case this will be applicable
+       globally, or in the services.xml files, in which case, it will be applicable to the
+       Service groups and/or services, depending on the level at which the parameter is declared.
+       This value of this parameter defaults to true.
+    -->
+    <parameter name="exposeServiceMetadata">true</parameter>
+
+    <!--Uncomment if you want to plugin your own attachments lifecycle implementation -->
+    <!--<attachmentsLifecycleManager class="org.apache.axiom.attachments.lifecycle.impl.LifecycleManagerImpl"/>-->
+
+
+    <!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions -->
+    <!--In some server environments, the available memory heap is limited and can fill up under load -->
+    <!--Since in-memory copies of WSDL definitions can be large, some steps can be taken-->
+    <!--to reduce the memory needed for the cached WSDL definitions. -->
+    <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
+
+    <!--This will give out the timout of the configuration contexts, in milliseconds-->
+    <parameter name="ConfigContextTimeoutInterval">30000</parameter>
+
+    <!--During a fault, stack trace can be sent with the fault message. The following flag will control -->
+    <!--that behavior.-->
+    <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
+
+    <!--If there aren't any information available to find out the fault reason, we set the message of the exception-->
+    <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
+    <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
+    <!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
+    <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
+
+    <parameter name="userName">admin</parameter>
+    <parameter name="password">axis2</parameter>
+
+    <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
+    <!--ServicesDirectory only works on the following cases-->
+    <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
+    <!---When creating URL Based configurator with URL file:// -->
+    <!--- War based configurator with expanded case , -->
+
+    <!--All the other scenarios it will be ignored.-->
+    <!--<parameter name="ServicesDirectory">service</parameter>-->
+    <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
+    <!--<parameter name="ModulesDirectory">modules</parameter>-->
+
+
+    <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
+    <!--root which can configured using the following contextRoot parameter-->
+    <!--<parameter name="contextRoot">axis2</parameter>-->
+
+    <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints-->
+    <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
+    <!--context path to proper Axis2 servlets-->
+    <!--<parameter name="servicePath">services</parameter>-->
+    <!--<parameter name="restPath">rest</parameter>-->
+
+    <!-- Following parameter will completely disable REST handling in Axis2-->
+    <parameter name="disableREST" locked="false">false</parameter>
+
+    <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files -->
+    <parameter name="disableSOAP12" locked="true">false</parameter>
+
+    <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
+    <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
+    <deployer extension=".jar" directory="servicejars"
+              class="org.apache.axis2.jaxws.framework.JAXWSDeployer"/>
+    <deployer extension=".jar" directory="transports"
+              class="org.apache.axis2.deployment.TransportDeployer"/>
+
+    <!--CORBA deployer , this will alow users to invoke remote CORBA services through Axis2-->
+    <!--<deployer extension=".xml" directory="corba" class="org.apache.axis2.corba.deployer.CorbaDeployer"/>-->
+
+    <!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
+
+
+    <!-- Following parameter will set the host name for the epr-->
+    <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
+
+    <!-- If you have a front end host which exposes this webservice using a different public URL  -->
+    <!-- use this parameter to override autodetected url -->
+    <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
+
+    <!--By default, JAXWS services are created by reading annotations. WSDL and schema are generated-->
+    <!--using a separate WSDL generator only when ?wsdl is called. Therefore, even if you engage-->
+    <!--policies etc.. to AxisService, it doesn't appear in the WSDL. By setting the following property-->
+    <!--to true, you can create the AxisService using the generated WSDL and remove the need for a-->
+    <!--WSDL generator. When ?wsdl is called, WSDL is generated in the normal way.-->
+    <parameter name="useGeneratedWSDLinJAXWS">false</parameter>
+
+    <!--    The way of adding listener to the system-->
+    <!--    <listener class="org.apache.axis2.ObserverIMPL">-->
+    <!--        <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
+    <!--    </listener>-->
+
+    <threadContextMigrators>
+        <threadContextMigrator listId="JAXWS-ThreadContextMigrator-List"
+                               class="org.apache.axis2.jaxws.addressing.migrator.EndpointContextMapMigrator"/>
+    </threadContextMigrators>
+
+    <!-- ================================================= -->
+    <!-- Message Receivers -->
+    <!-- ================================================= -->
+    <!--This is the default MessageReceiver for the system , if you want to have MessageReceivers for -->
+    <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
+    <!--any operation -->
+    <!--Note : You can override this for a particular service by adding the same element with your requirement-->
+    <messageReceivers>
+        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
+                         class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
+                         class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
+                         class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
+                         class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/ns/wsdl/in-only"
+                         class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
+                         class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+    </messageReceivers>
+
+    <!-- ================================================= -->
+    <!-- Message Formatter -->
+    <!-- ================================================= -->
+    <!--Following content type to message formatter mapping can be used to implement support for different message -->
+    <!--format  serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
+    <messageFormatters>
+        <messageFormatter contentType="application/x-www-form-urlencoded"
+                          class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
+        <messageFormatter contentType="multipart/form-data"
+                          class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
+        <messageFormatter contentType="application/xml"
+                          class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
+        <messageFormatter contentType="text/xml"
+                          class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
+        <messageFormatter contentType="application/soap+xml"
+                          class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
+    </messageFormatters>
+
+    <!-- ================================================= -->
+    <!-- Message Builders -->
+    <!-- ================================================= -->
+    <!--Following content type to builder mapping can be used to implement support for different message -->
+    <!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
+    <messageBuilders>
+        <messageBuilder contentType="application/xml"
+                        class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
+        <messageBuilder contentType="application/x-www-form-urlencoded"
+                        class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
+        <messageBuilder contentType="multipart/form-data"
+                        class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
+    </messageBuilders>
+
+    <!-- ================================================= -->
+    <!-- Transport Ins -->
+    <!-- ================================================= -->
+
+    <!-- The default configuration assumes that AxisServlet only receives requests
+         through HTTP. To allow HTTPS as well, configure a second AxisServletListener
+         with name="https" and specify the port parameter on both receivers.
+         For more information, please have a look at the servlet transport documentation:
+         http://axis.apache.org/axis2/java/core/docs/servlet-transport.html -->
+    <transportReceiver name="http"
+                       class="org.apache.axis2.transport.http.AxisServletListener"/>
+
+    <!--Uncomment if you want to have TCP transport support-->
+    <!--transportReceiver name="tcp"
+                       class="org.apache.axis2.transport.tcp.TCPServer">
+        <parameter name="port">6060</parameter-->>
+    <!--If you want to give your own host address for EPR generation-->
+    <!--uncomment the following paramter , and set it as you required.-->
+    <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
+    <!-- /transportReceiver -->
+
+    <!-- ================================================= -->
+    <!-- Transport Outs -->
+    <!-- ================================================= -->
+
+    <!--Uncomment if you want to have TCP transport support-->
+    <!--
+    <transportSender name="tcp"
+                     class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
+    -->
+    <transportSender name="local"
+                     class="org.apache.axis2.transport.local.LocalTransportSender"/>
+    <transportSender name="http"
+                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+        <parameter name="PROTOCOL">HTTP/1.1</parameter>
+        <parameter name="Transfer-Encoding">chunked</parameter>
+
+        <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages -->
+        <!--  <parameter name="OmitSOAP12Action">true</parameter>  -->
+    </transportSender>
+
+    <transportSender name="https"
+                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+        <parameter name="PROTOCOL">HTTP/1.1</parameter>
+        <parameter name="Transfer-Encoding">chunked</parameter>
+    </transportSender>
+
+    <!-- Please enable this if you need the java transport -->
+    <!-- <transportSender name="java"
+                     class="org.apache.axis2.transport.java.JavaTransportSender"/> -->
+
+    <!-- ================================================= -->
+    <!-- Global Modules  -->
+    <!-- ================================================= -->
+    <!-- Comment this to disable Addressing -->
+    <module ref="addressing"/>
+
+    <!--Configuring module , providing parameters for modules whether they refer or not-->
+    <!--<moduleConfig name="addressing">-->
+    <!--<parameter name="addressingPara">N/A</parameter>-->
+    <!--</moduleConfig>-->
+
+    <!-- ================================================= -->
+    <!-- Clustering  -->
+    <!-- ================================================= -->
+    <!--
+     To enable clustering for this node, set the value of "enable" attribute of the "clustering"
+     element to "true". The initialization of a node in the cluster is handled by the class
+     corresponding to the "class" attribute of the "clustering" element. It is also responsible for
+     getting this node to join the cluster.
+     -->
+    <clustering class="org.apache.axis2.clustering.tribes.TribesClusteringAgent" enable="false">
+
+        <!--
+           This parameter indicates whether the cluster has to be automatically initalized
+           when the AxisConfiguration is built. If set to "true" the initialization will not be
+           done at that stage, and some other party will have to explictly initialize the cluster.
+        -->
+        <parameter name="AvoidInitiation">true</parameter>
+
+        <!--
+           The membership scheme used in this setup. The only values supported at the moment are
+           "multicast" and "wka"
+
+           1. multicast - membership is automatically discovered using multicasting
+           2. wka - Well-Known Address based multicasting. Membership is discovered with the help
+                    of one or more nodes running at a Well-Known Address. New members joining a
+                    cluster will first connect to a well-known node, register with the well-known node
+                    and get the membership list from it. When new members join, one of the well-known
+                    nodes will notify the others in the group. When a member leaves the cluster or
+                    is deemed to have left the cluster, it will be detected by the Group Membership
+                    Service (GMS) using a TCP ping mechanism.
+        -->
+        <parameter name="membershipScheme">multicast</parameter>
+
+        <!--
+         The clustering domain/group. Nodes in the same group will belong to the same multicast
+         domain. There will not be interference between nodes in different groups.
+        -->
+        <parameter name="domain">wso2.carbon.domain</parameter>
+
+        <!--
+           When a Web service request is received, and processed, before the response is sent to the
+           client, should we update the states of all members in the cluster? If the value of
+           this parameter is set to "true", the response to the client will be sent only after
+           all the members have been updated. Obviously, this can be time consuming. In some cases,
+           such this overhead may not be acceptable, in which case the value of this parameter
+           should be set to "false"
+        -->
+        <parameter name="synchronizeAll">true</parameter>
+
+        <!--
+          The maximum number of times we need to retry to send a message to a particular node
+          before giving up and considering that node to be faulty
+        -->
+        <parameter name="maxRetries">10</parameter>
+
+        <!-- The multicast address to be used -->
+        <parameter name="mcastAddress">228.0.0.4</parameter>
+
+        <!-- The multicast port to be used -->
+        <parameter name="mcastPort">45564</parameter>
+
+        <!-- The frequency of sending membership multicast messages (in ms) -->
+        <parameter name="mcastFrequency">500</parameter>
+
+        <!-- The time interval within which if a member does not respond, the member will be
+         deemed to have left the group (in ms)
+         -->
+        <parameter name="memberDropTime">3000</parameter>
+
+        <!--
+           The IP address of the network interface to which the multicasting has to be bound to.
+           Multicasting would be done using this interface.
+        -->
+        <parameter name="mcastBindAddress">127.0.0.1</parameter>
+
+        <!-- The host name or IP address of this member -->
+        <parameter name="localMemberHost">127.0.0.1</parameter>
+
+        <!--
+        The TCP port used by this member. This is the port through which other nodes will
+        contact this member
+         -->
+        <parameter name="localMemberPort">4000</parameter>
+
+        <!--
+        Preserve message ordering. This will be done according to sender order.
+        -->
+        <parameter name="preserveMessageOrder">true</parameter>
+
+        <!--
+        Maintain atmost-once message processing semantics
+        -->
+        <parameter name="atmostOnceMessageSemantics">true</parameter>
+
+        <!--
+        Properties specific to this member
+        -->
+        <parameter name="properties">
+            <property name="backendServerURL" value="https://${hostName}:${httpsPort}/services/"/>
+            <property name="mgtConsoleURL" value="https://${hostName}:${httpsPort}/"/>
+        </parameter>
+
+        <!--
+           The list of static or well-known members. These entries will only be valid if the
+           "membershipScheme" above is set to "wka"
+        -->
+        <members>
+            <member>
+                <hostName>127.0.0.1</hostName>
+                <port>4000</port>
+            </member>
+            <member>
+                <hostName>127.0.0.1</hostName>
+                <port>4001</port>
+            </member>
+        </members>
+
+        <!--
+        Enable the groupManagement entry if you need to run this node as a cluster manager.
+        Multiple application domains with different GroupManagementAgent implementations
+        can be defined in this section.
+        -->
+        <groupManagement enable="false">
+            <applicationDomain name="apache.axis2.application.domain"
+                               description="Axis2 group"
+                               agent="org.apache.axis2.clustering.management.DefaultGroupManagementAgent"/>
+        </groupManagement>
+
+        <!--
+           This interface is responsible for handling management of a specific node in the cluster
+           The "enable" attribute indicates whether Node management has been enabled
+        -->
+        <nodeManager class="org.apache.axis2.clustering.management.DefaultNodeManager"
+                         enable="true"/>
+
+        <!--
+           This interface is responsible for handling state replication. The property changes in
+           the Axis2 context hierarchy in this node, are propagated to all other nodes in the cluster.
+
+           The "excludes" patterns can be used to specify the prefixes (e.g. local_*) or
+           suffixes (e.g. *_local) of the properties to be excluded from replication. The pattern
+           "*" indicates that all properties in a particular context should not be replicated.
+
+            The "enable" attribute indicates whether context replication has been enabled
+        -->
+        <stateManager class="org.apache.axis2.clustering.state.DefaultStateManager"
+                      enable="true">
+            <replication>
+                <defaults>
+                    <exclude name="local_*"/>
+                    <exclude name="LOCAL_*"/>
+                </defaults>
+                <context class="org.apache.axis2.context.ConfigurationContext">
+                    <exclude name="local_*"/>
+                </context>
+                <context class="org.apache.axis2.context.ServiceGroupContext">
+                    <exclude name="local_*"/>
+                </context>
+                <context class="org.apache.axis2.context.ServiceContext">
+                    <exclude name="local_*"/>
+                </context>
+            </replication>
+        </stateManager>
+    </clustering>
+
+    <!-- ================================================= -->
+    <!-- Phases  -->
+    <!-- ================================================= -->
+    <phaseOrder type="InFlow">
+        <!--  System predefined phases       -->
+        <phase name="Transport">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+        </phase>
+        <phase name="Addressing">
+            <handler name="AddressingBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
+                <order phase="Addressing"/>
+            </handler>
+        </phase>
+        <phase name="Security"/>
+        <phase name="PreDispatch"/>
+        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
+            <handler name="RequestURIOperationDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
+            <handler name="SOAPMessageBodyBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
+            <handler name="HTTPLocationBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
+            <handler name="GenericProviderDispatcher"
+                     class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
+            <handler name="MustUnderstandValidationDispatcher"
+                     class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
+        </phase>
+        <phase name="RMPhase"/>
+        <!--  System predefined phases       -->
+        <!--   After Postdispatch phase module author or service author can add any phase he want      -->
+        <phase name="OperationInPhase">
+            <handler name="MustUnderstandChecker"
+                     class="org.apache.axis2.jaxws.dispatchers.MustUnderstandChecker">
+                <order phase="OperationInPhase"/>
+            </handler>
+        </phase>
+        <phase name="soapmonitorPhase"/>
+    </phaseOrder>
+    <phaseOrder type="OutFlow">
+        <!--      user can add his own phases to this area  -->
+        <phase name="soapmonitorPhase"/>
+        <phase name="OperationOutPhase"/>
+        <!--system predefined phase-->
+        <!--these phase will run irrespective of the service-->
+        <phase name="RMPhase"/>
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+        <phase name="Security"/>
+    </phaseOrder>
+    <phaseOrder type="InFaultFlow">
+        <phase name="Addressing">
+            <handler name="AddressingBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
+                <order phase="Addressing"/>
+            </handler>
+        </phase>
+        <phase name="Security"/>
+        <phase name="PreDispatch"/>
+        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
+            <handler name="RequestURIOperationDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
+            <handler name="SOAPMessageBodyBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
+            <handler name="HTTPLocationBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
+            <handler name="GenericProviderDispatcher"
+                     class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
+            <handler name="MustUnderstandValidationDispatcher"
+                     class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
+        </phase>
+        <phase name="RMPhase"/>
+        <!--      user can add his own phases to this area  -->
+        <phase name="OperationInFaultPhase"/>
+        <phase name="soapmonitorPhase"/>
+    </phaseOrder>
+    <phaseOrder type="OutFaultFlow">
+        <!--      user can add his own phases to this area  -->
+        <phase name="soapmonitorPhase"/>
+        <phase name="OperationOutFaultPhase"/>
+        <phase name="RMPhase"/>
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+        <phase name="Security"/>
+    </phaseOrder>
+</axisconfig>
+

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/web.xml b/juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/web.xml
new file mode 100644
index 0000000..6e718d8
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/web.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE web-app
+    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+    "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<!--
+	Licensed to the Apache Software Foundation (ASF) under one
+	or more contributor license agreements. See the NOTICE file
+	distributed with this work for additional information
+	regarding copyright ownership. The ASF licenses this file
+	to you 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.
+-->
+<web-app>
+ 
+    <context-param>
+        <param-name>log4jConfigLocation</param-name>
+        <param-value>/WEB-INF/classes/log4j.properties</param-value>
+    </context-param>
+
+    <listener>
+        <!-- this class setups the encryption key for the session-->
+        <listener-class>org.apache.juddi.adminconsole.StartupServlet</listener-class>
+    
+    </listener>
+    <servlet>
+        <servlet-name>AxisServlet</servlet-name>
+        <display-name>Apache-Axis Servlet</display-name>
+        <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
+        <!--<init-param>-->
+        <!--<param-name>axis2.xml.path</param-name>-->
+        <!--<param-value>/WEB-INF/conf/axis2.xml</param-value>-->
+        <!--<param-name>axis2.xml.url</param-name>-->
+        <!--<param-value>http://localhost/myrepo/axis2.xml</param-value>-->
+        <!--<param-name>axis2.repository.path</param-name>-->
+        <!--<param-value>/WEB-INF</param-value>-->
+        <!--<param-name>axis2.repository.url</param-name>-->
+        <!--<param-value>http://localhost/myrepo</param-value>-->
+        <!--</init-param>-->
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+   
+  
+    <servlet>
+        <servlet-name>RegistryServlet</servlet-name>
+        <display-name>Registry Servlet</display-name>
+        <servlet-class>
+            org.apache.juddi.servlets.RegistryServlet
+        </servlet-class>
+        <load-on-startup>1</load-on-startup> 
+    </servlet>
+  
+    <servlet>
+        <servlet-name>NotifyServlet</servlet-name>
+        <display-name>Notify Servlet</display-name>
+        <servlet-class>
+            org.apache.juddi.servlets.NotifyServlet
+        </servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+  
+  
+  
+    <servlet-mapping>
+        <servlet-name>AxisServlet</servlet-name>
+        <url-pattern>/servlet/AxisServlet</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>AxisServlet</servlet-name>
+        <url-pattern>*.jws</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>AxisServlet</servlet-name> 
+        <url-pattern>/services/*</url-pattern>
+    </servlet-mapping>
+ 
+	
+    <servlet-mapping>
+        <servlet-name>NotifyServlet</servlet-name>
+        <url-pattern>/notify/*</url-pattern>
+    </servlet-mapping>
+ 
+    <resource-ref>
+        <description>jUDDI DataSource</description>
+        <res-ref-name>jdbc/juddiDB</res-ref-name>
+        <res-type>javax.sql.DataSource</res-type>
+        <res-auth>Container</res-auth>
+        <res-sharing-scope>Shareable</res-sharing-scope>
+    </resource-ref>
+
+    <security-constraint>
+        <display-name>jUDDI Replication content</display-name>
+        <web-resource-collection>
+            <web-resource-name>admin</web-resource-name>
+            <url-pattern>/*</url-pattern>
+          
+          
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>replication</role-name>
+        </auth-constraint>
+        <!-- uncomment to require SSL -->
+        <user-data-constraint>
+            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
+        </user-data-constraint>
+      
+    </security-constraint>
+    <login-config> 
+        <auth-method>CLIENT-CERT</auth-method> 
+        <!-- you should consider NOT using BASIC is favor of something more secure, see your web app servers documentation for details -->
+        <realm-name>Apache jUDDI - Make sure you're using HTTPS!</realm-name> 
+    </login-config> 
+    <security-role>
+        <role-name>replication</role-name>
+    </security-role>
+</web-app>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/beans.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/beans.xml b/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/beans.xml
new file mode 100644
index 0000000..4a52c2f
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/beans.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+	Licensed to the Apache Software Foundation (ASF) under one
+	or more contributor license agreements. See the NOTICE file
+	distributed with this work for additional information
+	regarding copyright ownership. The ASF licenses this file
+	to you 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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans" 
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+       xmlns:jaxws="http://cxf.apache.org/jaxws"
+	    xmlns:jaxrs="http://cxf.apache.org/jaxrs"
+		xmlns:util="http://www.springframework.org/schema/util"
+  xsi:schemaLocation="
+  http://www.springframework.org/schema/beans classpath:schemas/spring-beans.xsd
+  http://cxf.apache.org/jaxws  classpath:schemas/jaxws.xsd
+  http://cxf.apache.org/jaxrs classpath:schemas/jaxrs.xsd
+  http://www.springframework.org/schema/util classpath:schemas/spring-util.xsd
+  ">
+ 
+  <import resource="classpath:META-INF/cxf/cxf.xml" />
+  <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
+  <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
+
+ 
+
+
+  <jaxws:endpoint id="replication" implementor="org.apache.juddi.api.impl.UDDIReplicationImpl" address="/replication">
+    <jaxws:properties>
+      <entry key="schema-validation-enabled" value="true"/>
+    </jaxws:properties>
+  </jaxws:endpoint>
+
+
+
+</beans>


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