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: [email protected] For additional commands, e-mail: [email protected]
