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:33 UTC
[12/28] 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/master
Commit: a975954b140694096ac3f81cd5bf77da19922cbb
Parents: 7aa78f6
Author: Alex <al...@apache.org>
Authored: Sat Nov 15 21:45:07 2014 -0500
Committer: Alex <al...@apache.org>
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 <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
*/
@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<String, org.apache.juddi.api_v3.ClientSubscriptionInfo> clientSubscriptionInfoMap
- = new HashMap<String, org.apache.juddi.api_v3.ClientSubscriptionInfo>();
+ = new HashMap<String, org.apache.juddi.api_v3.ClientSubscriptionInfo>();
//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<String> 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<org.apache.juddi.model.Clerk> 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<Operator> mapOperators(List<org.uddi.repl_v3.Operator> api) throws DispositionReportFaultMessage {
+ if (api == null) {
return null;
}
- CommunicationGraph model = new CommunicationGraph();
+ List<Operator> model = new ArrayList<Operator>();
+ 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<Contact>());
+ 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<KeyInfo>());
+ 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<KeyDataValue>());
+ if (api.get(i).getKeyInfo().get(i).getContent() != null) {
+ modelKeyInfo.setKeyDataValue(new ArrayList<KeyDataValue>());
+ 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<Edge> ret = new ArrayList<Edge>();
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<Operator> mapOperators(List<org.uddi.repl_v3.Operator> api) throws DispositionReportFaultMessage {
- if (api == null) {
- return null;
- }
- List<Operator> model = new ArrayList<Operator>();
- 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<Contact>());
- 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<KeyInfo>());
- 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<KeyDataValue>());
- if (api.get(i).getKeyInfo().get(i).getContent() != null) {
- modelKeyInfo.setKeyDataValue(new ArrayList<KeyDataValue>());
- 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<org.apache.juddi.model.Contact> 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> node;
- private List<ControlMessage> controlledMessage;
- private List<Edge> edge;
-
-
- @OneToMany(targetEntity = Node.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- public List<Node> getNode() {
- if (node == null) {
- node = new ArrayList<Node>();
- }
- return this.node;
- }
-
- public void setNode(List<Node> nodes) {
-
- this.node = nodes;
- }
-
- @OneToMany(targetEntity = ControlMessage.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- public List<ControlMessage> getControlMessage() {
- if (controlledMessage == null) {
- controlledMessage = new ArrayList<ControlMessage>();
- }
- return this.controlledMessage;
- }
-
- public void setControlMessage(List<ControlMessage> 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<Edge> getEdge() {
- return this.edge;
- }
-
- public void setEdge( List<Edge> 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<Node> 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> operator = new ArrayList<Operator>(0);
- private CommunicationGraph communicationGraph;
private BigInteger maximumTimeToSyncRegistry;
private BigInteger maximumTimeToGetChanges;
private List<Signature> signatures = new ArrayList<Signature>(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> node;
+ private List<ControlMessage> controlledMessage;
+ private List<Edge> 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<Node> getNode() {
+ if (node == null) {
+ node = new ArrayList<Node>();
+ }
+ return this.node;
+ }
+
+ public void setNode(List<Node> nodes) {
+
+ this.node = nodes;
+ }
+
+ @OneToMany(targetEntity = ControlMessage.class, fetch = FetchType.LAZY, cascade = CascadeType.ALL)
+ public List<ControlMessage> getControlMessage() {
+ if (controlledMessage == null) {
+ controlledMessage = new ArrayList<ControlMessage>();
+ }
+ return this.controlledMessage;
+ }
+
+ public void setControlMessage(List<ControlMessage> 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<Edge> getEdge() {
+ return this.edge;
+ }
+ public void setEdge( List<Edge> 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 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<persistence xmlns="http://java.sun.com/xml/ns/persistence"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
- version="1.0">
- <persistence-unit name="juddiDatabase" transaction-type="RESOURCE_LOCAL">
- <provider>org.hibernate.ejb.HibernatePersistence</provider>
-
- <!-- entity classes -->
- <class>org.apache.juddi.model.Address</class>
- <class>org.apache.juddi.model.AddressLine</class>
- <class>org.apache.juddi.model.AuthToken</class>
- <class>org.apache.juddi.model.BindingCategoryBag</class>
- <class>org.apache.juddi.model.BindingDescr</class>
- <class>org.apache.juddi.model.BindingTemplate</class>
- <class>org.apache.juddi.model.BusinessCategoryBag</class>
- <class>org.apache.juddi.model.BusinessDescr</class>
- <class>org.apache.juddi.model.BusinessEntity</class>
- <class>org.apache.juddi.model.BusinessIdentifier</class>
- <class>org.apache.juddi.model.BusinessName</class>
- <class>org.apache.juddi.model.BusinessService</class>
- <class>org.apache.juddi.model.CanonicalizationMethod</class>
- <class>org.apache.juddi.model.CategoryBag</class>
- <class>org.apache.juddi.model.Clerk</class>
- <class>org.apache.juddi.model.ClientSubscriptionInfo</class>
- <class>org.apache.juddi.model.Contact</class>
- <class>org.apache.juddi.model.ContactDescr</class>
- <class>org.apache.juddi.model.DiscoveryUrl</class>
- <class>org.apache.juddi.model.Email</class>
- <class>org.apache.juddi.model.InstanceDetailsDescr</class>
- <class>org.apache.juddi.model.InstanceDetailsDocDescr</class>
- <class>org.apache.juddi.model.KeyedReference</class>
- <class>org.apache.juddi.model.KeyedReferenceGroup</class>
- <class>org.apache.juddi.model.KeyDataValue</class>
- <class>org.apache.juddi.model.KeyInfo</class>
- <class>org.apache.juddi.model.Node</class>
- <class>org.apache.juddi.model.ObjectType</class>
- <class>org.apache.juddi.model.ObjectTypeContent</class>
- <class>org.apache.juddi.model.OverviewDoc</class>
- <class>org.apache.juddi.model.OverviewDocDescr</class>
- <class>org.apache.juddi.model.PersonName</class>
- <class>org.apache.juddi.model.Phone</class>
- <class>org.apache.juddi.model.Publisher</class>
- <class>org.apache.juddi.model.PublisherAssertion</class>
- <class>org.apache.juddi.model.PublisherAssertionId</class>
- <class>org.apache.juddi.model.Reference</class>
- <class>org.apache.juddi.model.ServiceCategoryBag</class>
- <class>org.apache.juddi.model.ServiceDescr</class>
- <class>org.apache.juddi.model.ServiceName</class>
- <class>org.apache.juddi.model.ServiceProjection</class>
- <class>org.apache.juddi.model.ServiceProjectionId</class>
- <class>org.apache.juddi.model.Signature</class>
- <class>org.apache.juddi.model.SignatureMethod</class>
- <class>org.apache.juddi.model.SignatureTransform</class>
- <class>org.apache.juddi.model.SignatureTransformDataValue</class>
- <class>org.apache.juddi.model.SignatureValue</class>
- <class>org.apache.juddi.model.SignedInfo</class>
- <class>org.apache.juddi.model.Subscription</class>
- <class>org.apache.juddi.model.SubscriptionChunkToken</class>
- <class>org.apache.juddi.model.SubscriptionMatch</class>
- <class>org.apache.juddi.model.TempKey</class>
- <class>org.apache.juddi.model.TempKeyPK</class>
- <class>org.apache.juddi.model.Tmodel</class>
- <class>org.apache.juddi.model.TmodelCategoryBag</class>
- <class>org.apache.juddi.model.TmodelDescr</class>
- <class>org.apache.juddi.model.TmodelIdentifier</class>
- <class>org.apache.juddi.model.TmodelInstanceInfo</class>
- <class>org.apache.juddi.model.TmodelInstanceInfoDescr</class>
- <class>org.apache.juddi.model.TransferToken</class>
- <class>org.apache.juddi.model.TransferTokenKey</class>
- <class>org.apache.juddi.model.UddiEntity</class>
- <class>org.apache.juddi.model.UddiEntityPublisher</class>
- <class>org.apache.juddi.model.ValueSetValues</class>
-
- <class>org.apache.juddi.model.ChangeRecord</class>
- <class>org.apache.juddi.model.CommunicationGraph</class>
- <class>org.apache.juddi.model.Operator</class>
- <class>org.apache.juddi.model.ReplicationConfiguration</class>
- <class>org.apache.juddi.model.Edge</class>
- <class>org.apache.juddi.model.ControlMessage</class>
- <class>org.apache.juddi.model.ReplicationMessage</class>
-
- <properties>
- <property name="hibernate.archive.autodetection" value="class"/>
- <property name="hibernate.hbm2ddl.auto" value="update"/>
- <property name="hibernate.show_sql" value="false"/>
-
- <!-- derby connection properties -->
- <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
- <property name="hibernate.connection.driver_class" value="org.apache.derby.jdbc.EmbeddedDriver"/>
- <property name="hibernate.connection.url" value="jdbc:derby:memory:juddi-derby-test-db;create=true"/>
- <property name="hibernate.connection.username" value=""/>
- <property name="hibernate.connection.password" value=""/>
-
- <!-- mysql connection properties
-
- <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
- <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
- <property name="hibernate.connection.username" value="juddiv3" />
- <property name="hibernate.connection.password" value="" />
- <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/juddiv3" />
--->
-
- <!-- connection pool properties -->
- <property name="hibernate.dbcp.maxActive" value="100"/>
- <property name="hibernate.dbcp.maxIdle" value="30"/>
- <property name="hibernate.dbcp.maxWait" value="10000"/>
-
- </properties>
- </persistence-unit>
-</persistence>
+<?xml version="1.0" encoding="UTF-8"?>
+<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
+ <persistence-unit name="juddiDatabase" transaction-type="RESOURCE_LOCAL">
+ <provider>org.hibernate.ejb.HibernatePersistence</provider>
+ <!-- entity classes -->
+ <class>org.apache.juddi.model.Address</class>
+ <class>org.apache.juddi.model.AddressLine</class>
+ <class>org.apache.juddi.model.AuthToken</class>
+ <class>org.apache.juddi.model.BindingCategoryBag</class>
+ <class>org.apache.juddi.model.BindingDescr</class>
+ <class>org.apache.juddi.model.BindingTemplate</class>
+ <class>org.apache.juddi.model.BusinessCategoryBag</class>
+ <class>org.apache.juddi.model.BusinessDescr</class>
+ <class>org.apache.juddi.model.BusinessEntity</class>
+ <class>org.apache.juddi.model.BusinessIdentifier</class>
+ <class>org.apache.juddi.model.BusinessName</class>
+ <class>org.apache.juddi.model.BusinessService</class>
+ <class>org.apache.juddi.model.CanonicalizationMethod</class>
+ <class>org.apache.juddi.model.CategoryBag</class>
+ <class>org.apache.juddi.model.Clerk</class>
+ <class>org.apache.juddi.model.ClientSubscriptionInfo</class>
+ <class>org.apache.juddi.model.Contact</class>
+ <class>org.apache.juddi.model.ContactDescr</class>
+ <class>org.apache.juddi.model.DiscoveryUrl</class>
+ <class>org.apache.juddi.model.Email</class>
+ <class>org.apache.juddi.model.InstanceDetailsDescr</class>
+ <class>org.apache.juddi.model.InstanceDetailsDocDescr</class>
+ <class>org.apache.juddi.model.KeyedReference</class>
+ <class>org.apache.juddi.model.KeyedReferenceGroup</class>
+ <class>org.apache.juddi.model.KeyDataValue</class>
+ <class>org.apache.juddi.model.KeyInfo</class>
+ <class>org.apache.juddi.model.Node</class>
+ <class>org.apache.juddi.model.ObjectType</class>
+ <class>org.apache.juddi.model.ObjectTypeContent</class>
+ <class>org.apache.juddi.model.OverviewDoc</class>
+ <class>org.apache.juddi.model.OverviewDocDescr</class>
+ <class>org.apache.juddi.model.PersonName</class>
+ <class>org.apache.juddi.model.Phone</class>
+ <class>org.apache.juddi.model.Publisher</class>
+ <class>org.apache.juddi.model.PublisherAssertion</class>
+ <class>org.apache.juddi.model.PublisherAssertionId</class>
+ <class>org.apache.juddi.model.Reference</class>
+ <class>org.apache.juddi.model.ServiceCategoryBag</class>
+ <class>org.apache.juddi.model.ServiceDescr</class>
+ <class>org.apache.juddi.model.ServiceName</class>
+ <class>org.apache.juddi.model.ServiceProjection</class>
+ <class>org.apache.juddi.model.ServiceProjectionId</class>
+ <class>org.apache.juddi.model.Signature</class>
+ <class>org.apache.juddi.model.SignatureMethod</class>
+ <class>org.apache.juddi.model.SignatureTransform</class>
+ <class>org.apache.juddi.model.SignatureTransformDataValue</class>
+ <class>org.apache.juddi.model.SignatureValue</class>
+ <class>org.apache.juddi.model.SignedInfo</class>
+ <class>org.apache.juddi.model.Subscription</class>
+ <class>org.apache.juddi.model.SubscriptionChunkToken</class>
+ <class>org.apache.juddi.model.SubscriptionMatch</class>
+ <class>org.apache.juddi.model.TempKey</class>
+ <class>org.apache.juddi.model.TempKeyPK</class>
+ <class>org.apache.juddi.model.Tmodel</class>
+ <class>org.apache.juddi.model.TmodelCategoryBag</class>
+ <class>org.apache.juddi.model.TmodelDescr</class>
+ <class>org.apache.juddi.model.TmodelIdentifier</class>
+ <class>org.apache.juddi.model.TmodelInstanceInfo</class>
+ <class>org.apache.juddi.model.TmodelInstanceInfoDescr</class>
+ <class>org.apache.juddi.model.TransferToken</class>
+ <class>org.apache.juddi.model.TransferTokenKey</class>
+ <class>org.apache.juddi.model.UddiEntity</class>
+ <class>org.apache.juddi.model.UddiEntityPublisher</class>
+ <class>org.apache.juddi.model.ValueSetValues</class>
+ <class>org.apache.juddi.model.ChangeRecord</class>
+ <class>org.apache.juddi.model.CommunicationGraph</class>
+ <class>org.apache.juddi.model.Operator</class>
+ <class>org.apache.juddi.model.ReplicationConfiguration</class>
+ <class>org.apache.juddi.model.Edge</class>
+ <class>org.apache.juddi.model.ControlMessage</class>
+ <properties>
+ <property name="hibernate.archive.autodetection" value="class"/>
+ <property name="hibernate.hbm2ddl.auto" value="update"/>
+ <property name="hibernate.show_sql" value="false"/>
+ <!-- derby connection properties -->
+ <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
+ <property name="hibernate.connection.driver_class" value="org.apache.derby.jdbc.EmbeddedDriver"/>
+ <property name="hibernate.connection.url" value="jdbc:derby:memory:juddi-derby-test-db;create=true"/>
+ <property name="hibernate.connection.username" value=""/>
+ <property name="hibernate.connection.password" value=""/>
+ <!-- mysql connection properties
+
+ <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
+ <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
+ <property name="hibernate.connection.username" value="juddiv3" />
+ <property name="hibernate.connection.password" value="" />
+ <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/juddiv3" />
+-->
+ <!-- connection pool properties -->
+ <!--<property name = "hibernate.show_sql" value = "true" />-->
+ <property name="hibernate.dbcp.maxActive" value="100"/>
+ <property name="hibernate.dbcp.maxIdle" value="30"/>
+ <property name="hibernate.dbcp.maxWait" value="10000"/>
+ </properties>
+ </persistence-unit>
+</persistence>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org