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:48 UTC
[27/28] juddi git commit: JUDDI-896 resolved a number of typos and
formatting issues JUDDI-241 business, service,
binding templates and models now replicate
JUDDI-896 resolved a number of typos and formatting issues
JUDDI-241 business, service, binding templates and models now replicate
Project: http://git-wip-us.apache.org/repos/asf/juddi/repo
Commit: http://git-wip-us.apache.org/repos/asf/juddi/commit/9d22690e
Tree: http://git-wip-us.apache.org/repos/asf/juddi/tree/9d22690e
Diff: http://git-wip-us.apache.org/repos/asf/juddi/diff/9d22690e
Branch: refs/heads/master
Commit: 9d22690eee0aae19f98191c00a00833bf6a28f5c
Parents: 962f8d8
Author: Alex <al...@apache.org>
Authored: Mon Dec 8 19:43:11 2014 -0500
Committer: Alex <al...@apache.org>
Committed: Mon Dec 8 19:43:11 2014 -0500
----------------------------------------------------------------------
.../juddi/api/impl/AuthenticatedService.java | 5 +-
.../org/apache/juddi/api/impl/JUDDIApiImpl.java | 33 +-
.../juddi/api/impl/UDDIReplicationImpl.java | 182 +-
.../juddi/validation/ValidatePublish.java | 112 +-
.../juddi/validation/ValidateReplication.java | 6 +-
.../src/main/resources/messages.properties | 1 +
.../juddi/api/impl/API_160_ReplicationTest.java | 9 +-
.../org/apache/juddi/samples/EntryPoint.java | 17 +-
.../apache/juddi/samples/UddiCreatebulk.java | 6 +-
.../juddi/webconsole/resources/web.properties | 2 +-
juddi-gui/src/main/webapp/bindingEditor.jsp | 4 +-
juddi-gui/src/main/webapp/js/businessEditor.js | 22 +-
juddi-gui/src/main/webapp/serviceEditor.jsp | 2 +-
juddi-tomcat/build.xml | 6 +-
.../juddi_install_data_node2/UDDI_Publisher.xml | 22 +
.../juddi_install_data_node2/UDDI_tModels.xml | 2362 ++++++++++++++++++
.../root_BusinessEntity.xml | 2 +-
.../repl_v3/NotifyChangeRecordsAvailable.java | 5 +
18 files changed, 2663 insertions(+), 135 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/juddi/blob/9d22690e/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
index 767cbee..fb0e00e 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
@@ -49,7 +49,10 @@ public abstract class AuthenticatedService {
public static final int AUTHTOKEN_ACTIVE = 1;
public static final int AUTHTOKEN_RETIRED = 0;
static final Log logger = LogFactory.getLog(AuthenticatedService.class);
- protected String node = "UNDEFINED_NODE_NAME";
+ /**
+ * the node id of this server instance, as loaded from the config file
+ */
+ protected static String node = "UNDEFINED_NODE_NAME";
protected String baseUrlSSL="UNDEFINED";
protected String baseUrl="UNDEFINED";
http://git-wip-us.apache.org/repos/asf/juddi/blob/9d22690e/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
index dd201fe..1b6b019 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
@@ -125,7 +125,7 @@ import org.uddi.v3_service.UDDISubscriptionPortType;
*/
@WebService(serviceName = "JUDDIApiService",
endpointInterface = "org.apache.juddi.v3_service.JUDDIApiPortType",
- targetNamespace = "urn:juddi-apache-org:v3_service", wsdlLocation = "classpath:/juddi_api_v1.wsdl")
+ targetNamespace = "urn:juddi-apache-org:v3_service", wsdlLocation = "classpath:/juddi_api_v1.wsdl")
public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortType {
private Log log = LogFactory.getLog(this.getClass());
@@ -1276,6 +1276,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
try {
tx.begin();
+ org.uddi.repl_v3.ReplicationConfiguration oldConfig = null;
UddiEntityPublisher publisher = this.getEntityPublisher(em, authInfo);
if (!((Publisher) publisher).isAdmin()) {
throw new UserMismatchException(new ErrorMessage("errors.AdminReqd"));
@@ -1289,9 +1290,9 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddkkmmZ");
if (model == null) {
- //this is a brand new configuration
+ //this is a brand new configuration and we didn't have one before
model = new ReplicationConfiguration();
- MappingApiToModel.mapReplicationConfiguration(replicationConfiguration, model,em);
+ MappingApiToModel.mapReplicationConfiguration(replicationConfiguration, model, em);
model.setSerialNumber(System.currentTimeMillis());
model.setTimeOfConfigurationUpdate(sdf.format(new Date()));
em.persist(model);
@@ -1305,17 +1306,20 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
//spec doesn't appear to mention if recording a change history on the config is required
//assuming not.
//em.remove(model);
- model = new ReplicationConfiguration();
- MappingApiToModel.mapReplicationConfiguration(replicationConfiguration, model, em);
- model.setSerialNumber(System.currentTimeMillis());
+ oldConfig = new org.uddi.repl_v3.ReplicationConfiguration();
+ MappingModelToApi.mapReplicationConfiguration(model, oldConfig);
- model.setTimeOfConfigurationUpdate(sdf.format(new Date()));
- em.merge(model);
+ ReplicationConfiguration model2 = new ReplicationConfiguration();
+ MappingApiToModel.mapReplicationConfiguration(replicationConfiguration, model2, em);
+ model2.setSerialNumber(System.currentTimeMillis());
+
+ model2.setTimeOfConfigurationUpdate(sdf.format(new Date()));
+ em.persist(model2);
}
tx.commit();
- //UDDIReplicationImpl.notifyConfigurationChange(replicationConfiguration);
+ UDDIReplicationImpl.notifyConfigurationChange(oldConfig, replicationConfiguration);
long procTime = System.currentTimeMillis() - startTime;
serviceCounter.update(JUDDIQuery.SET_REPLICATION_NODES,
QueryStatus.SUCCESS, procTime);
@@ -1324,12 +1328,11 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
serviceCounter.update(JUDDIQuery.SET_REPLICATION_NODES,
QueryStatus.FAILED, procTime);
throw drfm;
- } catch (Exception ex){
- logger.error(ex,ex);
+ } catch (Exception ex) {
+ logger.error(ex, ex);
JAXB.marshal(replicationConfiguration, System.out);
throw new FatalErrorException(new ErrorMessage("E_fatalError", ex.getMessage()));
- }
- finally {
+ } finally {
if (tx.isActive()) {
tx.rollback();
}
@@ -1381,11 +1384,11 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
op.setOperatorNodeID(node);
op.setSoapReplicationURL(baseUrlSSL + "/services/replication");
//TODO lookup from the root business
-
+
op.getContact().add(new Contact());
op.getContact().get(0).getPersonName().add(new PersonName("Unknown", null));
op.setOperatorStatus(OperatorStatusType.NORMAL);
-
+
r.getOperator().add(op);
r.getCommunicationGraph().getNode().add(node);
r.getCommunicationGraph().getControlledMessage().add("*");
http://git-wip-us.apache.org/repos/asf/juddi/blob/9d22690e/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java
index 5c3b22c..bb2d17c 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java
@@ -21,10 +21,12 @@ import java.math.BigInteger;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Queue;
+import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ConcurrentLinkedDeque;
@@ -104,6 +106,55 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
static void notifyConfigurationChange(ReplicationConfiguration oldConfig, ReplicationConfiguration newConfig) {
//if the config is different
+ Set<String> oldnodes = getNodes(oldConfig);
+ Set<String> newNodes = getNodes(newConfig);
+
+ Set<String> addedNodes = diffNodeList(oldnodes, newNodes);
+ if (queue == null) {
+ queue = new ConcurrentLinkedDeque<NotifyChangeRecordsAvailable>();
+ }
+ for (String s : addedNodes) {
+ if (!s.equals(node)) {
+ logger.info("This node: " + node + ". New replication node queue for synchronization: " + s);
+ HighWaterMarkVectorType highWaterMarkVectorType = new HighWaterMarkVectorType();
+ highWaterMarkVectorType.getHighWaterMark().add(new ChangeRecordIDType(s, 0L));
+ queue.add(new NotifyChangeRecordsAvailable(s, highWaterMarkVectorType));
+ }
+ }
+
+ }
+
+ private static Set<String> getNodes(ReplicationConfiguration oldConfig) {
+ Set<String> ret = new HashSet<String>();
+ if (oldConfig == null) {
+ return ret;
+ }
+ for (org.uddi.repl_v3.Operator o : oldConfig.getOperator()) {
+ ret.add(o.getOperatorNodeID());
+ }
+ if (oldConfig.getCommunicationGraph() != null) {
+ ret.addAll(oldConfig.getCommunicationGraph().getNode());
+ }
+ return ret;
+ }
+
+ private static Set<String> diffNodeList(Set<String> oldnodes, Set<String> newNodes) {
+ Set<String> diff = new HashSet<String>();
+ Iterator<String> iterator = null;
+ /*oldnodes.iterator();
+ while (iterator.hasNext()){
+ String lhs=iterator.next();
+ if (!newNodes.contains(lhs))
+ diff.add(lhs);
+ }*/
+ iterator = newNodes.iterator();
+ while (iterator.hasNext()) {
+ String lhs = iterator.next();
+ if (!oldnodes.contains(lhs)) {
+ diff.add(lhs);
+ }
+ }
+ return diff;
}
private UDDIServiceCounter serviceCounter;
@@ -179,17 +230,19 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
try {
//get the high water marks for this node
//ok now get all the changes
- logger.info("fetching updates on, since ");
- for (int xx = 0; xx < poll.getChangesAvailable().getHighWaterMark().size(); xx++) {
- logger.info("Node " + poll.getChangesAvailable().getHighWaterMark().get(xx).getNodeID()
- + " USN " + poll.getChangesAvailable().getHighWaterMark().get(xx).getOriginatingUSN());
- }
- //JAXB.marshal(poll, System.out);
+
+ //done TODO replace with last known record from the given node
+ //for (int xx = 0; xx < poll.getChangesAvailable().getHighWaterMark().size(); xx++) {
+ // logger.info("Node " + poll.getChangesAvailable().getHighWaterMark().get(xx).getNodeID()
+ // + " USN " + poll.getChangesAvailable().getHighWaterMark().get(xx).getOriginatingUSN());
+ //}
GetChangeRecords body = new GetChangeRecords();
body.setRequestingNode(node);
body.setResponseLimitCount(BigInteger.valueOf(100));
- //indexing is screwed up
- body.setChangesAlreadySeen(poll.getChangesAvailable());
+
+ body.setChangesAlreadySeen(getLastChangeRecordFrom(poll.getNotifyingNode()));
+ logger.info("fetching updates from " + poll.getNotifyingNode() + " since " + body.getChangesAlreadySeen().getHighWaterMark().get(0).getOriginatingUSN());
+
List<ChangeRecord> records
= replicationClient.getChangeRecords(body).getChangeRecord();
//ok now we need to persist the change records
@@ -235,9 +288,9 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
* a USN is less than the USN specified in the
* changesAlreadySeen highWaterMarkVector.
*/
- StringWriter sw = new StringWriter();
- JAXB.marshal(rec, sw);
- logger.info("_______________________Remote change request " + sw.toString());
+ // StringWriter sw = new StringWriter();
+ //JAXB.marshal(rec, sw);
+ logger.info("_______________________Remote change request " + rec.getChangeID().getNodeID() + ":" + rec.getChangeID().getOriginatingUSN());
try {
tx.begin();
@@ -245,6 +298,9 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
org.apache.juddi.model.ChangeRecord mapChangeRecord = MappingApiToModel.mapChangeRecord(rec);
mapChangeRecord.setId(null);
em.persist(mapChangeRecord);
+ tx.commit();
+ tx = em.getTransaction();
+ tx.begin();
//<editor-fold defaultstate="collapsed" desc="delete a record">
if (rec.getChangeRecordDelete() != null) {
@@ -304,10 +360,10 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
} else {
ValidateNodeIdMatches(model.getNodeId(), rec.getChangeRecordNewData().getOperationalInfo());
- org.apache.juddi.model.BindingTemplate bt= em.find(org.apache.juddi.model.BindingTemplate.class,rec.getChangeRecordNewData().getBindingTemplate().getBindingKey() );
- if (bt!=null){
- em.remove(bt);
- }
+ org.apache.juddi.model.BindingTemplate bt = em.find(org.apache.juddi.model.BindingTemplate.class, rec.getChangeRecordNewData().getBindingTemplate().getBindingKey());
+ if (bt != null) {
+ em.remove(bt);
+ }
bt = new BindingTemplate();
MappingApiToModel.mapBindingTemplate(rec.getChangeRecordNewData().getBindingTemplate(), bt, model);
MappingApiToModel.mapOperationalInfo(bt, rec.getChangeRecordNewData().getOperationalInfo());
@@ -322,7 +378,7 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
ValidateNodeIdMatches(model.getNodeId(), rec.getChangeRecordNewData().getOperationalInfo());
//TODO revisit access control rules
em.remove(model);
- }
+ }
model = new BusinessEntity();
MappingApiToModel.mapBusinessEntity(rec.getChangeRecordNewData().getBusinessEntity(), model);
// MappingApiToModel.mapOperationalInfo(model, rec.getChangeRecordNewData().getOperationalInfo());
@@ -413,15 +469,68 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
}
}
+ private HighWaterMarkVectorType getLastChangeRecordFrom(String notifyingNode) {
+ HighWaterMarkVectorType ret = new HighWaterMarkVectorType();
+ ChangeRecordIDType cid = new ChangeRecordIDType();
+ cid.setNodeID(notifyingNode);
+ cid.setOriginatingUSN(0L);
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+ Long id = 0L;
+ try {
+ cid.setOriginatingUSN((Long) em.createQuery("select e.originatingUSN from ChangeRecord e where e.nodeID = :node order by e.originatingUSN desc").setParameter("node", notifyingNode).setMaxResults(1).getSingleResult());
+ } catch (Exception ex) {
+ logger.info(ex);
+ }
+
+ tx.rollback();
+
+ } catch (Exception drfm) {
+ logger.warn("error caught fetching newest record from node " + notifyingNode, drfm);
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+
+ ret.getHighWaterMark().add(cid);
+
+ return ret;
+ }
}
- private static void ValidateNodeIdMatches(String nodeId, OperationalInfo operationalInfo) throws Exception {
- if (nodeId == null || operationalInfo == null) {
+ // private void ValidateDontChangeMyRecordsAtAnotherNode(String )
+ private void ValidateNodeIdMatches(String modelNodeId, OperationalInfo newDataOperationalInfo) throws Exception {
+ if (modelNodeId == null || newDataOperationalInfo == null) {
throw new Exception("either the local node ID is null or the inbound replication data's node id is null");
}
- if (!nodeId.equals(operationalInfo.getNodeID())) {
+ //only time this is allowed is custody transfer
+ if (!modelNodeId.equals(newDataOperationalInfo.getNodeID())) {
throw new Exception("node id mismatch!");
}
+
+ //if i already have a record and "own it" and the remote node has a record with the same key, reject the update
+ //1.5.8
+ /**
+ * Each node has custody of a portion of the aggregate data
+ * managed by the registry of which it is a part. Each datum is
+ * by definition in the custody of exactly one such node. A
+ * datum in this context can be a businessEntity, a
+ * businessService, a bindingTemplate, a tModel, or a
+ * publisherAssertion. Changes to a datum in the registry MUST
+ * originate at the node which is the custodian of the datum.
+ * The registry defines the policy for data custody and, if
+ * allowed, the custodian node for a given datum can be changed;
+ * such custody transfer processes are discussed in Section 5.4
+ * Custody and Ownership Transfer API.
+ */
+ //so someone else attempted to update one of my records, reject it
+ if (modelNodeId.equals(node)) {
+ throw new Exception("node id mismatch! this node already has a record for key " + newDataOperationalInfo.getEntityKey() + " and I'm the authority for it.");
+ }
}
private synchronized UDDIReplicationPortType getReplicationClient(String node) {
@@ -482,6 +591,7 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
@WebResult(name = "changeRecords", targetNamespace = "urn:uddi-org:repl_v3", partName = "body")
// @WebMethod(operationName = "get_changeRecords", action = "get_changeRecords")
+ @Override
public org.uddi.repl_v3.ChangeRecords getChangeRecords(
@WebParam(partName = "body", name = "get_changeRecords", targetNamespace = "urn:uddi-org:repl_v3") org.uddi.repl_v3.GetChangeRecords body
) throws DispositionReportFaultMessage, RemoteException {/*
@@ -625,6 +735,7 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
EntityManager em = PersistenceManager.getEntityManager();
EntityTransaction tx = em.getTransaction();
+ HashMap<String, Long> map = new HashMap<String, Long>();
try {
tx.begin();
if (FetchEdges != null) {
@@ -632,26 +743,26 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
while (it.hasNext()) {
String nextNode = it.next();
if (!nextNode.equals(node)) {
+ if (!map.containsKey(nextNode)) {
+ Long id = 0L;
+ try {
+ id = (Long) em.createQuery("select e.originatingUSN from ChangeRecord e where e.nodeID = :node order by e.originatingUSN desc").setParameter("node", nextNode).setMaxResults(1).getSingleResult();
+ } catch (Exception ex) {
+ logger.debug(ex);
+ }
+ if (id == null) {
+ id = 0L;
+ //per the spec
+ }
+ map.put(nextNode, id);
- Long id = 0L;
- try {
- id = (Long) em.createQuery("select e.originatingUSN from ChangeRecord e where e.nodeID = :node order by e.originatingUSN desc").setParameter("node", nextNode).setMaxResults(1).getSingleResult();
- } catch (Exception ex) {
- logger.debug(ex);
- }
- if (id == null) {
- id = 0L;
- //per the spec
}
- ChangeRecordIDType x = new ChangeRecordIDType(nextNode, id);
-
- ret.add(x);
-
}
}
}
//dont forget this node
- Long id = (Long) em.createQuery("select (e.id) from ChangeRecord e where e.nodeID = :node order by e.id desc").setParameter("node", node).setMaxResults(1).getSingleResult();
+ Long id = (Long) em.createQuery("select (e.id) from ChangeRecord e where e.nodeID = :node order by e.id desc")
+ .setParameter("node", node).setMaxResults(1).getSingleResult();
if (id == null) {
id = 0L;
}
@@ -674,6 +785,11 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
em.close();
}
+ Iterator<Map.Entry<String, Long>> iterator = map.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry<String, Long> next = iterator.next();
+ ret.add(new ChangeRecordIDType(next.getKey(), next.getValue()));
+ }
return ret;
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/9d22690e/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java b/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
index f3df32f..64ebdb9 100644
--- a/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
+++ b/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
@@ -117,8 +117,9 @@ public class ValidatePublish extends ValidateUDDIApi {
/**
* used from Install class
+ *
* @param publisher
- * @param nodeid
+ * @param nodeid
* @see Install
*/
public ValidatePublish(UddiEntityPublisher publisher, String nodeid) {
@@ -284,14 +285,20 @@ public class ValidatePublish extends ValidateUDDIApi {
private void AccessCheck(Object obj, String entityKey) throws UserMismatchException {
boolean accessCheck = false; //assume access denied
- //TODO revisit access control rules in a replicated environment
+ if (!((UddiEntity) obj).getNodeId().equals(nodeID)) {
+ //prevent changes to data owned by another node in a replicated environment
+ //even if you're the boss
+ throw new UserMismatchException(new ErrorMessage("errors.usermismatch.InvalidNode", entityKey + " Owning Node: " +((UddiEntity) obj).getNodeId()
+ + ", this node: " + nodeID));
+ }
+
if (publisher.isOwner((UddiEntity) obj)) {
accessCheck = true;
}
//if i'm an admin, let me edit stuff on this node, but only stuff that's owned by this node
if (((Publisher) publisher).isAdmin()
- && nodeID.equals(((UddiEntity) obj).getNodeId())) {
+ && nodeID.equals(((UddiEntity) obj).getNodeId())) {
accessCheck = true;
}
@@ -331,8 +338,8 @@ public class ValidatePublish extends ValidateUDDIApi {
}
if (!pubAssertion.getTmodelKey().equalsIgnoreCase(keyedRef.getTModelKey())
- || !pubAssertion.getKeyName().equalsIgnoreCase(keyedRef.getKeyName())
- || !pubAssertion.getKeyValue().equalsIgnoreCase(keyedRef.getKeyValue())) {
+ || !pubAssertion.getKeyName().equalsIgnoreCase(keyedRef.getKeyName())
+ || !pubAssertion.getKeyValue().equalsIgnoreCase(keyedRef.getKeyValue())) {
throw new AssertionNotFoundException(new ErrorMessage("errors.pubassertion.AssertionNotFound", entity.getFromKey() + ", " + entity.getToKey()));
}
@@ -363,9 +370,9 @@ public class ValidatePublish extends ValidateUDDIApi {
for (org.uddi.api_v3.BusinessEntity entity : entityList) {
validateBusinessEntity(em, entity, config, publisher);
-
+
}
- validateCheckedTModelsBE(entityList, config);
+ validateCheckedTModelsBE(entityList, config);
}
public void validateSaveBusinessMax(EntityManager em) throws DispositionReportFaultMessage {
@@ -473,7 +480,7 @@ public class ValidatePublish extends ValidateUDDIApi {
for (org.uddi.api_v3.BindingTemplate entity : entityList) {
validateBindingTemplate(em, entity, null, config, publisher);
-
+
}
validateCheckedTModelsBT(entityList, config);
}
@@ -527,7 +534,7 @@ public class ValidatePublish extends ValidateUDDIApi {
for (org.uddi.api_v3.TModel entity : entityList) {
validateTModel(em, entity, config, publisher);
-
+
}
validateCheckedTModelsTM(entityList, config);
}
@@ -604,17 +611,17 @@ public class ValidatePublish extends ValidateUDDIApi {
if (item.getBusinessServices() != null && !item.getSignature().isEmpty()) {
for (int i = 0; i < item.getBusinessServices().getBusinessService().size(); i++) {
if (item.getBusinessServices().getBusinessService().get(i).getBusinessKey() == null
- || item.getBusinessServices().getBusinessService().get(i).getBusinessKey().length() == 0) {
+ || item.getBusinessServices().getBusinessService().get(i).getBusinessKey().length() == 0) {
throw new ValueNotAllowedException(new ErrorMessage("errors.entity.SignedButNoKey", "business/Service(" + i + ")/businessKey"));
}
if (item.getBusinessServices().getBusinessService().get(i).getServiceKey() == null
- || item.getBusinessServices().getBusinessService().get(i).getServiceKey().length() == 0) {
+ || item.getBusinessServices().getBusinessService().get(i).getServiceKey().length() == 0) {
throw new ValueNotAllowedException(new ErrorMessage("errors.entity.SignedButNoKey", "business/Service(" + i + ")/serviceKey"));
}
if (item.getBusinessServices().getBusinessService().get(i).getBindingTemplates() != null) {
for (int k = 0; k < item.getBusinessServices().getBusinessService().get(i).getBindingTemplates().getBindingTemplate().size(); k++) {
if (item.getBusinessServices().getBusinessService().get(i).getBindingTemplates().getBindingTemplate().get(k).getBindingKey() == null
- || item.getBusinessServices().getBusinessService().get(i).getBindingTemplates().getBindingTemplate().get(k).getBindingKey().length() == 0) {
+ || item.getBusinessServices().getBusinessService().get(i).getBindingTemplates().getBindingTemplate().get(k).getBindingKey().length() == 0) {
throw new ValueNotAllowedException(new ErrorMessage("errors.entity.SignedButNoKey", "business/Service(" + i + ")/bindingTemplate)" + k + ")/bindingKey"));
}
}
@@ -658,7 +665,7 @@ public class ValidatePublish extends ValidateUDDIApi {
if (item.getBindingTemplates() != null && !item.getSignature().isEmpty()) {
for (int i = 0; i < item.getBindingTemplates().getBindingTemplate().size(); i++) {
if (item.getBindingTemplates().getBindingTemplate().get(i).getBindingKey() == null
- || item.getBindingTemplates().getBindingTemplate().get(i).getBindingKey().length() == 0) {
+ || item.getBindingTemplates().getBindingTemplate().get(i).getBindingKey().length() == 0) {
throw new ValueNotAllowedException(new ErrorMessage("errors.entity.SignedButNoKey", "businessService/bindingTemplate(" + i + ")/bindingKey"));
}
}
@@ -666,7 +673,7 @@ public class ValidatePublish extends ValidateUDDIApi {
}
public void validateBusinessEntity(EntityManager em, org.uddi.api_v3.BusinessEntity businessEntity,
- Configuration config, UddiEntityPublisher publisher) throws DispositionReportFaultMessage {
+ Configuration config, UddiEntityPublisher publisher) throws DispositionReportFaultMessage {
// A supplied businessEntity can't be null
if (businessEntity == null) {
@@ -724,8 +731,8 @@ public class ValidatePublish extends ValidateUDDIApi {
}
public void validateBusinessServices(EntityManager em, org.uddi.api_v3.BusinessServices businessServices,
- org.uddi.api_v3.BusinessEntity parent, Configuration config, UddiEntityPublisher publisher)
- throws DispositionReportFaultMessage {
+ org.uddi.api_v3.BusinessEntity parent, Configuration config, UddiEntityPublisher publisher)
+ throws DispositionReportFaultMessage {
// Business services is optional
if (businessServices == null) {
return;
@@ -742,8 +749,8 @@ public class ValidatePublish extends ValidateUDDIApi {
}
public void validateBusinessService(EntityManager em, org.uddi.api_v3.BusinessService businessService,
- org.uddi.api_v3.BusinessEntity parent, Configuration config, UddiEntityPublisher publisher)
- throws DispositionReportFaultMessage {
+ org.uddi.api_v3.BusinessEntity parent, Configuration config, UddiEntityPublisher publisher)
+ throws DispositionReportFaultMessage {
// A supplied businessService can't be null
if (businessService == null) {
@@ -894,8 +901,8 @@ public class ValidatePublish extends ValidateUDDIApi {
}
public void validateBindingTemplates(EntityManager em, org.uddi.api_v3.BindingTemplates bindingTemplates,
- org.uddi.api_v3.BusinessService parent, Configuration config, UddiEntityPublisher publisher)
- throws DispositionReportFaultMessage {
+ org.uddi.api_v3.BusinessService parent, Configuration config, UddiEntityPublisher publisher)
+ throws DispositionReportFaultMessage {
// Binding templates is optional
if (bindingTemplates == null) {
return;
@@ -909,13 +916,12 @@ public class ValidatePublish extends ValidateUDDIApi {
for (org.uddi.api_v3.BindingTemplate bindingTemplate : bindingTemplateList) {
validateBindingTemplate(em, bindingTemplate, parent, config, publisher);
}
-
}
public void validateBindingTemplate(EntityManager em, org.uddi.api_v3.BindingTemplate bindingTemplate,
- org.uddi.api_v3.BusinessService parent, Configuration config, UddiEntityPublisher publisher)
- throws DispositionReportFaultMessage {
+ org.uddi.api_v3.BusinessService parent, Configuration config, UddiEntityPublisher publisher)
+ throws DispositionReportFaultMessage {
// A supplied bindingTemplate can't be null
if (bindingTemplate == null) {
@@ -1125,7 +1131,7 @@ public class ValidatePublish extends ValidateUDDIApi {
// TODO: validate "checked" categories or category groups (see section 5.2.3 of spec)? optional to support
if (tModel.getName() == null || tModel.getName().getValue() == null
- || tModel.getName().getValue().equals("")) {
+ || tModel.getName().getValue().equals("")) {
throw new ValueNotAllowedException(new ErrorMessage("errors.tmodel.NoName"));
}
@@ -1152,9 +1158,9 @@ public class ValidatePublish extends ValidateUDDIApi {
// The keyedRef must not be blank and every field must contain data.
org.uddi.api_v3.KeyedReference keyedRef = pubAssertion.getKeyedReference();
if (keyedRef == null
- || keyedRef.getTModelKey() == null || keyedRef.getTModelKey().length() == 0
- || keyedRef.getKeyName() == null || keyedRef.getKeyName().length() == 0
- || keyedRef.getKeyValue() == null || keyedRef.getKeyValue().length() == 0) {
+ || keyedRef.getTModelKey() == null || keyedRef.getTModelKey().length() == 0
+ || keyedRef.getKeyName() == null || keyedRef.getKeyName().length() == 0
+ || keyedRef.getKeyValue() == null || keyedRef.getKeyValue().length() == 0) {
throw new ValueNotAllowedException(new ErrorMessage("errors.pubassertion.BlankKeyedRef"));
}
@@ -1577,21 +1583,22 @@ public class ValidatePublish extends ValidateUDDIApi {
}
public void validateSaveSubscriptionAdmin(EntityManager em, String publisherOrUsername, List<Subscription> subscriptions) throws DispositionReportFaultMessage {
-
- // No null input
+
+ // No null input
if (subscriptions == null || subscriptions.isEmpty()) {
throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
}
-
+
if (!((Publisher) publisher).isAdmin()) {
- throw new UserMismatchException(new ErrorMessage("errors.deletepublisher.AdminReqd"));
+ throw new UserMismatchException(new ErrorMessage("errors.deletepublisher.AdminReqd"));
}
UddiEntityPublisher user = new UddiEntityPublisher(publisherOrUsername);
ValidateSubscription vsub = new ValidateSubscription(user);
- for (int i=0; i < subscriptions.size(); i++){
- vsub.validateSubscriptions(em, subscriptions, user);
+ for (int i = 0; i < subscriptions.size(); i++) {
+ vsub.validateSubscriptions(em, subscriptions, user);
}
}
+
public void validateSavePublisher(EntityManager em, SavePublisher body) throws DispositionReportFaultMessage {
// No null input
@@ -1815,7 +1822,7 @@ public class ValidatePublish extends ValidateUDDIApi {
for (int i = 0; i < phone.size(); i++) {
validateUseType(phone.get(i).getUseType());
if (phone.get(i).getValue() == null
- || phone.get(i).getValue().length() == 0) {
+ || phone.get(i).getValue().length() == 0) {
throw new ValueNotAllowedException(new ErrorMessage("errors.phone.noinput"));
}
if (phone.get(i).getValue().length() > ValidationConstants.MAX_phone) {
@@ -2198,15 +2205,15 @@ public class ValidatePublish extends ValidateUDDIApi {
for (int i = 0; i < addressLine.size(); i++) {
if (addressLine.get(i).getKeyName() == null
- || addressLine.get(i).getKeyName().trim().length() == 0) {
+ || addressLine.get(i).getKeyName().trim().length() == 0) {
err += "addressLine(" + i + ").keyName,";
}
if (addressLine.get(i).getKeyValue() == null
- || addressLine.get(i).getKeyValue().trim().length() == 0) {
+ || addressLine.get(i).getKeyValue().trim().length() == 0) {
err += "addressLine(" + i + ").keyValue,";
}
if (addressLine.get(i).getValue() == null
- || addressLine.get(i).getValue().trim().length() == 0) {
+ || addressLine.get(i).getValue().trim().length() == 0) {
err += "addressLine(" + i + ").value,";
}
}
@@ -2385,20 +2392,23 @@ public class ValidatePublish extends ValidateUDDIApi {
throw new InvalidKeyPassedException(new ErrorMessage("errors.deleteNode.NoInput"));
}
//get the latest replication config
- if (cfg!=null){
- if (cfg.getCommunicationGraph()!=null){
- for (String node : cfg.getCommunicationGraph().getNode()) {
- if (node.equals(nodeID.getNodeID()))
- throw new InvalidKeyPassedException(new ErrorMessage("errors.deleteNode.InReplicationConfig", nodeID.getNodeID()));
- }
- for (int i=0; i <cfg.getCommunicationGraph().getEdge().size(); i++){
- if (nodeID.getNodeID().equals(cfg.getCommunicationGraph().getEdge().get(i).getMessageReceiver()))
- throw new InvalidKeyPassedException(new ErrorMessage("errors.deleteNode.InReplicationConfig", nodeID.getNodeID()));
- if (nodeID.getNodeID().equals(cfg.getCommunicationGraph().getEdge().get(i).getMessageSender()))
- throw new InvalidKeyPassedException(new ErrorMessage("errors.deleteNode.InReplicationConfig", nodeID.getNodeID()));
-
- }
- }
+ if (cfg != null) {
+ if (cfg.getCommunicationGraph() != null) {
+ for (String node : cfg.getCommunicationGraph().getNode()) {
+ if (node.equals(nodeID.getNodeID())) {
+ throw new InvalidKeyPassedException(new ErrorMessage("errors.deleteNode.InReplicationConfig", nodeID.getNodeID()));
+ }
+ }
+ for (int i = 0; i < cfg.getCommunicationGraph().getEdge().size(); i++) {
+ if (nodeID.getNodeID().equals(cfg.getCommunicationGraph().getEdge().get(i).getMessageReceiver())) {
+ throw new InvalidKeyPassedException(new ErrorMessage("errors.deleteNode.InReplicationConfig", nodeID.getNodeID()));
+ }
+ if (nodeID.getNodeID().equals(cfg.getCommunicationGraph().getEdge().get(i).getMessageSender())) {
+ throw new InvalidKeyPassedException(new ErrorMessage("errors.deleteNode.InReplicationConfig", nodeID.getNodeID()));
+ }
+
+ }
+ }
}
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/9d22690e/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 97da3ff..df5a436 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
@@ -58,9 +58,9 @@ public class ValidateReplication extends ValidateUDDIApi {
//This is the unique key for the calling node and SHOULD be specified within the Replication Configuration Structure.
throw new FatalErrorException(new ErrorMessage("errors.replication.nodeNotSpecified"));
}
- if (!ContainsNode(requestingNode, FetchEdges)) {
- throw new FatalErrorException(new ErrorMessage("errors.replication.unknownNode"));
- }
+ //if (!ContainsNode(requestingNode, FetchEdges)) {
+ // throw new FatalErrorException(new ErrorMessage("errors.replication.unknownNode"));
+ //}
if (changesAlreadySeen != null) {
// changesAlreadySeen: The changesAlreadySeen element, if present, indicates changes from each
http://git-wip-us.apache.org/repos/asf/juddi/blob/9d22690e/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 95d98ce..fe79f62 100644
--- a/juddi-core/src/main/resources/messages.properties
+++ b/juddi-core/src/main/resources/messages.properties
@@ -296,3 +296,4 @@ errors.replication.configNodeNotFound=No specified node name is not currently li
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,
+errors.usermismatch.InvalidNode=The user is not authorized to alter the given entity. It is not owned by this jUDDI node. Try your request again on the authoritative node.
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/juddi/blob/9d22690e/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 700c96d..2227973 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
@@ -46,6 +46,7 @@ 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.ChangeRecords;
import org.uddi.repl_v3.CommunicationGraph;
import org.uddi.repl_v3.DoPing;
import org.uddi.repl_v3.GetChangeRecords;
@@ -121,8 +122,8 @@ public class API_160_ReplicationTest {
}
}
- @Test(expected = FatalErrorException.class)
- public void getChangeRecordsInvalid() throws DispositionReportFaultMessage, RemoteException {
+ // @Test(expected = FatalErrorException.class)
+ public void getChangeRecordsValid() throws DispositionReportFaultMessage, RemoteException {
List<ChangeRecordIDType> highWaterMarks = repl.getHighWaterMarks();
HighWaterMarkVectorType highWaterMarkVectorType = new HighWaterMarkVectorType();
@@ -132,8 +133,8 @@ public class API_160_ReplicationTest {
req.setChangesAlreadySeen(null);
req.setResponseLimitVector(highWaterMarkVectorType);
- repl.getChangeRecords(req);//"test", null, BigInteger.valueOf(highWaterMarks.get(0).getOriginatingUSN()), highWaterMarkVectorType);
- Assert.fail("unexpected success");
+ ChangeRecords changeRecords = repl.getChangeRecords(req); //"test", null, BigInteger.valueOf(highWaterMarks.get(0).getOriginatingUSN()), highWaterMarkVectorType);
+ //Assert.fail("unexpected success");
}
/**
http://git-wip-us.apache.org/repos/asf/juddi/blob/9d22690e/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 3d0dacd..8b38575 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
@@ -133,7 +133,7 @@ public class EntryPoint {
int biz = Integer.parseInt(System.console().readLine());
System.out.print("servicesPerBusiness: ");
int svc = Integer.parseInt(System.console().readLine());
- new UddiCreatebulk().publishBusiness(authtoken, biz, svc);
+ new UddiCreatebulk("default").publishBusiness(authtoken, biz, svc);
}
if (input.equals("7")) {
UDDISecurityPortType security = null;
@@ -439,22 +439,25 @@ public class EntryPoint {
}
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");
+ //UDDISecurityPortType security = null;
+ //UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
- Transport transport = clerkManager.getTransport("default");
+ /* Transport transport = clerkManager.getTransport("default");
security = transport.getUDDISecurityService();
- String uname = "root";
+ String uname = "root";
GetAuthToken getAuthTokenRoot = new GetAuthToken();
getAuthTokenRoot.setUserID(uname);
getAuthTokenRoot.setCred("root");
authtoken = security.getAuthToken(getAuthTokenRoot).getAuthInfo();
- System.out.println("Success!");
+ System.out.println("Success!");*/
+
+ //this setups up a replication config between the two nodes
new JuddiAdminService().autoMagic();
- new UddiCreatebulk().publishBusiness(authtoken, 1, 1);
+ new UddiCreatebulk("default").publishBusiness(null, 1, 1);
+ new UddiCreatebulk("uddi:another.juddi.apache.org:node2").publishBusiness(null, 1, 1);
}
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/9d22690e/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 696c8b7..7825e79 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
@@ -41,12 +41,12 @@ public class UddiCreatebulk {
private static UDDISecurityPortType security = null;
private static UDDIPublicationPortType publish = null;
- public UddiCreatebulk() {
+ public UddiCreatebulk(String node) {
try {
// create a manager and read the config in the archive;
// you can use your config file name
UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
- Transport transport = clerkManager.getTransport();
+ Transport transport = clerkManager.getTransport(node);
// Now you create a reference to the UDDI API
security = transport.getUDDISecurityService();
publish = transport.getUDDIPublishService();
@@ -186,7 +186,7 @@ public class UddiCreatebulk {
}
public static void main(String args[]) {
- UddiCreatebulk sp = new UddiCreatebulk();
+ UddiCreatebulk sp = new UddiCreatebulk(null);
sp.publishBusiness(null, 15, 20);
}
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/9d22690e/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
----------------------------------------------------------------------
diff --git a/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties b/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
index 106e855..534032d 100644
--- a/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
+++ b/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
@@ -363,7 +363,7 @@ pages.editor.tmodel.instances=Instances
pages.editor.tmodel.deleted=Is this tModel Deleted? (not available for future use).
pages.signatures.signedby=Signed By
pages.signatures.status=Signature Status
-pages.editor.tmodel.instances.content=Use this to search for other entities in this registery that reference this tModel
+pages.editor.tmodel.instances.content=Use this to search for other entities in this registry that reference this tModel
pages.editor.tmodel.search.business=Find Businesses
pages.editor.tmodel.search.binding=Find binding
pages.editor.tmodel.search.services=Find services
http://git-wip-us.apache.org/repos/asf/juddi/blob/9d22690e/juddi-gui/src/main/webapp/bindingEditor.jsp
----------------------------------------------------------------------
diff --git a/juddi-gui/src/main/webapp/bindingEditor.jsp b/juddi-gui/src/main/webapp/bindingEditor.jsp
index a0699c7..9a1a1f1 100644
--- a/juddi-gui/src/main/webapp/bindingEditor.jsp
+++ b/juddi-gui/src/main/webapp/bindingEditor.jsp
@@ -217,14 +217,14 @@
<b><%=ResourceLoader.GetResource(session, "items.description")%> </b>-
<%=ResourceLoader.GetResource(session, "items.services.description")%><br>
- <a href="javascript:AddDescription('Description');"><i class="icon-plus-sign icon-large"></i></a> <%=ResourceLoader.GetResource(session, "items.description.add")%>
+ <a href="javascript:AddDescription('Description');"><i class="icon-plus-sign icon-large"></i> <%=ResourceLoader.GetResource(session, "items.description.add")%></a>
<div id="Description" style="border-width: 2px; border-style: solid;" >
<%
for (int i = 0; i < bd.getDescription().size(); i++) {
out.write("<div id=\"" + PostBackConstants.DESCRIPTION + i + "\" style=\"border-width:1px; border-style:solid\">");
out.write("<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('Description" + i + "');\"><i class=\"icon-trash icon-large\"></i> </a></div>");
- out.write("<div style=\"float:left\">" + ResourceLoader.GetResource(session, "items.key") + ": </div>"
+ out.write("<div style=\"float:left\">" + ResourceLoader.GetResource(session, "items.value") + ": </div>"
+ "<div class=\"edit\" id=\"" + PostBackConstants.DESCRIPTION + i + PostBackConstants.VALUE + "\">" + StringEscapeUtils.escapeHtml(bd.getDescription().get(i).getValue()) + "</div>");
out.write("<div style=\"float:left\">" + ResourceLoader.GetResource(session, "items.lang") + ": </div>"
+ "<div class=\"edit\" id=\"" + PostBackConstants.DESCRIPTION + i + PostBackConstants.LANG + "\">"
http://git-wip-us.apache.org/repos/asf/juddi/blob/9d22690e/juddi-gui/src/main/webapp/js/businessEditor.js
----------------------------------------------------------------------
diff --git a/juddi-gui/src/main/webapp/js/businessEditor.js b/juddi-gui/src/main/webapp/js/businessEditor.js
index 090fe49..ab213e3 100644
--- a/juddi-gui/src/main/webapp/js/businessEditor.js
+++ b/juddi-gui/src/main/webapp/js/businessEditor.js
@@ -92,7 +92,7 @@ function AddDescription()
var i = currentDescriptionEntries;
$("<div id=\"Description" + i + "\" style=\"border-width:1px; border-style:solid\" >"
+"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('Description" + i
- +"');\"><i class=\"icon-trash icon-large\"></i></a></div>"
+ +"');\"><i class=\"icon-trash icon-large\"></i> </a></div>"
+"<div style=\"float:left\">" + i18n_value + ": </div>"
+"<div class=\"edit\" id=\"Description" + i + "Value\"></div>"
+"<div style=\"float:left\">" + i18n_lang + ": </div>"
@@ -109,7 +109,7 @@ function AddDisco()
$("<div id=\"disco" + i + "\" style=\"border-width:1px; border-style:solid\" >"
+"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('disco" + i
- +"');\"><i class=\"icon-trash icon-large\"></i></a></div>"
+ +"');\"><i class=\"icon-trash icon-large\"></i> </a></div>"
+"<div style=\"float:left\">" + i18n_value + ": </div>"
+"<div class=\"edit\" id=\"disco" + i + "Value\"></div>"
+"<div style=\"float:left\">" + i18n_type + ": </div>"
@@ -129,7 +129,7 @@ function AddContact()
$("<div id=\"contact" + i + "\" style=\"border-width:2px; border-style:solid; border-color:red\" >"
+"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('contact" + i
- +"');\"><i class=\"icon-trash icon-large\"></i></a></div>"
+ +"');\"><i class=\"icon-trash icon-large\"></i> </a></div>"
+"<div style=\"float:left\">" + i18n_contactType+ ": </div>"
+"<div class=\"edit\" id=\"contact" + i + "Type\">" + i18n_contactTypeDefault + "</div>"
+"<a href=\"javascript:AddContactName('" + i + "');\"><i class=\"icon-plus-sign icon-large\"></i></a>" + i18n_name + "  "
@@ -148,7 +148,7 @@ function AddContactName(contactid)
{
$("<div id=\"contact" + contactid + "Name" + contactname + "\" style=\"border-width:1px; border-style:solid\" >"
+"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('contact" + contactid + "Name" + contactname
- +"');\"><i class=\"icon-trash icon-large\"></i></a></div>"
+ +"');\"><i class=\"icon-trash icon-large\"></i> </a></div>"
+"<div style=\"float:left\">" + i18n_name + ": </div>"
+"<div class=\"edit\" id=\"contact" + contactid + "Name" + contactname + "Value\"></div>"
+"<div style=\"float:left\">" + i18n_lang + ": </div>"
@@ -162,7 +162,7 @@ function AddContactEmail(contactid)
{
$("<div id=\"contact" + contactid + "Email" + contactemail + "\" style=\"border-width:1px; border-style:solid\" >"
+"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('contact" + contactid + "Email" + contactemail
- +"');\"><i class=\"icon-trash icon-large\"></i></a></div>"
+ +"');\"><i class=\"icon-trash icon-large\"></i> </a></div>"
+"<div style=\"float:left\">" + i18n_type + ": </div>"
+"<div class=\"edit\" id=\"contact" + contactid + "Email" + contactemail + "Type\">" + i18n_email+ "</div>"
+"<div style=\"float:left\">" + i18n_value + ": </div>"
@@ -175,7 +175,7 @@ function AddContactDescription(contactid)
{
$("<div id=\"contact" + contactid + "Description" + contactdescription + "\" style=\"border-width:1px; border-style:solid\" >"
+"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('contact" + contactid + "Description" + contactdescription
- +"');\"><i class=\"icon-trash icon-large\"></i></a></div>"
+ +"');\"><i class=\"icon-trash icon-large\"></i> </a></div>"
+"<div style=\"float:left\">" + i18n_description + ": </div>"
+"<div class=\"edit\" id=\"contact" + contactid + "Description" + contactdescription + "Value\">"+i18n_contactPrimary+"</div>"
+"<div style=\"float:left\">" + i18n_lang + ": </div>"
@@ -189,7 +189,7 @@ function AddContactPhone(contactid)
{
$("<div id=\"contact" + contactid + "Phone" + contactphone + "\" style=\"border-width:1px; border-style:solid\" >"
+"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('contact" + contactid + "Phone" + contactphone
- +"');\"><i class=\"icon-trash icon-large\"></i></a></div>"
+ +"');\"><i class=\"icon-trash icon-large\"></i> </a></div>"
+"<div style=\"float:left\">" + i18n_phone + ": </div>"
+"<div class=\"edit\" id=\"contact" + contactid + "Phone" + contactphone + "Value\"></div>"
+"<div style=\"float:left\">" + i18n_type + ": </div>"
@@ -204,7 +204,7 @@ function AddContactAddress(contactid)
$("<div id=\"contact" + contactid + "Address" + contactaddress + "\" style=\"border-width:1px; border-style:solid\" >"
+"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('contact" + contactid + "Address" + contactaddress
- +"');\"><i class=\"icon-trash icon-large\"></i></a>" + i18n_address + "</div><br>"
+ +"');\"><i class=\"icon-trash icon-large\"></i> </a>" + i18n_address + "</div><br>"
+"<div style=\"float:left\">" + i18n_lang + ": </div>"
+"<div class=\"edit\" id=\"contact" + contactid + "Address" + contactaddress + "Lang\"></div>"
+"<div style=\"float:left\">" + i18n_addressSortCode + ": </div>"
@@ -228,7 +228,7 @@ function AddContactAddressLine(contactid)
"\" style=\"border-width:1px; border-style:solid\" >"
+"<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('contact" + contactid + "addressLine" +contactaddresslines
- +"');\"><i class=\"icon-trash icon-large\"></i></a></div>"
+ +"');\"><i class=\"icon-trash icon-large\"></i> </a></div>"
+"<div style=\"float:left\">" + i18n_addressValue + ": </div>"
+"<div class=\"edit\" id=\"contact" + contactid + "addressLine" + contactaddresslines + "Value\"></div>"
+"<div style=\"float:left\">" +i18n_keyname_optional + ": </div>"
@@ -248,7 +248,7 @@ function AddCategoryKeyReferenceParam(tmodelkey, keyname, keyvalue)
var i=currentcatkeyref;
$("<div id=\"catbagkeyref" + i + "\" style=\"border-width:1px; border-style:solid\">"+
- "<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('catbagkeyref" + i + "');\"><i class=\"icon-trash icon-large\"></i></a></div>"+
+ "<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('catbagkeyref" + i + "');\"><i class=\"icon-trash icon-large\"></i> </a></div>"+
"<div style=\"float:left\">" + i18n_key +" (<a href=\"javascript:tModelModal('catbagkeyref" + i + "Value')\" ><i class=\"icon-list-alt icon-large\"></i>" + il8n_picker + "</a>): </div>"
+ "<div class=\"edit\" id=\"catbagkeyref" + i + "Value\">" + tmodelkey + "</div>"
+"<div style=\"float:left\">" + i18n_name + ": </div>"
@@ -267,7 +267,7 @@ function AddCategoryKeyReference()
var i=currentcatkeyref;
$("<div id=\"catbagkeyref" + i + "\" style=\"border-width:1px; border-style:solid\">"+
- "<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('catbagkeyref" + i + "');\"><i class=\"icon-trash icon-large\"></i></a></div>"+
+ "<div style=\"float:left;height:100%\"><a href=\"javascript:Remove('catbagkeyref" + i + "');\"><i class=\"icon-trash icon-large\"></i> </a></div>"+
// <div style=\"float:left\">" + s.key") + ": <a href=\"javascript:tModelModal('" + PostBackConstants.CATBAG_KEY_REF + i + PostBackConstants.VALUE + "')\" class=\"btn btn-mini\">Picker</a> </div>"
"<div style=\"float:left\">" + i18n_key +" (<a href=\"javascript:tModelModal('catbagkeyref" + i + "Value')\" ><i class=\"icon-list-alt icon-large\"></i>" + il8n_picker + "</a>): </div>"
+ "<div class=\"edit\" id=\"catbagkeyref" + i + "Value\"></div>"
http://git-wip-us.apache.org/repos/asf/juddi/blob/9d22690e/juddi-gui/src/main/webapp/serviceEditor.jsp
----------------------------------------------------------------------
diff --git a/juddi-gui/src/main/webapp/serviceEditor.jsp b/juddi-gui/src/main/webapp/serviceEditor.jsp
index 00b41b9..9c1c37f 100644
--- a/juddi-gui/src/main/webapp/serviceEditor.jsp
+++ b/juddi-gui/src/main/webapp/serviceEditor.jsp
@@ -348,7 +348,7 @@
<b><%=ResourceLoader.GetResource(session, "items.bindingtemplate")%> </b>- <%=ResourceLoader.GetResource(session, "items.bindingtemplate.description")%> <br>
<% if (!newitem) {
%>
- <a href="bindingEditor.jsp?svcid=<%=URLEncoder.encode(bd.getServiceKey(), "UTF8")%>"><i class="icon-plus-sign icon-large"></i></a> <%=ResourceLoader.GetResource(session, "items.bindingtemplate.add")%> <Br>
+ <a href="bindingEditor.jsp?svcid=<%=URLEncoder.encode(bd.getServiceKey(), "UTF8")%>"><i class="icon-plus-sign icon-large"></i> <%=ResourceLoader.GetResource(session, "items.bindingtemplate.add")%></a> <Br>
<%
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/9d22690e/juddi-tomcat/build.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/build.xml b/juddi-tomcat/build.xml
index f2349f9..325634f 100644
--- a/juddi-tomcat/build.xml
+++ b/juddi-tomcat/build.xml
@@ -81,8 +81,10 @@
<copy file="${basedir}/juddiv3Node2.xml" tofile="${webapps2.dir}/juddiv3/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"/>
+ <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"/>
+ <copy file="${basedir}/juddi_install_data_node2/UDDI_Publisher.xml" todir="${webapps2.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
+ <copy file="${basedir}/juddi_install_data_node2/UDDI_tModels.xml" todir="${webapps2.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
<copy file="${basedir}/uddiNode2.xml" tofile="${webapps2.dir}/juddi-gui/WEB-INF/classes/META-INF/uddi.xml" overwrite="true"/>
http://git-wip-us.apache.org/repos/asf/juddi/blob/9d22690e/juddi-tomcat/juddi_install_data_node2/UDDI_Publisher.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/juddi_install_data_node2/UDDI_Publisher.xml b/juddi-tomcat/juddi_install_data_node2/UDDI_Publisher.xml
new file mode 100644
index 0000000..0bfd815
--- /dev/null
+++ b/juddi-tomcat/juddi_install_data_node2/UDDI_Publisher.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */ -->
+<publisher xmlns="urn:juddi-apache-org:api_v3" authorizedName="uddi">
+ <publisherName>UDDI publisher</publisherName>
+ <isAdmin>false</isAdmin>
+</publisher>
+
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org