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 2014/12/09 04:13:36 UTC
[15/28] juddi git commit: JUDDI-241 get/set replication cfg now works
for all sub elements. notify changes works,
however getChangeRecords fails when called from within the tomcat container.
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java b/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
index e2e11ca..132c530 100644
--- a/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
+++ b/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
@@ -16,6 +16,7 @@
*/
package org.apache.juddi.replication;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Queue;
@@ -25,6 +26,7 @@ import java.util.concurrent.ConcurrentLinkedQueue;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
+import javax.xml.bind.JAXB;
import javax.xml.ws.BindingProvider;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.logging.Log;
@@ -41,6 +43,7 @@ import org.uddi.repl_v3.ChangeRecordIDType;
import org.uddi.repl_v3.CommunicationGraph;
import org.uddi.repl_v3.HighWaterMarkVectorType;
import org.uddi.repl_v3.NotifyChangeRecordsAvailable;
+import org.uddi.repl_v3.Operator;
import org.uddi.v3_service.UDDIReplicationPortType;
/**
@@ -104,6 +107,7 @@ public class ReplicationNotifier extends TimerTask {
tx = em.getTransaction();
tx.begin();
+
em.persist(j);
tx.commit();
} catch (Exception ex) {
@@ -111,6 +115,7 @@ public class ReplicationNotifier extends TimerTask {
if (tx != null && tx.isActive()) {
tx.rollback();
}
+ JAXB.marshal(MappingModelToApi.mapChangeRecord(j), System.out);
} finally {
em.close();
}
@@ -121,7 +126,7 @@ public class ReplicationNotifier extends TimerTask {
//TODO figure out what this statement means 7.5.3
/**
* In the absence of a communicationGraph element from the
- * Replication Configuration Structure, all nodes listed in the
+ * Replication Configuration Structure (although it's mandatory in the xsd), all nodes listed in the
* node element MAY send any and all messages to any other node
* of the registry.
*/
@@ -130,37 +135,60 @@ public class ReplicationNotifier extends TimerTask {
return;
}
+ List<String> destinationUrls = new ArrayList<String>();
+
+ for (Operator o:repcfg.getOperator())
+ {
+ //no need to tell myself about a change at myself
+ if (!o.getOperatorNodeID().equalsIgnoreCase(node))
+ destinationUrls.add(o.getSoapReplicationURL());
+ }
+ /*
+ Iterator<String> iterator = repcfg.getCommunicationGraph().getNode().iterator();
+ while (iterator.hasNext()) {
+ String next = iterator.next();
+
+ Node destinationNode = getNode(next);
+ if (destinationNode == null) {
+ log.warn(next + " node was not found, cannot deliver replication messages");
+ } else {
+ destinationUrls.add(destinationNode.getReplicationUrl());
+ }
+ }
Iterator<CommunicationGraph.Edge> it = repcfg.getCommunicationGraph().getEdge().iterator();
while (it.hasNext()) {
//send each change set to the replication node in the graph
- UDDIReplicationPortType x = new UDDIService().getUDDIReplicationPort();
+
CommunicationGraph.Edge next = it.next();
//next.getMessageReceiver(); //Node ID
- Node destinationNode = getNode(next.getMessageSender());
+ Node destinationNode = getNode(next.getMessageReceiver());
if (destinationNode == null) {
- log.warn(next.getMessageSender() + " node was not found, cannot deliver replication messages");
+ log.warn(next.getMessageReceiver() + " node was not found, cannot deliver replication messages");
} else {
- //TODO the spec talks about control messages, should we even support it? seems pointless
- ((BindingProvider) x).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, destinationNode.getReplicationUrl());
- NotifyChangeRecordsAvailable req = new NotifyChangeRecordsAvailable();
-
- req.setNotifyingNode(node);
- HighWaterMarkVectorType highWaterMarkVectorType = new HighWaterMarkVectorType();
-
- highWaterMarkVectorType.getHighWaterMark().add(new ChangeRecordIDType(node, j.getId()));
- req.setChangesAvailable(highWaterMarkVectorType);
-
- try {
- x.notifyChangeRecordsAvailable(req);
- log.info("Successfully sent change record available message to " + destinationNode.getName());
- } catch (Exception ex) {
- log.warn("Unable to send change notification to " + destinationNode.getName(), ex);
- }
+ destinationUrls.add(destinationNode.getReplicationUrl());
}
- }
+ }*/
+ for (String s : destinationUrls) {
+ //TODO the spec talks about control messages, should we even support it? seems pointless
+ UDDIReplicationPortType x = new UDDIService().getUDDIReplicationPort();
+ ((BindingProvider) x).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, s);
+ NotifyChangeRecordsAvailable req = new NotifyChangeRecordsAvailable();
+
+ req.setNotifyingNode(node);
+ HighWaterMarkVectorType highWaterMarkVectorType = new HighWaterMarkVectorType();
+ highWaterMarkVectorType.getHighWaterMark().add(new ChangeRecordIDType(node, j.getId()));
+ req.setChangesAvailable(highWaterMarkVectorType);
+
+ try {
+ x.notifyChangeRecordsAvailable(req);
+ log.info("Successfully sent change record available message to " + s);
+ } catch (Exception ex) {
+ log.warn("Unable to send change notification to " + s, ex);
+ }
+ }
}
public synchronized void run() {
@@ -193,19 +221,19 @@ public class ReplicationNotifier extends TimerTask {
try {
tx = em.getTransaction();
tx.begin();
- Query q = em.createQuery("SELECT item FROM ReplicationConfiguration item");
+ Query q = em.createQuery("SELECT item FROM ReplicationConfiguration item order by item.serialNumber DESC");
q.setMaxResults(1);
- List<ReplicationConfiguration> results = (List<ReplicationConfiguration>) q.getResultList();
+ ReplicationConfiguration results = (ReplicationConfiguration) q.getSingleResult();
// ReplicationConfiguration find = em.find(ReplicationConfiguration.class, null);
- if (results != null && !results.isEmpty()) {
- MappingModelToApi.mapReplicationConfiguration(results.get(0), item);
- } else {
- item = null;
+ if (results != null) {
+ MappingModelToApi.mapReplicationConfiguration(results, item);
}
+
tx.commit();
return item;
} catch (Exception ex) {
- log.error("error", ex);
+ //log.error("error", ex);
+ //no config available
if (tx != null && tx.isActive()) {
tx.rollback();
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/juddi-core/src/main/java/org/apache/juddi/validation/ValidateNode.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/validation/ValidateNode.java b/juddi-core/src/main/java/org/apache/juddi/validation/ValidateNode.java
index 07fe653..573f39b 100644
--- a/juddi-core/src/main/java/org/apache/juddi/validation/ValidateNode.java
+++ b/juddi-core/src/main/java/org/apache/juddi/validation/ValidateNode.java
@@ -87,7 +87,7 @@ public class ValidateNode extends ValidateUDDIApi {
throw new ValueNotAllowedException(new ErrorMessage("errors.node.NoPUB"));
}
if (node.getSubscriptionListenerUrl() == null || node.getSubscriptionListenerUrl().length() == 0 || node.getSubscriptionListenerUrl().length() > 255) {
- throw new ValueNotAllowedException(new ErrorMessage("errors.node.NoSUBL"));
+ // throw new ValueNotAllowedException(new ErrorMessage("errors.node.NoSUBL"));
}
if (node.getReplicationUrl() == null || node.getReplicationUrl().length() == 0 || node.getReplicationUrl().length() > 255) {
//throw new ValueNotAllowedException(new ErrorMessage("errors.node.NoSUBL"));
@@ -96,6 +96,9 @@ public class ValidateNode extends ValidateUDDIApi {
if (node.getSubscriptionUrl() == null || node.getSubscriptionUrl().length() == 0 || node.getSubscriptionUrl().length() > 255) {
throw new ValueNotAllowedException(new ErrorMessage("errors.node.NoSUB"));
}
+ if (node.getSecurityUrl()== null || node.getSecurityUrl().length() == 0 || node.getSecurityUrl().length() > 255) {
+ throw new ValueNotAllowedException(new ErrorMessage("errors.node.NoSec"));
+ }
if (node.getProxyTransport() == null || node.getProxyTransport().length() == 0 || node.getProxyTransport().length() > 255) {
throw new ValueNotAllowedException(new ErrorMessage("errors.node.NoProxy"));
} else {
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java b/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java
index 6ede348..97da3ff 100644
--- a/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java
+++ b/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java
@@ -17,6 +17,7 @@
package org.apache.juddi.validation;
import java.math.BigInteger;
+import java.util.List;
import javax.persistence.EntityManager;
import javax.xml.ws.WebServiceContext;
import org.apache.juddi.model.Node;
@@ -28,6 +29,7 @@ import org.apache.juddi.v3.error.ValueNotAllowedException;
import org.uddi.repl_v3.CommunicationGraph.Edge;
import org.uddi.repl_v3.HighWaterMarkVectorType;
import org.uddi.repl_v3.NotifyChangeRecordsAvailable;
+import org.uddi.repl_v3.Operator;
import org.uddi.repl_v3.ReplicationConfiguration;
import org.uddi.v3_service.DispositionReportFaultMessage;
@@ -115,31 +117,46 @@ public class ValidateReplication extends ValidateUDDIApi {
return false;
}
- public void validateSetReplicationNodes(ReplicationConfiguration replicationConfiguration, EntityManager em) throws DispositionReportFaultMessage {
+ public void validateSetReplicationNodes(ReplicationConfiguration replicationConfiguration, EntityManager em, String thisnode) throws DispositionReportFaultMessage {
if (replicationConfiguration == null) {
throw new InvalidValueException(new ErrorMessage("errors.replication.configNull"));
}
+ if (replicationConfiguration.getCommunicationGraph() == null) {
+ throw new InvalidValueException(new ErrorMessage("errors.replication.configNull"));
+ }
+ if (replicationConfiguration.getRegistryContact() == null) {
+ throw new InvalidValueException(new ErrorMessage("errors.replication.contactNull"));
+ }
+ if (replicationConfiguration.getRegistryContact().getContact() == null) {
+ throw new InvalidValueException(new ErrorMessage("errors.replication.contactNull"));
+ }
+ if (replicationConfiguration.getRegistryContact().getContact().getPersonName().get(0) == null) {
+ throw new InvalidValueException(new ErrorMessage("errors.replication.contactNull"));
+ }
+
if (replicationConfiguration.getCommunicationGraph() != null) {
for (String s : replicationConfiguration.getCommunicationGraph().getNode()) {
- Node find = em.find(org.apache.juddi.model.Node.class, s);
- if (find == null) {
+ if (!Contains(replicationConfiguration.getOperator(), s)) {
throw new InvalidValueException(new ErrorMessage("errors.replication.configNodeNotFound"));
}
}
for (Edge s : replicationConfiguration.getCommunicationGraph().getEdge()) {
- Node find = em.find(org.apache.juddi.model.Node.class, s.getMessageReceiver());
- if (find == null) {
+ //TODO revisit this for correctness
+ //Node find = null;
+ //if (!thisnode.equalsIgnoreCase(s.getMessageReceiver())) {
+ if (!Contains(replicationConfiguration.getOperator(), s.getMessageReceiver())) {
throw new InvalidValueException(new ErrorMessage("errors.replication.configNodeNotFound"));
+ //}
}
- find = null;
- find = em.find(org.apache.juddi.model.Node.class, s.getMessageSender());
- if (find == null) {
+ //find = null;
+ //if (!thisnode.equalsIgnoreCase(s.getMessageSender())) {
+ if (!Contains(replicationConfiguration.getOperator(), s.getMessageSender())) {
throw new InvalidValueException(new ErrorMessage("errors.replication.configNodeNotFound"));
+ //}
}
for (String id : s.getMessageReceiverAlternate()) {
- find = em.find(org.apache.juddi.model.Node.class, id);
- if (find == null) {
+ if (!Contains(replicationConfiguration.getOperator(), id)) {
throw new InvalidValueException(new ErrorMessage("errors.replication.configNodeNotFound"));
}
}
@@ -148,4 +165,16 @@ public class ValidateReplication extends ValidateUDDIApi {
}
}
+ private boolean Contains(List<Operator> operator, String s) {
+ if (operator == null) {
+ return false;
+ }
+ for (Operator o : operator) {
+ if (o.getOperatorNodeID().equalsIgnoreCase(s)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/juddi-core/src/main/resources/messages.properties
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/resources/messages.properties b/juddi-core/src/main/resources/messages.properties
index 0a23c78..95d98ce 100644
--- a/juddi-core/src/main/resources/messages.properties
+++ b/juddi-core/src/main/resources/messages.properties
@@ -243,6 +243,7 @@ errors.node.NoPUB=A publish url was not specified
errors.node.NoIN=A inquiry url was not specified
errors.node.NoSUBL=A subscription listener url was not specified
errors.node.NoSUB=A subscription url was not specified
+errors.node.NoSec=A security url was not specified
errors.node.NoProxy=A transport proxy class must be specified. If you're not sure, use 'org.apache.juddi.v3.client.transport.JAXWSTransport'
errors.node.illegalProxyTransport=The transport proxy class is invalid. If you're not sure, use 'org.apache.juddi.v3.client.transport.JAXWSTransport'
errors.node.NoRMIData=When using org.apache.juddi.v3.client.transport.RMITransport the factory settings must be specified
@@ -291,6 +292,7 @@ errors.replication.bothLimitsSpecified=responseLimitCount or responseLimitVector
errors.replication.negativeLimit=The specified response limit is either 0 or a negative number.
errors.replication.limitVectorNull=The high water mark vector limit specified OriginatingUSN is null or invalid
errors.replication.limitVectorNoNode=No node name was specified
-errors.replication.configNodeNotFound=No specified node name is not currently registered as a node. Use the jUDDI Service API to register it. Node id:
+errors.replication.configNodeNotFound=No specified node name is not currently listed as a Operator. Add it to the list and try again. Id:
errors.replication.configNull=No replication config was present in the message
+errors.replication.contactNull=No replication contact was present in the message
errors.deleteNode.InReplicationConfig=The node to be deleted is currently referenced in the replication configuration. You must revise the configuration before deleting the node,
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java
index f64512f..98bdb0b 100644
--- a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java
+++ b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java
@@ -19,6 +19,7 @@ import java.math.BigInteger;
import java.rmi.RemoteException;
import java.util.List;
import java.util.UUID;
+import javax.xml.bind.JAXB;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -40,12 +41,16 @@ import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.uddi.api_v3.Contact;
import org.uddi.api_v3.DispositionReport;
+import org.uddi.api_v3.PersonName;
import org.uddi.repl_v3.ChangeRecord;
import org.uddi.repl_v3.ChangeRecordIDType;
import org.uddi.repl_v3.CommunicationGraph;
import org.uddi.repl_v3.DoPing;
import org.uddi.repl_v3.HighWaterMarkVectorType;
+import org.uddi.repl_v3.Operator;
+import org.uddi.repl_v3.OperatorStatusType;
import org.uddi.repl_v3.ReplicationConfiguration;
import org.uddi.v3_service.DispositionReportFaultMessage;
import org.uddi.v3_service.UDDIReplicationPortType;
@@ -126,8 +131,8 @@ public class API_160_ReplicationTest {
}
/**
- * add a clerk and node, delete the clerk, then check that the node is still there
- * it should have been deleted
+ * add a clerk and node, delete the clerk, then check that the node is
+ * still there it should have been deleted
*
* @throws Exception
*/
@@ -177,13 +182,13 @@ public class API_160_ReplicationTest {
//TODO revise cascade deletes on nodes and clerks
Assert.fail("node unexpectedly deleted");
}
-
-
+
/**
* add clerk + node, try to delete the node
- * @throws Exception
+ *
+ * @throws Exception
*/
- @Test
+ @Test
public void testAddClerkNodeThenDelete2() throws Exception {
SaveClerk sc = new SaveClerk();
sc.setAuthInfo(authInfoRoot);
@@ -210,8 +215,7 @@ public class API_160_ReplicationTest {
juddi.deleteNode(new DeleteNode(authInfoRoot, c.getNode().getName()));
//this should success
-
-
+
//the clerk should be gone too
ClerkList allNodes = juddi.getAllClerks(authInfoRoot);
boolean found = false;
@@ -227,10 +231,10 @@ public class API_160_ReplicationTest {
NodeList allNodes1 = juddi.getAllNodes(authInfoRoot);
for (int i = 0; i < allNodes1.getNode().size(); i++) {
if (allNodes1.getNode().get(i).getName().equals(c.getNode().getName())) {
- Assert.fail("node is still there!");
+ Assert.fail("node is still there!");
}
}
-
+
}
@Test
@@ -264,14 +268,12 @@ public class API_160_ReplicationTest {
juddi.saveNode(saveNode);
juddi.saveClerk(sc);
-
+
//success
-
-
//delete it
- juddi.deleteClerk(new DeleteClerk(authInfoRoot,c.getName()));
- System.out.println(c.getName()+" deleted");
-
+ juddi.deleteClerk(new DeleteClerk(authInfoRoot, c.getName()));
+ System.out.println(c.getName() + " deleted");
+
juddi.deleteNode(new DeleteNode(authInfoRoot, c.getNode().getName()));
//confirm it's gone
NodeList allNodes = juddi.getAllNodes(authInfoRoot);
@@ -288,30 +290,23 @@ public class API_160_ReplicationTest {
@Test
public void setReplicationConfig() throws Exception {
- Node node = new Node();
- node.setName("test_node");
- node.setClientName("test_client");
- node.setProxyTransport(org.apache.juddi.v3.client.transport.JAXWSTransport.class.getCanonicalName());
- node.setCustodyTransferUrl("http://localhost");
- node.setDescription("http://localhost");
- node.setInquiryUrl("http://localhost");
- node.setPublishUrl("http://localhost");
- node.setReplicationUrl("http://localhost");
- node.setSecurityUrl("http://localhost");
- node.setSubscriptionListenerUrl("http://localhost");
- node.setSubscriptionUrl("http://localhost");
-
- SaveNode saveNode = new SaveNode();
- saveNode.setAuthInfo(authInfoRoot);
- saveNode.getNode().add(node);
-
- juddi.saveNode(saveNode);
+
ReplicationConfiguration r = new ReplicationConfiguration();
+ Operator op = new Operator();
+ op.setOperatorNodeID("test_node");
+ op.setSoapReplicationURL("http://localhost");
+ op.setOperatorStatus(OperatorStatusType.NORMAL);
+
+ r.getOperator().add(op);
r.setCommunicationGraph(new CommunicationGraph());
- // r.getCommunicationGraph().getEdge().add(new CommunicationGraph.Edge());
+ r.setRegistryContact(new ReplicationConfiguration.RegistryContact());
+ r.getRegistryContact().setContact(new Contact());
+ r.getRegistryContact().getContact().getPersonName().add(new PersonName("test", null));
+ // r.getCommunicationGraph().getEdge().add(new CommunicationGraph.Edge());
r.getCommunicationGraph().getNode().add("test_node");
+ JAXB.marshal(r, System.out);
DispositionReport setReplicationNodes = juddi.setReplicationNodes(authInfoRoot, r);
ReplicationConfiguration replicationNodes = juddi.getReplicationNodes(authInfoRoot);
@@ -323,17 +318,20 @@ public class API_160_ReplicationTest {
Assert.assertNotNull(replicationNodes.getTimeOfConfigurationUpdate());
Assert.assertNotNull(replicationNodes.getSerialNumber());
long firstcommit = replicationNodes.getSerialNumber();
-
-
-
- r = new ReplicationConfiguration();
+
+ r = new ReplicationConfiguration();
+ r.getOperator().add(op);
r.setCommunicationGraph(new CommunicationGraph());
- // r.getCommunicationGraph().getEdge().add(new CommunicationGraph.Edge());
+ r.setRegistryContact(new ReplicationConfiguration.RegistryContact());
+ r.getRegistryContact().setContact(new Contact());
+ r.getRegistryContact().getContact().getPersonName().add(new PersonName("test", null));
+ // r.getCommunicationGraph().getEdge().add(new CommunicationGraph.Edge());
r.getCommunicationGraph().getNode().add("test_node");
- setReplicationNodes = juddi.setReplicationNodes(authInfoRoot, r);
+ JAXB.marshal(r, System.out);
+ setReplicationNodes = juddi.setReplicationNodes(authInfoRoot, r);
- replicationNodes = juddi.getReplicationNodes(authInfoRoot);
+ replicationNodes = juddi.getReplicationNodes(authInfoRoot);
Assert.assertNotNull(replicationNodes.getCommunicationGraph());
Assert.assertNotNull(replicationNodes.getCommunicationGraph().getNode());
Assert.assertEquals("test_node", replicationNodes.getCommunicationGraph().getNode().get(0));
@@ -344,4 +342,60 @@ public class API_160_ReplicationTest {
Assert.assertTrue(firstcommit < replicationNodes.getSerialNumber());
}
+
+ @Test
+ public void setReplicationConfig2() throws Exception {
+
+
+
+ ReplicationConfiguration r = new ReplicationConfiguration();
+ Operator op = new Operator();
+ op.setOperatorNodeID("test_node");
+ op.setSoapReplicationURL("http://localhost");
+ op.setOperatorStatus(OperatorStatusType.NORMAL);
+
+ r.getOperator().add(op);
+ r.setCommunicationGraph(new CommunicationGraph());
+ r.setRegistryContact(new ReplicationConfiguration.RegistryContact());
+ r.getRegistryContact().setContact(new Contact());
+ r.getRegistryContact().getContact().getPersonName().add(new PersonName("test", null));
+ // r.getCommunicationGraph().getEdge().add(new CommunicationGraph.Edge());
+ r.getCommunicationGraph().getNode().add("test_node");
+ r.getCommunicationGraph().getControlledMessage().add("doPing");
+ r.getCommunicationGraph().getEdge().add(new CommunicationGraph.Edge());
+ r.getCommunicationGraph().getEdge().get(0).setMessageReceiver("test_node");
+ r.getCommunicationGraph().getEdge().get(0).setMessageSender("test_node");
+ r.getCommunicationGraph().getEdge().get(0).getMessage().add("doPing");
+ r.getCommunicationGraph().getEdge().get(0).getMessageReceiverAlternate().add("test_node");
+
+ DispositionReport setReplicationNodes = juddi.setReplicationNodes(authInfoRoot, r);
+
+ ReplicationConfiguration replicationNodes = juddi.getReplicationNodes(authInfoRoot);
+ Assert.assertNotNull(replicationNodes.getCommunicationGraph());
+ Assert.assertNotNull(replicationNodes.getCommunicationGraph().getNode());
+ Assert.assertEquals("test_node", replicationNodes.getCommunicationGraph().getNode().get(0));
+ Assert.assertNotNull(replicationNodes.getMaximumTimeToGetChanges());
+ Assert.assertNotNull(replicationNodes.getMaximumTimeToSyncRegistry());
+ Assert.assertNotNull(replicationNodes.getTimeOfConfigurationUpdate());
+ Assert.assertNotNull(replicationNodes.getSerialNumber());
+
+ }
+
+ //TODO edges can be listed only once and must be unique
+ //TODO In the absence of a communicationGraph element from the Replication Configuration Structure, all nodes listed in the node element MAY send any and all messages to any other node of the registry.
+ //implies that communicationGraph may be null or empty ,despite the xsd
+ @Test
+ public void getReplicationConfigMandatoryItems() throws Exception {
+
+ ReplicationConfiguration replicationNodes = juddi.getReplicationNodes(authInfoRoot);
+ Assert.assertNotNull(replicationNodes);
+ Assert.assertNotNull(replicationNodes.getCommunicationGraph());
+ Assert.assertNotNull(replicationNodes.getTimeOfConfigurationUpdate());
+ Assert.assertNotNull(replicationNodes.getMaximumTimeToGetChanges());
+ Assert.assertNotNull(replicationNodes.getMaximumTimeToSyncRegistry());
+ Assert.assertNotNull(replicationNodes.getRegistryContact());
+ Assert.assertNotNull(replicationNodes.getRegistryContact().getContact());
+ Assert.assertNotNull(replicationNodes.getRegistryContact().getContact().getPersonName().get(0));
+
+ }
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/juddi-core/src/test/java/org/apache/juddi/api/runtime/CLIServerTest.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/java/org/apache/juddi/api/runtime/CLIServerTest.java b/juddi-core/src/test/java/org/apache/juddi/api/runtime/CLIServerTest.java
new file mode 100644
index 0000000..4c172b9
--- /dev/null
+++ b/juddi-core/src/test/java/org/apache/juddi/api/runtime/CLIServerTest.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright 2014 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.juddi.api.runtime;
+
+import java.math.BigInteger;
+import java.util.Random;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.Endpoint;
+import junit.framework.Assert;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.juddi.v3.client.JUDDIApiService;
+import org.apache.juddi.v3_service.JUDDIApiPortType;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.uddi.repl_v3.HighWaterMarkVectorType;
+import org.uddi.repl_v3.ReplicationConfiguration;
+import org.uddi.v3_service.UDDIReplicationPortType;
+import org.apache.juddi.v3.client.UDDIService;
+import org.uddi.api_v3.Contact;
+import org.uddi.api_v3.PersonName;
+import org.uddi.repl_v3.CommunicationGraph;
+import org.uddi.repl_v3.DoPing;
+
+/**
+ *
+ * @author alex
+ */
+public class CLIServerTest {
+
+ @AfterClass
+ public static void stopManager() throws ConfigurationException {
+ replication.stop();
+ replication = null;
+ juddiapi.stop();
+ juddiapi = null;
+ }
+
+ static Endpoint replication = null;
+ static Endpoint juddiapi = null;
+ static String replUrl = null;
+ static String juddiUrl = null;
+ static boolean sink = false;
+ static replicantImpl repl= new replicantImpl();
+ static juddiTestimpl jude= new juddiTestimpl();
+
+ @BeforeClass
+ public static void startManager() throws Exception {
+
+ Random r = new Random(System.currentTimeMillis());
+ replUrl = "http://localhost:" + (7000 + r.nextInt(1000)) + "/repl";
+ replication = Endpoint.publish(replUrl, repl);
+
+ juddiUrl = "http://localhost:" + (7000 + r.nextInt(1000)) + "/juddi";
+ juddiapi = Endpoint.publish(juddiUrl, jude);
+ System.out.println("Endpoint up at " + replUrl);
+ System.out.println("Endpoint up at " + juddiUrl);
+ }
+
+ @Test
+ public void testGetReplicationConfig() throws Exception {
+
+ JUDDIApiPortType juddiApiService = new JUDDIApiService().getJUDDIApiImplPort();
+ ((BindingProvider) juddiApiService).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, juddiUrl);
+ juddiApiService.getReplicationNodes(null);
+ Assert.assertTrue(sink);
+ sink = false;
+ }
+
+ @Test
+ public void testSetReplicationConfig() throws Exception {
+
+ JUDDIApiPortType juddiApiService = new JUDDIApiService().getJUDDIApiImplPort();
+ ((BindingProvider) juddiApiService).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, juddiUrl);
+ ReplicationConfiguration replicationConfiguration = new ReplicationConfiguration();
+ replicationConfiguration.setCommunicationGraph(new CommunicationGraph());
+ replicationConfiguration.setRegistryContact(new ReplicationConfiguration.RegistryContact());
+ replicationConfiguration.getRegistryContact().setContact(new Contact());
+ replicationConfiguration.getRegistryContact().getContact().getPersonName().add(new PersonName("name", null));
+
+ juddiApiService.setReplicationNodes(null, replicationConfiguration);
+ Assert.assertTrue(sink);
+ sink = false;
+ }
+
+ @Test
+ public void testReplicationGetChanges() throws Exception {
+
+ UDDIReplicationPortType juddiApiService = new UDDIService().getUDDIReplicationPort();
+ ((BindingProvider) juddiApiService).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, replUrl);
+ juddiApiService.getChangeRecords(null, new HighWaterMarkVectorType(), BigInteger.ONE, new HighWaterMarkVectorType());
+ Assert.assertTrue(sink);
+ sink = false;
+ }
+ @Test
+ public void testReplicationPing() throws Exception {
+
+ UDDIReplicationPortType juddiApiService = new UDDIService().getUDDIReplicationPort();
+ ((BindingProvider) juddiApiService).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, replUrl);
+ juddiApiService.doPing(new DoPing());//null, new HighWaterMarkVectorType(), BigInteger.ONE, new HighWaterMarkVectorType());
+ Assert.assertTrue(sink);
+ sink = false;
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/juddi-core/src/test/java/org/apache/juddi/api/runtime/juddiTestimpl.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/java/org/apache/juddi/api/runtime/juddiTestimpl.java b/juddi-core/src/test/java/org/apache/juddi/api/runtime/juddiTestimpl.java
new file mode 100644
index 0000000..c127137
--- /dev/null
+++ b/juddi-core/src/test/java/org/apache/juddi/api/runtime/juddiTestimpl.java
@@ -0,0 +1,188 @@
+/*
+ * Copyright 2014 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.juddi.api.runtime;
+
+import java.rmi.RemoteException;
+import java.util.List;
+import javax.jws.WebService;
+import javax.xml.ws.Holder;
+import org.apache.juddi.api_v3.AdminSaveBusinessWrapper;
+import org.apache.juddi.api_v3.AdminSaveTModelWrapper;
+import org.apache.juddi.api_v3.ClerkDetail;
+import org.apache.juddi.api_v3.ClerkList;
+import org.apache.juddi.api_v3.ClientSubscriptionInfoDetail;
+import org.apache.juddi.api_v3.DeleteClerk;
+import org.apache.juddi.api_v3.DeleteClientSubscriptionInfo;
+import org.apache.juddi.api_v3.DeleteNode;
+import org.apache.juddi.api_v3.DeletePublisher;
+import org.apache.juddi.api_v3.GetAllPublisherDetail;
+import org.apache.juddi.api_v3.GetPublisherDetail;
+import org.apache.juddi.api_v3.NodeDetail;
+import org.apache.juddi.api_v3.NodeList;
+import org.apache.juddi.api_v3.PublisherDetail;
+import org.apache.juddi.api_v3.SaveClerk;
+import org.apache.juddi.api_v3.SaveClientSubscriptionInfo;
+import org.apache.juddi.api_v3.SaveNode;
+import org.apache.juddi.api_v3.SavePublisher;
+import org.apache.juddi.api_v3.SubscriptionWrapper;
+import org.apache.juddi.api_v3.SyncSubscription;
+import org.apache.juddi.api_v3.SyncSubscriptionDetail;
+import org.apache.juddi.v3_service.JUDDIApiPortType;
+import org.uddi.api_v3.Contact;
+import org.uddi.api_v3.DeleteTModel;
+import org.uddi.api_v3.DispositionReport;
+import org.uddi.api_v3.PersonName;
+import org.uddi.repl_v3.CommunicationGraph;
+import org.uddi.repl_v3.ReplicationConfiguration;
+import org.uddi.sub_v3.Subscription;
+import org.uddi.v3_service.DispositionReportFaultMessage;
+
+/**
+ *
+ * @author alex
+ */
+
+@WebService(serviceName = "JUDDIApiService",
+ endpointInterface = "org.apache.juddi.v3_service.JUDDIApiPortType",
+ targetNamespace = "urn:juddi-apache-org:v3_service")
+public class juddiTestimpl implements JUDDIApiPortType {
+
+
+ @Override
+ public PublisherDetail getPublisherDetail(GetPublisherDetail parameters) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ return null;
+ }
+
+ @Override
+ public void deleteClientSubscriptionInfo(DeleteClientSubscriptionInfo body) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ }
+
+ @Override
+ public PublisherDetail getAllPublisherDetail(GetAllPublisherDetail body) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ return null;
+ }
+
+ @Override
+ public ClerkDetail saveClerk(SaveClerk body) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ return null;
+ }
+
+ @Override
+ public void deletePublisher(DeletePublisher body) throws DispositionReportFaultMessage, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ }
+
+ @Override
+ public NodeDetail saveNode(SaveNode body) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ return null;
+ }
+
+ @Override
+ public PublisherDetail savePublisher(SavePublisher body) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ return null;
+ }
+
+ @Override
+ public void adminDeleteTModel(DeleteTModel body) throws DispositionReportFaultMessage, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ }
+
+ @Override
+ public ClientSubscriptionInfoDetail saveClientSubscriptionInfo(SaveClientSubscriptionInfo body) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ return null;
+ }
+
+ @Override
+ public SyncSubscriptionDetail invokeSyncSubscription(SyncSubscription syncSubscription) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ return null;
+ }
+
+ @Override
+ public NodeList getAllNodes(String authInfo) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ return null;
+ }
+
+ @Override
+ public ClerkList getAllClerks(String authInfo) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ return null;
+ }
+
+ @Override
+ public void deleteNode(DeleteNode body) throws DispositionReportFaultMessage, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ }
+
+ @Override
+ public void deleteClerk(DeleteClerk request) throws DispositionReportFaultMessage, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ }
+
+ @Override
+ public DispositionReport adminSaveBusiness(String authInfo, List<AdminSaveBusinessWrapper> values) throws DispositionReportFaultMessage, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ }
+
+ @Override
+ public DispositionReport adminSaveTModel(String authInfo, List<AdminSaveTModelWrapper> values) throws DispositionReportFaultMessage, RemoteException {
+ throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
+ }
+
+ @Override
+ public ReplicationConfiguration getReplicationNodes(String authInfo) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ ReplicationConfiguration replicationConfiguration = new ReplicationConfiguration();
+ replicationConfiguration.setCommunicationGraph(new CommunicationGraph());
+ replicationConfiguration.setRegistryContact(new ReplicationConfiguration.RegistryContact());
+ replicationConfiguration.getRegistryContact().setContact(new Contact());
+ replicationConfiguration.getRegistryContact().getContact().getPersonName().add(new PersonName("name", null));
+
+
+ return replicationConfiguration;
+ }
+
+ @Override
+ public DispositionReport setReplicationNodes(String authInfo, ReplicationConfiguration replicationConfiguration) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ return null;
+ }
+
+ @Override
+ public List<SubscriptionWrapper> getAllClientSubscriptionInfo(String authInfo) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ return null;
+ }
+
+ @Override
+ public void adminDeleteSubscription(String authInfo, List<String> subscriptionKey) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ }
+
+ @Override
+ public void adminSaveSubscription(String authInfo, String publisherOrUsername, Holder<List<Subscription>> subscriptions) throws DispositionReportFaultMessage {
+ CLIServerTest.sink = true;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/juddi-core/src/test/java/org/apache/juddi/api/runtime/replicantImpl.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/java/org/apache/juddi/api/runtime/replicantImpl.java b/juddi-core/src/test/java/org/apache/juddi/api/runtime/replicantImpl.java
new file mode 100644
index 0000000..f984747
--- /dev/null
+++ b/juddi-core/src/test/java/org/apache/juddi/api/runtime/replicantImpl.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2014 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.juddi.api.runtime;
+
+import java.math.BigInteger;
+import java.rmi.RemoteException;
+import java.util.List;
+import javax.jws.WebService;
+import org.uddi.repl_v3.ChangeRecord;
+import org.uddi.repl_v3.ChangeRecordIDType;
+import org.uddi.repl_v3.DoPing;
+import org.uddi.repl_v3.HighWaterMarkVectorType;
+import org.uddi.repl_v3.NotifyChangeRecordsAvailable;
+import org.uddi.repl_v3.TransferCustody;
+import org.uddi.v3_service.DispositionReportFaultMessage;
+import org.uddi.v3_service.UDDIReplicationPortType;
+
+/**
+ *
+ * @author alex
+ */
+@WebService(serviceName = "UDDI_Replication_PortType", targetNamespace = "urn:uddi-org:repl_v3_portType",
+ endpointInterface = "org.uddi.v3_service.UDDIReplicationPortType")
+ public class replicantImpl implements UDDIReplicationPortType {
+
+ public replicantImpl(){
+ }
+
+ @Override
+ public List<ChangeRecord> getChangeRecords(String requestingNode, HighWaterMarkVectorType changesAlreadySeen, BigInteger responseLimitCount, HighWaterMarkVectorType responseLimitVector) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ return null;
+ }
+
+ @Override
+ public void notifyChangeRecordsAvailable(NotifyChangeRecordsAvailable body) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ }
+
+ @Override
+ public String doPing(DoPing body) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ return null;
+ }
+
+ @Override
+ public List<ChangeRecordIDType> getHighWaterMarks() throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ return null;
+ }
+
+ @Override
+ public void transferCustody(TransferCustody body) throws DispositionReportFaultMessage, RemoteException {
+ CLIServerTest.sink = true;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/juddi-core/src/test/java/org/apache/juddi/replication/ReplicationNotifierTest.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/java/org/apache/juddi/replication/ReplicationNotifierTest.java b/juddi-core/src/test/java/org/apache/juddi/replication/ReplicationNotifierTest.java
index 0931f76..a348134 100644
--- a/juddi-core/src/test/java/org/apache/juddi/replication/ReplicationNotifierTest.java
+++ b/juddi-core/src/test/java/org/apache/juddi/replication/ReplicationNotifierTest.java
@@ -22,14 +22,9 @@ import org.apache.commons.logging.LogFactory;
import org.apache.juddi.Registry;
import org.apache.juddi.api.impl.API_141_JIRATest;
import org.apache.juddi.api.impl.UDDIReplicationImpl;
-import org.apache.juddi.model.ChangeRecord;
import org.junit.AfterClass;
import org.junit.Test;
-import static org.junit.Assert.*;
import org.junit.BeforeClass;
-import org.uddi.api_v3.BusinessEntity;
-import org.uddi.api_v3.Name;
-import org.uddi.api_v3.SaveBusiness;
import org.uddi.v3_service.UDDIReplicationPortType;
/**
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/juddi-core/src/test/resources/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/resources/META-INF/persistence.xml b/juddi-core/src/test/resources/META-INF/persistence.xml
index adc4a7e..105b67d 100644
--- a/juddi-core/src/test/resources/META-INF/persistence.xml
+++ b/juddi-core/src/test/resources/META-INF/persistence.xml
@@ -73,6 +73,9 @@
<class>org.apache.juddi.model.ReplicationConfiguration</class>
<class>org.apache.juddi.model.Edge</class>
<class>org.apache.juddi.model.ControlMessage</class>
+ <class>org.apache.juddi.model.ReplicationConfigurationNode</class>
+ <class>org.apache.juddi.model.EdgeReceiverAlternate</class>
+
<properties>
<property name="hibernate.archive.autodetection" value="class"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/juddi-core/src/test/resources/META-INF/uddi.xml
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/resources/META-INF/uddi.xml b/juddi-core/src/test/resources/META-INF/uddi.xml
index 633da90..f2e993a 100644
--- a/juddi-core/src/test/resources/META-INF/uddi.xml
+++ b/juddi-core/src/test/resources/META-INF/uddi.xml
@@ -27,6 +27,30 @@
<subscriptionListenerUrl>org.apache.juddi.api.impl.UDDISubscriptionListenerImpl</subscriptionListenerUrl>
<juddiApiUrl>org.apache.juddi.api.impl.JUDDIApiImpl</juddiApiUrl>
</node>
+ <node>
+ <!-- required 'default' node -->
+ <name>jaxws</name>
+ <description>e</description>
+ <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" />
+ <property name="basicAuthPasswordIsEncrypted" value="false" />
+ <property name="basicAuthPasswordCryptoProvider" value="org.apache.juddi.v3.client.crypto.AES128Cryptor (an example)" />-->
+ </properties>
+ <!-- In VM Transport Settings -->
+ <proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport�</proxyTransport>
+ <custodyTransferUrl>org.apache.juddi.api.impl.UDDICustodyTransferImpl</custodyTransferUrl>
+ <inquiryUrl>org.apache.juddi.api.impl.UDDIInquiryImpl</inquiryUrl>
+ <inquiryRESTUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiryRest</inquiryRESTUrl>
+ <publishUrl>org.apache.juddi.api.impl.UDDIPublicationImpl</publishUrl>
+ <securityUrl>org.apache.juddi.api.impl.UDDISecurityImpl</securityUrl>
+ <subscriptionUrl>org.apache.juddi.api.impl.UDDISubscriptionImpl</subscriptionUrl>
+ <subscriptionListenerUrl>org.apache.juddi.api.impl.UDDISubscriptionListenerImpl</subscriptionListenerUrl>
+ <juddiApiUrl>org.apache.juddi.api.impl.JUDDIApiImpl</juddiApiUrl>
+ </node>
</nodes>
<clerks registerOnStartup="false">
<clerk name="joe" node="default" publisher="joepublisher" password="joepublisher" isPasswordEncrypted="false" cryptoProvider="">
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/juddi-examples/hello-world-embedded/src/main/resources/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/juddi-examples/hello-world-embedded/src/main/resources/META-INF/persistence.xml b/juddi-examples/hello-world-embedded/src/main/resources/META-INF/persistence.xml
index aa08feb..225f6b2 100644
--- a/juddi-examples/hello-world-embedded/src/main/resources/META-INF/persistence.xml
+++ b/juddi-examples/hello-world-embedded/src/main/resources/META-INF/persistence.xml
@@ -78,7 +78,8 @@
<class>org.apache.juddi.model.ReplicationConfiguration</class>
<class>org.apache.juddi.model.Edge</class>
<class>org.apache.juddi.model.ControlMessage</class>
- <class>org.apache.juddi.model.ReplicationMessage</class>
+ <class>org.apache.juddi.model.ReplicationConfigurationNode</class>
+ <class>org.apache.juddi.model.EdgeReceiverAlternate</class>
<properties>
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoint.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoint.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoint.java
index 2f9f032..3d0dacd 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoint.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoint.java
@@ -17,6 +17,7 @@ package org.apache.juddi.samples;
import java.util.List;
import org.apache.juddi.api_v3.Node;
+import static org.apache.juddi.samples.JuddiAdminService.clerkManager;
import org.apache.juddi.v3.client.config.UDDIClient;
import org.apache.juddi.v3.client.config.UDDINode;
import org.apache.juddi.v3.client.transport.Transport;
@@ -73,6 +74,7 @@ public class EntryPoint {
System.out.println("35) View all registered nodes for this client");
System.out.println("36) UnRegister a node on a jUDDI server");
System.out.println("37) Fetch the replication config from a jUDDI server");
+ System.out.println("38) Set the replication config on a remote jUDDI server");
System.out.println("q) quit");
System.out.print("Selection: ");
@@ -93,7 +95,17 @@ public class EntryPoint {
if (input.equals("1")) {
UDDISecurityPortType security = null;
UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
- Transport transport = clerkManager.getTransport();
+ List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
+ System.out.println();
+ System.out.println("Select a node (from *this config)");
+ for (int i = 0; i < uddiNodeList.size(); i++) {
+ System.out.print(i + 1);
+ System.out.println(") " + uddiNodeList.get(i).getName() + uddiNodeList.get(i).getDescription());
+ }
+ System.out.println("Node #: ");
+ int index = Integer.parseInt(System.console().readLine()) - 1;
+ String node = uddiNodeList.get(index).getName();
+ Transport transport = clerkManager.getTransport(node);
security = transport.getUDDISecurityService();
System.out.print("username: ");
String uname = System.console().readLine();
@@ -297,8 +309,11 @@ public class EntryPoint {
System.out.print("Change ID to fetch: ");
String id = (System.console().readLine());
+
+ System.out.print("Node id of something in the replication graph: ");
+ String src = (System.console().readLine());
- new UddiReplication().GetChangeRecords(key2, Long.parseLong(id));
+ new UddiReplication().GetChangeRecords(key2, Long.parseLong(id),src);
}
if (input.equals("30")) {
@@ -316,6 +331,7 @@ public class EntryPoint {
UDDINode node = new UDDINode();
System.out.print("Name (must be unique: ");
node.setClientName(System.console().readLine());
+ node.setName(node.getClientName());
System.out.print("Description: ");
node.setDescription(System.console().readLine());
@@ -338,9 +354,13 @@ public class EntryPoint {
node.setSecurityUrl(System.console().readLine());
System.out.print("Subscription URL: ");
node.setSubscriptionUrl(System.console().readLine());
+
+ System.out.print("Subscription Listener URL: ");
+ node.setSubscriptionListenerUrl(System.console().readLine());
+
System.out.print("Transport (defaults to JAXWS): ");
node.setProxyTransport(System.console().readLine());
- if (node.getProxyTransport() == null) {
+ if (node.getProxyTransport() == null || node.getProxyTransport().trim().equalsIgnoreCase("")) {
node.setProxyTransport(org.apache.juddi.v3.client.transport.JAXWSTransport.class.getCanonicalName());
}
System.out.print("Factory Initial (optional): ");
@@ -354,38 +374,37 @@ public class EntryPoint {
clerkManager.getClientConfig().saveConfig();
System.out.println("Saved.");
}
- if (input.equals("32")) {
+ if (input.equals("33")) {
//System.out.println("32) Register a *this node to a jUDDI server");
UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
System.out.println();
-
+
System.out.println("Locally defined nodes:");
for (int i = 0; i < uddiNodeList.size(); i++) {
System.out.println("________________________________________________________________________________");
- System.out.println(i + ") Node name: " + uddiNodeList.get(i).getName());
- System.out.println(i + ") Node description: " + uddiNodeList.get(i).getDescription());
- System.out.println(i + ") Transport: " + uddiNodeList.get(i).getProxyTransport());
- System.out.println(i + ") jUDDI URL: " + uddiNodeList.get(i).getJuddiApiUrl());
+ System.out.println((i + 1) + ") Node name: " + uddiNodeList.get(i).getName());
+ System.out.println((i + 1) + ") Node description: " + uddiNodeList.get(i).getDescription());
+ System.out.println((i + 1) + ") Transport: " + uddiNodeList.get(i).getProxyTransport());
+ System.out.println((i + 1) + ") jUDDI URL: " + uddiNodeList.get(i).getJuddiApiUrl());
}
- System.out.println("Local Node to publish to remote jUDDI instance: ");
- int index=Integer.parseInt(System.console().readLine());
-
- System.out.println("Pick a node (remote jUDDI instance) to publish the selected node information to");
+ System.out.println("Local Source Node: ");
+ int index = Integer.parseInt(System.console().readLine()) - 1;
+
+ System.out.println("Remote Destination(s):");
for (int i = 0; i < uddiNodeList.size(); i++) {
System.out.println("________________________________________________________________________________");
- System.out.println(i + ") Node name: " + uddiNodeList.get(i).getName());
- System.out.println(i + ") Node description: " + uddiNodeList.get(i).getDescription());
- System.out.println(i + ") Transport: " + uddiNodeList.get(i).getProxyTransport());
- System.out.println(i + ") jUDDI URL: " + uddiNodeList.get(i).getJuddiApiUrl());
+ System.out.println((i + 1) + ") Node name: " + uddiNodeList.get(i).getName());
+ System.out.println((i + 1) + ") Node description: " + uddiNodeList.get(i).getDescription());
+ System.out.println((i + 1) + ") Transport: " + uddiNodeList.get(i).getProxyTransport());
+ System.out.println((i + 1) + ") jUDDI URL: " + uddiNodeList.get(i).getJuddiApiUrl());
}
- System.out.println("Node to publish to remote jUDDI instance: ");
- int index2=Integer.parseInt(System.console().readLine());
-
-
- new JuddiAdminService().registerLocalNodeToRemoteNode(authtoken, uddiNodeList.get(index), uddiNodeList.get(index2));
-
+ System.out.println("Remote Destination Node to publish to: ");
+ int index2 = Integer.parseInt(System.console().readLine()) - 1;
+
+ new JuddiAdminService().registerLocalNodeToRemoteNode(authtoken, uddiNodeList.get(index), uddiNodeList.get(index2));
+
}
if (input.equals("34")) {
@@ -412,9 +431,31 @@ public class EntryPoint {
new JuddiAdminService().viewRemoveRemoteNode(authtoken);
//System.out.println("35) UnRegister a node on a jUDDI server");
}
- if (input.equals("37")){
+ if (input.equals("37")) {
new JuddiAdminService().viewReplicationConfig(authtoken);
}
+ if (input.equals("38")) {
+ new JuddiAdminService().setReplicationConfig(authtoken);
+ }
+ if (input.equals("magic")) {
+ //secret menu, setups up replication between juddi8080 and 9080 and adds a record or two on 8080
+ UDDISecurityPortType security = null;
+ UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
+
+ Transport transport = clerkManager.getTransport("default");
+ security = transport.getUDDISecurityService();
+
+ String uname = "root";
+
+ GetAuthToken getAuthTokenRoot = new GetAuthToken();
+ getAuthTokenRoot.setUserID(uname);
+ getAuthTokenRoot.setCred("root");
+ authtoken = security.getAuthToken(getAuthTokenRoot).getAuthInfo();
+ System.out.println("Success!");
+ new JuddiAdminService().autoMagic();
+
+ new UddiCreatebulk().publishBusiness(authtoken, 1, 1);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/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 f87c637..9cf086f 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,6 +15,7 @@
*/
package org.apache.juddi.samples;
+import java.math.BigInteger;
import java.rmi.RemoteException;
import java.util.List;
import javax.xml.bind.JAXB;
@@ -33,9 +34,16 @@ import org.apache.juddi.v3.client.transport.Transport;
import org.apache.juddi.v3.client.transport.TransportException;
import org.apache.juddi.v3_service.JUDDIApiPortType;
import org.uddi.api_v3.AuthToken;
+import org.uddi.api_v3.Contact;
+import org.uddi.api_v3.Description;
import org.uddi.api_v3.DispositionReport;
+import org.uddi.api_v3.Email;
import org.uddi.api_v3.GetAuthToken;
+import org.uddi.api_v3.PersonName;
+import org.uddi.api_v3.Phone;
import org.uddi.repl_v3.CommunicationGraph;
+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.UDDISecurityPortType;
@@ -157,6 +165,16 @@ public class JuddiAdminService {
Transport transport = clerkManager.getTransport(publishTo.getName());
+ UDDISecurityPortType security2 = transport.getUDDISecurityService();
+ System.out.print("username: ");
+ String uname = System.console().readLine();
+ char passwordArray[] = System.console().readPassword("password: ");
+ GetAuthToken getAuthTokenRoot = new GetAuthToken();
+ getAuthTokenRoot.setUserID(uname);
+ getAuthTokenRoot.setCred(new String(passwordArray));
+ authtoken = security2.getAuthToken(getAuthTokenRoot).getAuthInfo();
+ System.out.println("Success!");
+
JUDDIApiPortType juddiApiService = transport.getJUDDIApiService();
SaveNode sn = new SaveNode();
sn.setAuthInfo(authtoken);
@@ -202,9 +220,17 @@ public class JuddiAdminService {
Transport transport = clerkManager.getTransport(node);
JUDDIApiPortType juddiApiService = transport.getJUDDIApiService();
+ System.out.println("fetching...");
+ //NodeList allNodes = juddiApiService.getAllNodes(authtoken);
+ ReplicationConfiguration replicationNodes = null;
+ try {
+ replicationNodes = juddiApiService.getReplicationNodes(authtoken);
+ } catch (Exception ex) {
+ System.out.println("Error getting replication config");
+ ex.printStackTrace();
+ replicationNodes = new ReplicationConfiguration();
- ReplicationConfiguration replicationNodes = juddiApiService.getReplicationNodes(authtoken);
-
+ }
String input = "";
while (!"d".equalsIgnoreCase(input) && !"q".equalsIgnoreCase(input)) {
System.out.println("Current Config:");
@@ -216,11 +242,33 @@ public class JuddiAdminService {
System.out.println("5) Set Registry Contact");
System.out.println("6) Add Operator info");
System.out.println("7) Remove Operator info");
+ System.out.println("d) Done, save changes");
+ System.out.println("q) Quit and abandon changes");
+
input = System.console().readLine();
if (input.equalsIgnoreCase("1")) {
menu_RemoveReplicationNode(replicationNodes);
} else if (input.equalsIgnoreCase("2")) {
menu_AddReplicationNode(replicationNodes, juddiApiService, authtoken);
+ } else if (input.equalsIgnoreCase("d")) {
+ if (replicationNodes.getCommunicationGraph() == null) {
+ replicationNodes.setCommunicationGraph(new CommunicationGraph());
+ }
+ if (replicationNodes.getRegistryContact() == null) {
+ replicationNodes.setRegistryContact(new ReplicationConfiguration.RegistryContact());
+ }
+ if (replicationNodes.getRegistryContact().getContact() == null) {
+ replicationNodes.getRegistryContact().setContact(new Contact());
+ replicationNodes.getRegistryContact().getContact().getPersonName().add(new PersonName("unknown", null));
+ }
+
+ replicationNodes.setSerialNumber(0L);
+ replicationNodes.setTimeOfConfigurationUpdate("");
+ replicationNodes.setMaximumTimeToGetChanges(BigInteger.ONE);
+ replicationNodes.setMaximumTimeToSyncRegistry(BigInteger.ONE);
+
+ JAXB.marshal(replicationNodes, System.out);
+ juddiApiService.setReplicationNodes(authtoken, replicationNodes);
}
}
@@ -286,19 +334,184 @@ public class JuddiAdminService {
private void menu_AddReplicationNode(ReplicationConfiguration replicationNodes, JUDDIApiPortType juddiApiService, String authtoken) throws Exception {
- NodeList allNodes = juddiApiService.getAllNodes(authtoken);
- if (allNodes == null || allNodes.getNode().isEmpty()) {
- System.out.println("No nodes registered!");
- } else {
- for (int i = 0; i < allNodes.getNode().size(); i++) {
- System.out.println((i + 1) + ") Name :" + allNodes.getNode().get(i).getName());
- System.out.println((i + 1) + ") Replication :" + allNodes.getNode().get(i).getReplicationUrl());
+ if (replicationNodes.getCommunicationGraph() == null) {
+ replicationNodes.setCommunicationGraph(new CommunicationGraph());
+ }
+
+ Operator op = new Operator();
+ System.out.println("The Operator Node id should be the UDDI Node ID of the new node to replicate with. It should also match the root business key in"
+ + " the new registry.");
+ System.out.print("Operator Node id: ");
+ op.setOperatorNodeID(System.console().readLine().trim());
+
+ System.out.print("Replication URL: ");
+ op.setSoapReplicationURL(System.console().readLine().trim());
+ op.setOperatorStatus(OperatorStatusType.NEW);
+ System.out.println("The replication node requires at least one point of contact");
+ System.out.print("Number of contacts: ");
+ int index = Integer.parseInt(System.console().readLine());
+ for (int i = 0; i < index; i++) {
+ System.out.println("_______________________");
+ System.out.println("Info for contact # " + (i + 1));
+ op.getContact().add(getContactInfo());
+ }
+ System.out.println("_______________________");
+ System.out.println("Current Operator:");
+ System.out.println("_______________________");
+ JAXB.marshal(op, System.out);
+
+ System.out.print("Confirm adding? (y/n) :");
+ if (System.console().readLine().trim().equalsIgnoreCase("y")) {
+ replicationNodes.getOperator().add(op);
+ replicationNodes.getCommunicationGraph().getNode().add(op.getOperatorNodeID());
+
+ }
+ }
+ private Contact getContactInfo() {
+ Contact c = new Contact();
+ System.out.print("Use Type (i.e. primary): ");
+ c.setUseType(System.console().readLine().trim());
+ if (c.getUseType().trim().equalsIgnoreCase("")) {
+ c.setUseType("primary");
+ }
+
+ c.getPersonName().add(getPersonName());
+
+ while (true) {
+ System.out.println("Thus far:");
+ JAXB.marshal(c, System.out);
+ System.out.println("Options:");
+ System.out.println("\t1) Add PersonName");
+ System.out.println("\t2) Add Email address");
+ System.out.println("\t3) Add Phone number");
+ System.out.println("\t4) Add Description");
+ System.out.println("\t<enter> Finish and return");
+
+ System.out.print("> ");
+ String input = System.console().readLine();
+ if (input.trim().equalsIgnoreCase("")) {
+ break;
+ } else if (input.trim().equalsIgnoreCase("1")) {
+ c.getPersonName().add(getPersonName());
+ } else if (input.trim().equalsIgnoreCase("2")) {
+ c.getEmail().add(getEmail());
+ } else if (input.trim().equalsIgnoreCase("3")) {
+ c.getPhone().add(getPhoneNumber());
+ } else if (input.trim().equalsIgnoreCase("4")) {
+ c.getDescription().add(getDescription());
}
- System.out.println("Node #: ");
- int index = Integer.parseInt(System.console().readLine()) - 1;
- replicationNodes.getCommunicationGraph().getNode().add(allNodes.getNode().get(index).getName());
}
+ return c;
+ }
+
+ private PersonName getPersonName() {
+ PersonName pn = new PersonName();
+ System.out.print("Name: ");
+ pn.setValue(System.console().readLine().trim());
+ System.out.print("Language (en): ");
+ pn.setLang(System.console().readLine().trim());
+ if (pn.getLang().equalsIgnoreCase("")) {
+ pn.setLang("en");
+ }
+
+ return pn;
+ }
+
+ private Email getEmail() {
+ Email pn = new Email();
+ System.out.print("Email address Value: ");
+
+ pn.setValue(System.console().readLine().trim());
+ System.out.print("Use type (i.e. primary): ");
+ pn.setUseType(System.console().readLine().trim());
+ return pn;
+ }
+
+ private Phone getPhoneNumber() {
+
+ Phone pn = new Phone();
+ System.out.print("Phone Value: ");
+
+ pn.setValue(System.console().readLine().trim());
+ System.out.print("Use type (i.e. primary): ");
+ pn.setUseType(System.console().readLine().trim());
+ return pn;
+ }
+
+ private Description getDescription() {
+ Description pn = new Description();
+ System.out.print("Value: ");
+
+ pn.setValue(System.console().readLine().trim());
+ System.out.print("Language (en): ");
+ pn.setLang(System.console().readLine().trim());
+ if (pn.getLang().equalsIgnoreCase("")) {
+ pn.setLang("en");
+ }
+ return pn;
+ }
+
+ void autoMagic() 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().add(op);
+
+ op = new Operator();
+ op.setOperatorNodeID("uddi:another.juddi.apache.org:node2");
+ op.setSoapReplicationURL("http://localhost:9080/juddiv3/services/replication");
+ op.setOperatorStatus(OperatorStatusType.NORMAL);
+ op.getContact().add(new Contact());
+ op.getContact().get(0).getPersonName().add(new PersonName("mary", "en"));
+ op.getContact().get(0).setUseType("admin");
+ replicationNodes.getOperator().add(op);
+ replicationNodes.getCommunicationGraph().getNode().add("uddi:another.juddi.apache.org:node2");
+ replicationNodes.getCommunicationGraph().getNode().add("uddi:juddi.apache.org:node1");
+ replicationNodes.setSerialNumber(0L);
+ replicationNodes.setTimeOfConfigurationUpdate("");
+ replicationNodes.setMaximumTimeToGetChanges(BigInteger.ONE);
+ replicationNodes.setMaximumTimeToSyncRegistry(BigInteger.ONE);
+
+ if (replicationNodes.getRegistryContact().getContact() == null) {
+ replicationNodes.getRegistryContact().setContact(new Contact());
+ replicationNodes.getRegistryContact().getContact().getPersonName().add(new PersonName("unknown", null));
+ }
+
+ JAXB.marshal(replicationNodes, System.out);
+ juddiApiService.setReplicationNodes(authtoken, replicationNodes);
+
+ transport = clerkManager.getTransport("uddi:another.juddi.apache.org:node2");
+ authtoken = transport.getUDDISecurityService().getAuthToken(new GetAuthToken("root", "root")).getAuthInfo();
+
+ juddiApiService = transport.getJUDDIApiService();
+ juddiApiService.setReplicationNodes(authtoken, replicationNodes);
+
}
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiReplication.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiReplication.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiReplication.java
index 4878202..2e62348 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiReplication.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiReplication.java
@@ -67,7 +67,7 @@ class UddiReplication {
}
}
- void GetChangeRecords(String key2, Long record) {
+ void GetChangeRecords(String key2, Long record, String sourcenode) {
try {
UDDIReplicationPortType uddiReplicationPort = new UDDIService().getUDDIReplicationPort();
HighWaterMarkVectorType highWaterMarkVectorType = new HighWaterMarkVectorType();
@@ -75,7 +75,7 @@ class UddiReplication {
highWaterMarkVectorType.getHighWaterMark().add(new ChangeRecordIDType(DoPing(key2), record));
((BindingProvider) uddiReplicationPort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, key2);
- List<ChangeRecord> changeRecords = uddiReplicationPort.getChangeRecords("random", null, BigInteger.valueOf(100), highWaterMarkVectorType);
+ List<ChangeRecord> changeRecords = uddiReplicationPort.getChangeRecords(sourcenode, highWaterMarkVectorType, BigInteger.valueOf(100), null);
System.out.println("Success...." + changeRecords.size() + " records returned");
System.out.println("Node, USN, type");
for (int i = 0; i < changeRecords.size(); i++) {
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/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 1f8be39..c78a3d0 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
@@ -4,7 +4,7 @@
<reloadDelay>5000</reloadDelay>
<client name="example-client">
<nodes>
- <node>
+ <node isHomeJUDDI="true">
<!-- required 'default' node -->
<name>default</name>
<properties>
@@ -28,6 +28,31 @@
<subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener</subscriptionListenerUrl>
<juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api</juddiApiUrl>
</node>
+ <node>
+ <!-- required 'default' node -->
+ <name>uddi:another.juddi.apache.org:node2</name>
+ <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" />
+ <property name="basicAuthPasswordIsEncrypted" value="false" />
+ <property name="basicAuthPasswordCryptoProvider" value="org.apache.juddi.v3.client.crypto.AES128Cryptor (an example)" />-->
+ </properties>
+ <description>juddi node on 9080</description>
+ <!-- JAX-WS Transport -->
+ <proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport</proxyTransport>
+ <custodyTransferUrl>http://${serverName}:${serverPort}/juddiv3/services/custody-transfer</custodyTransferUrl>
+ <inquiryUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiry</inquiryUrl>
+ <inquiryRESTUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiryRest</inquiryRESTUrl>
+ <publishUrl>http://${serverName}:${serverPort}/juddiv3/services/publish</publishUrl>
+ <securityUrl>http://${serverName}:${serverPort}/juddiv3/services/security</securityUrl>
+ <subscriptionUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription</subscriptionUrl>
+ <subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener</subscriptionListenerUrl>
+ <juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api</juddiApiUrl>
+ <replicationUrl>http://${serverName}:${serverPort}/juddiv3/services/replication</replicationUrl>
+ </node>
</nodes>
<clerks registerOnStartup="false">
<clerk name="default" node="default" publisher="uddi" password="uddi" isPasswordEncrypted="false" cryptoProvider=""/>
http://git-wip-us.apache.org/repos/asf/juddi/blob/22a846dd/juddi-rest-cxf/src/test/resources/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/juddi-rest-cxf/src/test/resources/META-INF/persistence.xml b/juddi-rest-cxf/src/test/resources/META-INF/persistence.xml
index afb2de7..36f93b9 100644
--- a/juddi-rest-cxf/src/test/resources/META-INF/persistence.xml
+++ b/juddi-rest-cxf/src/test/resources/META-INF/persistence.xml
@@ -78,7 +78,8 @@
<class>org.apache.juddi.model.ReplicationConfiguration</class>
<class>org.apache.juddi.model.Edge</class>
<class>org.apache.juddi.model.ControlMessage</class>
- <class>org.apache.juddi.model.ReplicationMessage</class>
+ <class>org.apache.juddi.model.ReplicationConfigurationNode</class>
+ <class>org.apache.juddi.model.EdgeReceiverAlternate</class>
<properties>
<property name="hibernate.archive.autodetection" value="class"/>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org