Return-Path: X-Original-To: apmail-juddi-commits-archive@www.apache.org Delivered-To: apmail-juddi-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2FB8B102C2 for ; Thu, 27 Nov 2014 02:23:38 +0000 (UTC) Received: (qmail 68232 invoked by uid 500); 27 Nov 2014 02:23:38 -0000 Delivered-To: apmail-juddi-commits-archive@juddi.apache.org Received: (qmail 68160 invoked by uid 500); 27 Nov 2014 02:23:38 -0000 Mailing-List: contact commits-help@juddi.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Delivered-To: mailing list commits@juddi.apache.org Received: (qmail 68072 invoked by uid 99); 27 Nov 2014 02:23:38 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Nov 2014 02:23:38 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id C182D94832D; Thu, 27 Nov 2014 02:23:37 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: alexoree@apache.org To: commits@juddi.apache.org Date: Thu, 27 Nov 2014 02:23:39 -0000 Message-Id: <01e2b8f4c9504e16af9b0d285175347e@git.apache.org> In-Reply-To: <59f673130e1f4feca7121ecb8a4ade9a@git.apache.org> References: <59f673130e1f4feca7121ecb8a4ade9a@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [3/9] juddi git commit: JUDDI-241 adjusting database configuration. get/setReplicationConfig now function as expected JUDDI-241 adjusting database configuration. get/setReplicationConfig now function as expected Project: http://git-wip-us.apache.org/repos/asf/juddi/repo Commit: http://git-wip-us.apache.org/repos/asf/juddi/commit/a975954b Tree: http://git-wip-us.apache.org/repos/asf/juddi/tree/a975954b Diff: http://git-wip-us.apache.org/repos/asf/juddi/diff/a975954b Branch: refs/heads/JUDDI-241 Commit: a975954b140694096ac3f81cd5bf77da19922cbb Parents: 7aa78f6 Author: Alex Authored: Sat Nov 15 21:45:07 2014 -0500 Committer: Alex Committed: Sat Nov 15 21:45:07 2014 -0500 ---------------------------------------------------------------------- .../org/apache/juddi/api/impl/JUDDIApiImpl.java | 194 +++++++++-------- .../apache/juddi/mapping/MappingApiToModel.java | 123 ++++++----- .../apache/juddi/mapping/MappingModelToApi.java | 4 +- .../apache/juddi/model/CommunicationGraph.java | 99 --------- .../main/java/org/apache/juddi/model/Edge.java | 21 +- .../juddi/model/ReplicationConfiguration.java | 70 +++--- .../juddi/validation/ValidateReplication.java | 43 +++- .../src/main/resources/messages.properties | 2 +- .../juddi/api/impl/API_160_ReplicationTest.java | 20 ++ .../src/test/resources/META-INF/persistence.xml | 212 +++++++++---------- 10 files changed, 371 insertions(+), 417 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/juddi/blob/a975954b/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 1f7ca77..e2b9dc5 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 @@ -118,8 +118,8 @@ import org.uddi.v3_service.UDDISubscriptionPortType; * @author Alex O'Ree */ @WebService(serviceName = "JUDDIApiService", - endpointInterface = "org.apache.juddi.v3_service.JUDDIApiPortType", - targetNamespace = "urn:juddi-apache-org:v3_service") + endpointInterface = "org.apache.juddi.v3_service.JUDDIApiPortType", + targetNamespace = "urn:juddi-apache-org:v3_service") public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortType { private Log log = LogFactory.getLog(this.getClass()); @@ -134,7 +134,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy * @throws DispositionReportFaultMessage */ public PublisherDetail savePublisher(SavePublisher body) - throws DispositionReportFaultMessage { + throws DispositionReportFaultMessage { long startTime = System.currentTimeMillis(); EntityManager em = PersistenceManager.getEntityManager(); EntityTransaction tx = em.getTransaction(); @@ -167,12 +167,12 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.SAVE_PUBLISHER, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); return result; } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.SAVE_PUBLISHER, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { if (tx.isActive()) { @@ -190,7 +190,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy * @throws DispositionReportFaultMessage */ public void deletePublisher(DeletePublisher body) - throws DispositionReportFaultMessage { + throws DispositionReportFaultMessage { long startTime = System.currentTimeMillis(); EntityManager em = PersistenceManager.getEntityManager(); EntityTransaction tx = em.getTransaction(); @@ -249,11 +249,11 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.DELETE_PUBLISHER, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.DELETE_PUBLISHER, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { if (tx.isActive()) { @@ -272,7 +272,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy * @throws DispositionReportFaultMessage */ public PublisherDetail getPublisherDetail(GetPublisherDetail body) - throws DispositionReportFaultMessage { + throws DispositionReportFaultMessage { long startTime = System.currentTimeMillis(); new ValidatePublisher(null).validateGetPublisherDetail(body); @@ -306,12 +306,12 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.GET_PUBLISHER_DETAIL, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); return result; } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.GET_PUBLISHER_DETAIL, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { if (tx.isActive()) { @@ -335,7 +335,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy */ @SuppressWarnings("unchecked") public PublisherDetail getAllPublisherDetail(GetAllPublisherDetail body) - throws DispositionReportFaultMessage, RemoteException { + throws DispositionReportFaultMessage, RemoteException { long startTime = System.currentTimeMillis(); new ValidatePublisher(null).validateGetAllPublisherDetail(body); @@ -363,12 +363,12 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.GET_ALL_PUBLISHER_DETAIL, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); return result; } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.GET_ALL_PUBLISHER_DETAIL, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { if (tx.isActive()) { @@ -390,7 +390,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy * @throws DispositionReportFaultMessage */ public void adminDeleteTModel(DeleteTModel body) - throws DispositionReportFaultMessage { + throws DispositionReportFaultMessage { long startTime = System.currentTimeMillis(); EntityManager em = PersistenceManager.getEntityManager(); EntityTransaction tx = em.getTransaction(); @@ -410,11 +410,11 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.ADMIN_DELETE_TMODEL, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.ADMIN_DELETE_TMODEL, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { if (tx.isActive()) { @@ -433,7 +433,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy * @throws RemoteException */ public void deleteClientSubscriptionInfo(DeleteClientSubscriptionInfo body) - throws DispositionReportFaultMessage, RemoteException { + throws DispositionReportFaultMessage, RemoteException { long startTime = System.currentTimeMillis(); EntityManager em = PersistenceManager.getEntityManager(); EntityTransaction tx = em.getTransaction(); @@ -453,11 +453,11 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.DELETE_CLIENT_SUB, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.DELETE_CLIENT_SUB, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { @@ -479,7 +479,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy * @throws RemoteException */ public ClientSubscriptionInfoDetail saveClientSubscriptionInfo(SaveClientSubscriptionInfo body) - throws DispositionReportFaultMessage, RemoteException { + throws DispositionReportFaultMessage, RemoteException { long startTime = System.currentTimeMillis(); EntityManager em = PersistenceManager.getEntityManager(); EntityTransaction tx = em.getTransaction(); @@ -513,12 +513,12 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.SAVE_CLIENT_SUB, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); return result; } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.SAVE_CLIENT_SUB, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { @@ -539,7 +539,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy */ @SuppressWarnings("unchecked") public ClientSubscriptionInfoDetail getAllClientSubscriptionInfoDetail(GetAllClientSubscriptionInfoDetail body) - throws DispositionReportFaultMessage { + throws DispositionReportFaultMessage { long startTime = System.currentTimeMillis(); new ValidateClientSubscriptionInfo(null).validateGetAllClientSubscriptionDetail(body); @@ -559,7 +559,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo = new org.apache.juddi.api_v3.ClientSubscriptionInfo(); - MappingModelToApi.mapClientSubscriptionInfo(modelClientSubscriptionInfo, apiClientSubscriptionInfo,em); + MappingModelToApi.mapClientSubscriptionInfo(modelClientSubscriptionInfo, apiClientSubscriptionInfo, em); result.getClientSubscriptionInfo().add(apiClientSubscriptionInfo); } @@ -567,12 +567,12 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.GET_ALL_CLIENT_SUB, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); return result; } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.GET_ALL_CLIENT_SUB, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { @@ -594,7 +594,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy * @throws DispositionReportFaultMessage */ public ClientSubscriptionInfoDetail getClientSubscriptionInfoDetail(GetClientSubscriptionInfoDetail body) - throws DispositionReportFaultMessage { + throws DispositionReportFaultMessage { long startTime = System.currentTimeMillis(); new ValidateClientSubscriptionInfo(null).validateGetClientSubscriptionInfoDetail(body); @@ -622,7 +622,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo = new org.apache.juddi.api_v3.ClientSubscriptionInfo(); - MappingModelToApi.mapClientSubscriptionInfo(modelClientSubscriptionInfo, apiClientSubscriptionInfo,em); + MappingModelToApi.mapClientSubscriptionInfo(modelClientSubscriptionInfo, apiClientSubscriptionInfo, em); result.getClientSubscriptionInfo().add(apiClientSubscriptionInfo); } @@ -631,12 +631,12 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.GET_CLIENT_SUB, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); return result; } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.GET_CLIENT_SUB, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { if (tx.isActive()) { @@ -658,7 +658,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy */ @Override public ClerkDetail saveClerk(SaveClerk body) - throws DispositionReportFaultMessage { + throws DispositionReportFaultMessage { long startTime = System.currentTimeMillis(); EntityManager em = PersistenceManager.getEntityManager(); EntityTransaction tx = em.getTransaction(); @@ -678,35 +678,34 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy MappingApiToModel.mapClerk(apiClerk, modelClerk); org.apache.juddi.model.Node node2 = em.find(org.apache.juddi.model.Node.class, apiClerk.getNode().getName()); - if (node2==null) - { + if (node2 == null) { //it doesn't exist yet node2 = new Node(); MappingApiToModel.mapNode(apiClerk.getNode(), node2); em.persist(node2); } - + modelClerk.setNode(node2.getName()); Object existingUddiEntity = em.find(modelClerk.getClass(), modelClerk.getClerkName()); if (existingUddiEntity != null) { - + em.merge(modelClerk); } else { em.persist(modelClerk); } - + result.getClerk().add(apiClerk); } tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.SAVE_CLERK, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); return result; } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.SAVE_CLERK, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { @@ -728,7 +727,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy * @throws DispositionReportFaultMessage */ public NodeDetail saveNode(SaveNode body) - throws DispositionReportFaultMessage { + throws DispositionReportFaultMessage { long startTime = System.currentTimeMillis(); EntityManager em = PersistenceManager.getEntityManager(); EntityTransaction tx = em.getTransaction(); @@ -761,12 +760,12 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.SAVE_NODE, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); return result; } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.SAVE_NODE, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { @@ -788,14 +787,14 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy */ @SuppressWarnings("unchecked") public SyncSubscriptionDetail invokeSyncSubscription( - SyncSubscription body) throws DispositionReportFaultMessage, - RemoteException { + SyncSubscription body) throws DispositionReportFaultMessage, + RemoteException { long startTime = System.currentTimeMillis(); //validate SyncSubscriptionDetail syncSubscriptionDetail = new SyncSubscriptionDetail(); Map clientSubscriptionInfoMap - = new HashMap(); + = new HashMap(); //find the clerks to go with these subscriptions EntityManager em = PersistenceManager.getEntityManager(); EntityTransaction tx = em.getTransaction(); @@ -815,7 +814,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.SubscripKeyNotFound", subscriptionKey)); } org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo = new org.apache.juddi.api_v3.ClientSubscriptionInfo(); - MappingModelToApi.mapClientSubscriptionInfo(modelClientSubscriptionInfo, apiClientSubscriptionInfo,em); + MappingModelToApi.mapClientSubscriptionInfo(modelClientSubscriptionInfo, apiClientSubscriptionInfo, em); clientSubscriptionInfoMap.put(apiClientSubscriptionInfo.getSubscriptionKey(), apiClientSubscriptionInfo); } @@ -823,7 +822,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.INVOKE_SYNCSUB, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { @@ -852,23 +851,23 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy marshaller.marshal(list, sw); log.info( - "Notification received by UDDISubscriptionListenerService : " + sw.toString()); + "Notification received by UDDISubscriptionListenerService : " + sw.toString()); NotificationList nl = NotificationList.getInstance(); nl.getNotifications() - .add(sw.toString()); + .add(sw.toString()); //update the registry with the notification list. XRegisterHelper.handle(fromClerk, toClerk, list); syncSubscriptionDetail.getSubscriptionResultsList() - .add(list); + .add(list); } catch (Exception ce) { log.error(ce.getMessage(), ce); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.SAVE_NODE, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); if (ce instanceof DispositionReportFaultMessage) { throw (DispositionReportFaultMessage) ce; } @@ -882,7 +881,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.INVOKE_SYNCSUB, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); return syncSubscriptionDetail; } @@ -915,11 +914,11 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.GET_ALL_NODES, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.GET_ALL_NODES, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { if (tx.isActive()) { @@ -951,18 +950,18 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy List resultList = qry.getResultList(); for (int i = 0; i < resultList.size(); i++) { Clerk api = new Clerk(); - MappingModelToApi.mapClerk(resultList.get(i), api,em); + MappingModelToApi.mapClerk(resultList.get(i), api, em); ret.getClerk().add(api); } tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.GET_ALL_CLERKS, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.GET_ALL_CLERKS, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { @@ -991,27 +990,25 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy org.apache.juddi.model.Node existingUddiEntity = em.find(org.apache.juddi.model.Node.class, req.getNodeID()); if (existingUddiEntity != null) { - //cascade delete all clerks tied to this node, confirm that it works - - Query createQuery = em.createQuery("delete from Clerk c where c.node = :nodename"); - createQuery.setParameter("nodename", req.getNodeID()); - createQuery.executeUpdate(); - - em.remove(existingUddiEntity); - found=true; + Query createQuery = em.createQuery("delete from Clerk c where c.node = :nodename"); + createQuery.setParameter("nodename", req.getNodeID()); + createQuery.executeUpdate(); + + em.remove(existingUddiEntity); + found = true; + } else { + throw new InvalidKeyPassedException(new ErrorMessage("errors.deleteNode.NotFound")); } - else - throw new InvalidKeyPassedException(new ErrorMessage("errors.deleteNode.NotFound")); tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.DELETE_NODE, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.DELETE_NODE, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { @@ -1042,7 +1039,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy org.apache.juddi.model.Clerk existingUddiEntity = em.find(org.apache.juddi.model.Clerk.class, req.getClerkID()); if (existingUddiEntity - != null) { + != null) { em.remove(existingUddiEntity); found = true; } @@ -1050,11 +1047,11 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.DELETE_CLERK, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.DELETE_CLERK, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { @@ -1148,11 +1145,11 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(SubscriptionQuery.DELETE_SUBSCRIPTION, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(SubscriptionQuery.DELETE_SUBSCRIPTION, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { if (tx.isActive()) { @@ -1168,7 +1165,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy long startTime = System.currentTimeMillis(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.ADMIN_SAVE_BUSINESS, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); ValidatePublish.unsupportedAPICall(); return null; } @@ -1196,11 +1193,11 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.ADMIN_SAVE_TMODEL, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.ADMIN_SAVE_TMODEL, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { @@ -1247,11 +1244,11 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.GET_ALL_CLIENT_SUB, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.GET_ALL_CLIENT_SUB, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { if (tx.isActive()) { @@ -1264,7 +1261,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy } @Override - public DispositionReport setReplicationNodes(String authInfo, org.uddi.repl_v3.ReplicationConfiguration replicationConfiguration) throws DispositionReportFaultMessage, RemoteException { + public synchronized DispositionReport setReplicationNodes(String authInfo, org.uddi.repl_v3.ReplicationConfiguration replicationConfiguration) throws DispositionReportFaultMessage, RemoteException { long startTime = System.currentTimeMillis(); EntityManager em = PersistenceManager.getEntityManager(); @@ -1276,20 +1273,37 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy if (!((Publisher) publisher).isAdmin()) { throw new UserMismatchException(new ErrorMessage("errors.AdminReqd")); } - new ValidateReplication(publisher).validateSetReplicationNodes(replicationConfiguration); + new ValidateReplication(publisher).validateSetReplicationNodes(replicationConfiguration,em); - org.apache.juddi.model.ReplicationConfiguration model = new ReplicationConfiguration(); - MappingApiToModel.mapReplicationConfiguration(replicationConfiguration, model, em); - em.persist(model); + org.apache.juddi.model.ReplicationConfiguration model = null; + try { + model = (ReplicationConfiguration) em.createQuery("select c FROM ReplicationConfiguration c order by c.serialNumber desc").getSingleResult(); + } catch (Exception ex) { + } + if (model == null) { + model = new ReplicationConfiguration(); + MappingApiToModel.mapReplicationConfiguration(replicationConfiguration, model, em); + model.setSerialNumber(System.currentTimeMillis()); + em.persist(model); + + } else { + //long oldid = model.getSerialNumber(); + em.remove(model); + model = new ReplicationConfiguration(); + MappingApiToModel.mapReplicationConfiguration(replicationConfiguration, model, em); + model.setSerialNumber(System.currentTimeMillis()); + em.persist(model); + + } tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.SET_REPLICATION_NODES, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.SET_REPLICATION_NODES, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { if (tx.isActive()) { @@ -1327,11 +1341,11 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.GET_ALL_NODES, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.GET_ALL_NODES, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { if (tx.isActive()) { @@ -1366,11 +1380,11 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy tx.commit(); long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.ADMIN_SAVE_SUB, - QueryStatus.SUCCESS, procTime); + QueryStatus.SUCCESS, procTime); } catch (DispositionReportFaultMessage drfm) { long procTime = System.currentTimeMillis() - startTime; serviceCounter.update(JUDDIQuery.ADMIN_SAVE_SUB, - QueryStatus.FAILED, procTime); + QueryStatus.FAILED, procTime); throw drfm; } finally { http://git-wip-us.apache.org/repos/asf/juddi/blob/a975954b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java ---------------------------------------------------------------------- diff --git a/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java index 65739a4..b42cf81 100644 --- a/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java +++ b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java @@ -35,7 +35,6 @@ import org.apache.juddi.model.Address; import org.apache.juddi.model.BindingTemplate; import org.apache.juddi.model.BusinessService; import org.apache.juddi.model.CanonicalizationMethod; -import org.apache.juddi.model.CommunicationGraph; import org.apache.juddi.model.Contact; import org.apache.juddi.model.ControlMessage; import org.apache.juddi.model.Edge; @@ -60,6 +59,7 @@ import org.uddi.api_v3.Description; import org.uddi.api_v3.OperationalInfo; import org.uddi.api_v3.SaveBinding; import org.uddi.repl_v3.ChangeRecord; +import org.uddi.repl_v3.CommunicationGraph; import org.uddi.repl_v3.ReplicationConfiguration; import org.uddi.sub_v3.ObjectFactory; import org.uddi.v3_service.DispositionReportFaultMessage; @@ -1425,7 +1425,7 @@ public class MappingApiToModel { if (replicationConfiguration.getRegistryContact() != null) { model.setContact(mapContact(replicationConfiguration.getRegistryContact().getContact())); } - model.setCommunicationGraph(mapCommunicationGraph(replicationConfiguration.getCommunicationGraph(), em)); + mapCommunicationGraph(model,replicationConfiguration.getCommunicationGraph(), em); model.setOperator(mapOperators(replicationConfiguration.getOperator())); if (replicationConfiguration.getSignature() != null) { model.setSignatures(mapApiSignaturesToModelSignatures(replicationConfiguration.getSignature())); @@ -1443,12 +1443,65 @@ public class MappingApiToModel { return model; } - private static CommunicationGraph mapCommunicationGraph(org.uddi.repl_v3.CommunicationGraph communicationGraph, EntityManager em) throws DispositionReportFaultMessage { - if (communicationGraph == null) { + + + private static List mapOperators(List api) throws DispositionReportFaultMessage { + if (api == null) { return null; } - CommunicationGraph model = new CommunicationGraph(); + List model = new ArrayList(); + for (int i = 0; i < api.size(); i++) { + Operator op = new Operator(); + op.setSoapReplicationURL(api.get(i).getSoapReplicationURL()); + if (!api.get(i).getContact().isEmpty()) { + op.setContact(new ArrayList()); + for (int k = 0; k < api.get(i).getContact().size(); k++) { + op.getContact().add(mapContact(api.get(i).getContact().get(k))); + } + } + op.setOperatorNodeID(api.get(i).getOperatorNodeID()); + op.setOperatorStatus(mapOperatorStatus(api.get(i).getOperatorStatus())); + if (!api.get(i).getKeyInfo().isEmpty()) { + op.setKeyInfo(new ArrayList()); + for (int k = 0; k < api.get(i).getKeyInfo().size(); k++) { + org.apache.juddi.model.KeyInfo modelKeyInfo = new KeyInfo(); + modelKeyInfo.setXmlID(api.get(i).getKeyInfo().get(i).getId()); + modelKeyInfo.setKeyDataValue(new ArrayList()); + if (api.get(i).getKeyInfo().get(i).getContent() != null) { + modelKeyInfo.setKeyDataValue(new ArrayList()); + for (int x = 0; x < api.get(i).getKeyInfo().get(k).getContent().size(); x++) { + mapKeyValue((JAXBElement) api.get(i).getKeyInfo().get(k).getContent().get(x), modelKeyInfo.getKeyDataValue()); + } + } + op.getKeyInfo().add(modelKeyInfo); + } + + } + model.add(op); + + } + return model; + } + + private static OperatorStatusType mapOperatorStatus(org.uddi.repl_v3.OperatorStatusType operatorStatus) { + switch (operatorStatus) { + case NEW: + return OperatorStatusType.NEW; + case NORMAL: + return OperatorStatusType.NORMAL; + case RESIGNED: + return OperatorStatusType.RESIGNED; + } + return null; + } + + private static void mapCommunicationGraph(org.apache.juddi.model.ReplicationConfiguration model, CommunicationGraph communicationGraph, EntityManager em) throws ValueNotAllowedException { + + if (model == null) { + return; + } + /** * Following the listing of nodes is the controlledMessage * element that lists the set of messages over which this @@ -1478,7 +1531,7 @@ public class MappingApiToModel { List ret = new ArrayList(); for (int i = 0; i < communicationGraph.getEdge().size(); i++) { Edge e = new Edge(); - e.setCommunicationGraph(model); + if (communicationGraph.getEdge().get(i).getMessageReceiver() == null) { throw new ValueNotAllowedException(new ErrorMessage("errors.replication.configNodeNotFound", communicationGraph.getEdge().get(i).getMessageReceiver())); } @@ -1524,61 +1577,7 @@ public class MappingApiToModel { ret.add(e); } model.setEdge(ret); - } - - return model; - - } - - private static List mapOperators(List api) throws DispositionReportFaultMessage { - if (api == null) { - return null; - } - List model = new ArrayList(); - for (int i = 0; i < api.size(); i++) { - Operator op = new Operator(); - op.setSoapReplicationURL(api.get(i).getSoapReplicationURL()); + }} } + - if (!api.get(i).getContact().isEmpty()) { - op.setContact(new ArrayList()); - for (int k = 0; k < api.get(i).getContact().size(); k++) { - op.getContact().add(mapContact(api.get(i).getContact().get(k))); - } - } - op.setOperatorNodeID(api.get(i).getOperatorNodeID()); - op.setOperatorStatus(mapOperatorStatus(api.get(i).getOperatorStatus())); - if (!api.get(i).getKeyInfo().isEmpty()) { - op.setKeyInfo(new ArrayList()); - for (int k = 0; k < api.get(i).getKeyInfo().size(); k++) { - org.apache.juddi.model.KeyInfo modelKeyInfo = new KeyInfo(); - modelKeyInfo.setXmlID(api.get(i).getKeyInfo().get(i).getId()); - modelKeyInfo.setKeyDataValue(new ArrayList()); - if (api.get(i).getKeyInfo().get(i).getContent() != null) { - modelKeyInfo.setKeyDataValue(new ArrayList()); - for (int x = 0; x < api.get(i).getKeyInfo().get(k).getContent().size(); x++) { - mapKeyValue((JAXBElement) api.get(i).getKeyInfo().get(k).getContent().get(x), modelKeyInfo.getKeyDataValue()); - } - } - op.getKeyInfo().add(modelKeyInfo); - } - - } - model.add(op); - - } - return model; - } - - private static OperatorStatusType mapOperatorStatus(org.uddi.repl_v3.OperatorStatusType operatorStatus) { - switch (operatorStatus) { - case NEW: - return OperatorStatusType.NEW; - case NORMAL: - return OperatorStatusType.NORMAL; - case RESIGNED: - return OperatorStatusType.RESIGNED; - } - return null; - } -} http://git-wip-us.apache.org/repos/asf/juddi/blob/a975954b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java ---------------------------------------------------------------------- diff --git a/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java index 0b5d9a3..50535da 100644 --- a/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java +++ b/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java @@ -1220,7 +1220,7 @@ public class MappingModelToApi { item.setTimeOfConfigurationUpdate(find.getTimeOfConfigurationUpdate()); CommunicationGraph xcom = new CommunicationGraph(); - mapCommunicationGraph(find.getCommunicationGraph(), xcom); + mapCommunicationGraph(find, xcom); item.setCommunicationGraph(xcom); //(List modelContactList, //org.uddi.api_v3.Contacts apiContacts, @@ -1263,7 +1263,7 @@ public class MappingModelToApi { } - private static void mapCommunicationGraph(org.apache.juddi.model.CommunicationGraph model, + private static void mapCommunicationGraph(org.apache.juddi.model.ReplicationConfiguration model, CommunicationGraph api) { mapEdge(model.getEdge(), api.getEdge()); http://git-wip-us.apache.org/repos/asf/juddi/blob/a975954b/juddi-core/src/main/java/org/apache/juddi/model/CommunicationGraph.java ---------------------------------------------------------------------- diff --git a/juddi-core/src/main/java/org/apache/juddi/model/CommunicationGraph.java b/juddi-core/src/main/java/org/apache/juddi/model/CommunicationGraph.java deleted file mode 100644 index b2ec7d0..0000000 --- a/juddi-core/src/main/java/org/apache/juddi/model/CommunicationGraph.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright 2001-2008 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.model; - -import java.io.Serializable; -import java.util.ArrayList; - -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.OneToMany; -import javax.persistence.Table; -import javax.persistence.TableGenerator; - -@Entity -@Table(name = "j3_chg_graph") -public class CommunicationGraph implements Serializable { - - private Long id; - private List node; - private List controlledMessage; - private List edge; - - - @OneToMany(targetEntity = Node.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) - public List getNode() { - if (node == null) { - node = new ArrayList(); - } - return this.node; - } - - public void setNode(List nodes) { - - this.node = nodes; - } - - @OneToMany(targetEntity = ControlMessage.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) - public List getControlMessage() { - if (controlledMessage == null) { - controlledMessage = new ArrayList(); - } - return this.controlledMessage; - } - - public void setControlMessage(List controlledMessages) { - - this.controlledMessage = controlledMessages; - } - - // @OneToMany( fetch = FetchType.LAZY,targetEntity = Edge.class, mappedBy = "Edge") - @OneToMany(targetEntity = Edge.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) - public List getEdge() { - return this.edge; - } - - public void setEdge( List edges) { - this.edge=edges; - } - - @Id - @Column(name = "j3_id") - @GeneratedValue(strategy = GenerationType.TABLE, - generator = "cfggrphGen") - @TableGenerator(name = "cfggrphGen", - table = "JPAGEN_CFGGRPH", - pkColumnName = "NAME", - pkColumnValue = "JPAGEN_PERSON_GEN", - valueColumnName = "VALUE") - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } -} - \ No newline at end of file http://git-wip-us.apache.org/repos/asf/juddi/blob/a975954b/juddi-core/src/main/java/org/apache/juddi/model/Edge.java ---------------------------------------------------------------------- diff --git a/juddi-core/src/main/java/org/apache/juddi/model/Edge.java b/juddi-core/src/main/java/org/apache/juddi/model/Edge.java index 768bb23..bc25990 100644 --- a/juddi-core/src/main/java/org/apache/juddi/model/Edge.java +++ b/juddi-core/src/main/java/org/apache/juddi/model/Edge.java @@ -40,26 +40,9 @@ public class Edge { private Node messageSender; private Node messageReceiver; private Set messageReceiverAlternate; - private CommunicationGraph parent; - - /** - * link the parent object - * @param val - */ - @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY, targetEntity = CommunicationGraph.class) - //@JoinColumn(name = "OWNER_ID") - public CommunicationGraph getCommunicationGraph() { - return parent; - } - - /** - * link the parent object - * @param val - */ - public void setCommunicationGraph(CommunicationGraph val) { - parent = val; - } + private ReplicationConfiguration parent; + /** * The message elements contain the local name of the Replication API message elements * @return http://git-wip-us.apache.org/repos/asf/juddi/blob/a975954b/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfiguration.java ---------------------------------------------------------------------- diff --git a/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfiguration.java b/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfiguration.java index a481412..72c717b 100644 --- a/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfiguration.java +++ b/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfiguration.java @@ -43,7 +43,6 @@ public class ReplicationConfiguration implements Serializable { private Long serialNumber; private String timeOfConfigurationUpdate; private List operator = new ArrayList(0); - private CommunicationGraph communicationGraph; private BigInteger maximumTimeToSyncRegistry; private BigInteger maximumTimeToGetChanges; private List signatures = new ArrayList(0); @@ -77,13 +76,6 @@ public class ReplicationConfiguration implements Serializable { @Column(name = "serialnumb") @OrderBy(value = "SerialNumber DESC") @Id - @GeneratedValue(strategy = GenerationType.TABLE, - generator = "replcfgGen") - @TableGenerator(name = "replcfgGen", - table = "JPAGEN_REPLGEN", - pkColumnName = "NAME", - pkColumnValue = "JPAGEN_PERSON_GEN", - valueColumnName = "VALUE") public Long getSerialNumber() { return serialNumber; } @@ -131,26 +123,7 @@ public class ReplicationConfiguration implements Serializable { this.operator=v; } - /** - * Gets the value of the communicationGraph property. - * - * @return possible object is {@link CommunicationGraph } - * - */ - @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY, targetEntity = CommunicationGraph.class) - public CommunicationGraph getCommunicationGraph() { - return communicationGraph; - } - - /** - * Sets the value of the communicationGraph property. - * - * @param value allowed object is {@link CommunicationGraph } - * - */ - public void setCommunicationGraph(CommunicationGraph value) { - this.communicationGraph = value; - } + /** * Gets the value of the maximumTimeToSyncRegistry property. @@ -204,6 +177,47 @@ public class ReplicationConfiguration implements Serializable { this.signatures = signatures; } + private List node; + private List controlledMessage; + private List edge; + + //To use a Node or a String reference... + //Node will give us strict ref integ but makes a change history of the replication config impossible + //Strig increases code logic for ref integ,but makes chage history possible + @OneToMany(targetEntity = Node.class, orphanRemoval = false,fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.REFRESH, CascadeType.PERSIST}) + public List getNode() { + if (node == null) { + node = new ArrayList(); + } + return this.node; + } + + public void setNode(List nodes) { + + this.node = nodes; + } + + @OneToMany(targetEntity = ControlMessage.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) + public List getControlMessage() { + if (controlledMessage == null) { + controlledMessage = new ArrayList(); + } + return this.controlledMessage; + } + + public void setControlMessage(List controlledMessages) { + + this.controlledMessage = controlledMessages; + } + + // @OneToMany( fetch = FetchType.LAZY,targetEntity = Edge.class, mappedBy = "Edge") + @OneToMany(targetEntity = Edge.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL) + public List getEdge() { + return this.edge; + } + public void setEdge( List edges) { + this.edge=edges; + } }  \ No newline at end of file http://git-wip-us.apache.org/repos/asf/juddi/blob/a975954b/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 460c94d..6ede348 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,11 +17,15 @@ package org.apache.juddi.validation; import java.math.BigInteger; +import javax.persistence.EntityManager; import javax.xml.ws.WebServiceContext; +import org.apache.juddi.model.Node; import org.apache.juddi.model.UddiEntityPublisher; import org.apache.juddi.v3.error.ErrorMessage; import org.apache.juddi.v3.error.FatalErrorException; +import org.apache.juddi.v3.error.InvalidValueException; 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.ReplicationConfiguration; @@ -75,11 +79,11 @@ public class ValidateReplication extends ValidateUDDIApi { if (responseLimitVector != null) { for (int i = 0; i < responseLimitVector.getHighWaterMark().size(); i++) { if (responseLimitVector.getHighWaterMark().get(i).getOriginatingUSN() == null - || responseLimitVector.getHighWaterMark().get(i).getOriginatingUSN() <= 0) { + || responseLimitVector.getHighWaterMark().get(i).getOriginatingUSN() <= 0) { throw new FatalErrorException(new ErrorMessage("errors.replication.limitVectorNull")); } - if (responseLimitVector.getHighWaterMark().get(i).getNodeID()== null - || responseLimitVector.getHighWaterMark().get(i).getNodeID().trim().equalsIgnoreCase("")) { + if (responseLimitVector.getHighWaterMark().get(i).getNodeID() == null + || responseLimitVector.getHighWaterMark().get(i).getNodeID().trim().equalsIgnoreCase("")) { throw new FatalErrorException(new ErrorMessage("errors.replication.limitVectorNoNode")); } } @@ -111,8 +115,37 @@ public class ValidateReplication extends ValidateUDDIApi { return false; } - public void validateSetReplicationNodes(ReplicationConfiguration replicationConfiguration) throws DispositionReportFaultMessage { - + public void validateSetReplicationNodes(ReplicationConfiguration replicationConfiguration, EntityManager em) throws DispositionReportFaultMessage { + if (replicationConfiguration == null) { + throw new InvalidValueException(new ErrorMessage("errors.replication.configNull")); + + } + if (replicationConfiguration.getCommunicationGraph() != null) { + for (String s : replicationConfiguration.getCommunicationGraph().getNode()) { + Node find = em.find(org.apache.juddi.model.Node.class, s); + if (find == null) { + 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) { + throw new InvalidValueException(new ErrorMessage("errors.replication.configNodeNotFound")); + } + find = null; + find = em.find(org.apache.juddi.model.Node.class, s.getMessageSender()); + if (find == null) { + 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) { + throw new InvalidValueException(new ErrorMessage("errors.replication.configNodeNotFound")); + } + } + + } + } } } http://git-wip-us.apache.org/repos/asf/juddi/blob/a975954b/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 9665589..0a23c78 100644 --- a/juddi-core/src/main/resources/messages.properties +++ b/juddi-core/src/main/resources/messages.properties @@ -293,4 +293,4 @@ errors.replication.limitVectorNull=The high water mark vector limit specified Or 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.configNull=No replication config 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, \ No newline at end of file +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/a975954b/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 d1719c2..f64512f 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 @@ -322,6 +322,26 @@ public class API_160_ReplicationTest { Assert.assertNotNull(replicationNodes.getMaximumTimeToSyncRegistry()); Assert.assertNotNull(replicationNodes.getTimeOfConfigurationUpdate()); Assert.assertNotNull(replicationNodes.getSerialNumber()); + long firstcommit = replicationNodes.getSerialNumber(); + + + + r = new ReplicationConfiguration(); + r.setCommunicationGraph(new CommunicationGraph()); + // r.getCommunicationGraph().getEdge().add(new CommunicationGraph.Edge()); + r.getCommunicationGraph().getNode().add("test_node"); + + setReplicationNodes = juddi.setReplicationNodes(authInfoRoot, r); + + 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()); + Assert.assertTrue(firstcommit < replicationNodes.getSerialNumber()); } } http://git-wip-us.apache.org/repos/asf/juddi/blob/a975954b/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 afb2de7..adc4a7e 100644 --- a/juddi-core/src/test/resources/META-INF/persistence.xml +++ b/juddi-core/src/test/resources/META-INF/persistence.xml @@ -1,111 +1,101 @@ - - - - org.hibernate.ejb.HibernatePersistence - - - org.apache.juddi.model.Address - org.apache.juddi.model.AddressLine - org.apache.juddi.model.AuthToken - org.apache.juddi.model.BindingCategoryBag - org.apache.juddi.model.BindingDescr - org.apache.juddi.model.BindingTemplate - org.apache.juddi.model.BusinessCategoryBag - org.apache.juddi.model.BusinessDescr - org.apache.juddi.model.BusinessEntity - org.apache.juddi.model.BusinessIdentifier - org.apache.juddi.model.BusinessName - org.apache.juddi.model.BusinessService - org.apache.juddi.model.CanonicalizationMethod - org.apache.juddi.model.CategoryBag - org.apache.juddi.model.Clerk - org.apache.juddi.model.ClientSubscriptionInfo - org.apache.juddi.model.Contact - org.apache.juddi.model.ContactDescr - org.apache.juddi.model.DiscoveryUrl - org.apache.juddi.model.Email - org.apache.juddi.model.InstanceDetailsDescr - org.apache.juddi.model.InstanceDetailsDocDescr - org.apache.juddi.model.KeyedReference - org.apache.juddi.model.KeyedReferenceGroup - org.apache.juddi.model.KeyDataValue - org.apache.juddi.model.KeyInfo - org.apache.juddi.model.Node - org.apache.juddi.model.ObjectType - org.apache.juddi.model.ObjectTypeContent - org.apache.juddi.model.OverviewDoc - org.apache.juddi.model.OverviewDocDescr - org.apache.juddi.model.PersonName - org.apache.juddi.model.Phone - org.apache.juddi.model.Publisher - org.apache.juddi.model.PublisherAssertion - org.apache.juddi.model.PublisherAssertionId - org.apache.juddi.model.Reference - org.apache.juddi.model.ServiceCategoryBag - org.apache.juddi.model.ServiceDescr - org.apache.juddi.model.ServiceName - org.apache.juddi.model.ServiceProjection - org.apache.juddi.model.ServiceProjectionId - org.apache.juddi.model.Signature - org.apache.juddi.model.SignatureMethod - org.apache.juddi.model.SignatureTransform - org.apache.juddi.model.SignatureTransformDataValue - org.apache.juddi.model.SignatureValue - org.apache.juddi.model.SignedInfo - org.apache.juddi.model.Subscription - org.apache.juddi.model.SubscriptionChunkToken - org.apache.juddi.model.SubscriptionMatch - org.apache.juddi.model.TempKey - org.apache.juddi.model.TempKeyPK - org.apache.juddi.model.Tmodel - org.apache.juddi.model.TmodelCategoryBag - org.apache.juddi.model.TmodelDescr - org.apache.juddi.model.TmodelIdentifier - org.apache.juddi.model.TmodelInstanceInfo - org.apache.juddi.model.TmodelInstanceInfoDescr - org.apache.juddi.model.TransferToken - org.apache.juddi.model.TransferTokenKey - org.apache.juddi.model.UddiEntity - org.apache.juddi.model.UddiEntityPublisher - org.apache.juddi.model.ValueSetValues - - org.apache.juddi.model.ChangeRecord - org.apache.juddi.model.CommunicationGraph - org.apache.juddi.model.Operator - org.apache.juddi.model.ReplicationConfiguration - org.apache.juddi.model.Edge - org.apache.juddi.model.ControlMessage - org.apache.juddi.model.ReplicationMessage - - - - - - - - - - - - - - - - - - - - - - - + + + + org.hibernate.ejb.HibernatePersistence + + org.apache.juddi.model.Address + org.apache.juddi.model.AddressLine + org.apache.juddi.model.AuthToken + org.apache.juddi.model.BindingCategoryBag + org.apache.juddi.model.BindingDescr + org.apache.juddi.model.BindingTemplate + org.apache.juddi.model.BusinessCategoryBag + org.apache.juddi.model.BusinessDescr + org.apache.juddi.model.BusinessEntity + org.apache.juddi.model.BusinessIdentifier + org.apache.juddi.model.BusinessName + org.apache.juddi.model.BusinessService + org.apache.juddi.model.CanonicalizationMethod + org.apache.juddi.model.CategoryBag + org.apache.juddi.model.Clerk + org.apache.juddi.model.ClientSubscriptionInfo + org.apache.juddi.model.Contact + org.apache.juddi.model.ContactDescr + org.apache.juddi.model.DiscoveryUrl + org.apache.juddi.model.Email + org.apache.juddi.model.InstanceDetailsDescr + org.apache.juddi.model.InstanceDetailsDocDescr + org.apache.juddi.model.KeyedReference + org.apache.juddi.model.KeyedReferenceGroup + org.apache.juddi.model.KeyDataValue + org.apache.juddi.model.KeyInfo + org.apache.juddi.model.Node + org.apache.juddi.model.ObjectType + org.apache.juddi.model.ObjectTypeContent + org.apache.juddi.model.OverviewDoc + org.apache.juddi.model.OverviewDocDescr + org.apache.juddi.model.PersonName + org.apache.juddi.model.Phone + org.apache.juddi.model.Publisher + org.apache.juddi.model.PublisherAssertion + org.apache.juddi.model.PublisherAssertionId + org.apache.juddi.model.Reference + org.apache.juddi.model.ServiceCategoryBag + org.apache.juddi.model.ServiceDescr + org.apache.juddi.model.ServiceName + org.apache.juddi.model.ServiceProjection + org.apache.juddi.model.ServiceProjectionId + org.apache.juddi.model.Signature + org.apache.juddi.model.SignatureMethod + org.apache.juddi.model.SignatureTransform + org.apache.juddi.model.SignatureTransformDataValue + org.apache.juddi.model.SignatureValue + org.apache.juddi.model.SignedInfo + org.apache.juddi.model.Subscription + org.apache.juddi.model.SubscriptionChunkToken + org.apache.juddi.model.SubscriptionMatch + org.apache.juddi.model.TempKey + org.apache.juddi.model.TempKeyPK + org.apache.juddi.model.Tmodel + org.apache.juddi.model.TmodelCategoryBag + org.apache.juddi.model.TmodelDescr + org.apache.juddi.model.TmodelIdentifier + org.apache.juddi.model.TmodelInstanceInfo + org.apache.juddi.model.TmodelInstanceInfoDescr + org.apache.juddi.model.TransferToken + org.apache.juddi.model.TransferTokenKey + org.apache.juddi.model.UddiEntity + org.apache.juddi.model.UddiEntityPublisher + org.apache.juddi.model.ValueSetValues + org.apache.juddi.model.ChangeRecord + org.apache.juddi.model.CommunicationGraph + org.apache.juddi.model.Operator + org.apache.juddi.model.ReplicationConfiguration + org.apache.juddi.model.Edge + org.apache.juddi.model.ControlMessage + + + + + + + + + + + + + + + + + + + --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org For additional commands, e-mail: commits-help@juddi.apache.org