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:26 UTC
[05/28] juddi git commit: JUDDI-241 working change journal NOJIRA
removing a number of unnecessary TODO statements
http://git-wip-us.apache.org/repos/asf/juddi/blob/8b95902b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
index 2e1fdbb..98c6c15 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
@@ -14,21 +14,53 @@
* limitations under the License.
*
*/
-
package org.apache.juddi.api.impl;
import java.io.StringWriter;
+import java.io.UnsupportedEncodingException;
+import java.util.ArrayList;
import java.util.Date;
+import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.List;
-import java.util.ArrayList;
-
+import java.util.logging.Level;
+import java.util.logging.Logger;
import javax.jws.WebService;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.xml.bind.JAXB;
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
import javax.xml.ws.Holder;
-
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.api.util.PublicationQuery;
+import org.apache.juddi.api.util.QueryStatus;
+import org.apache.juddi.config.AppConfig;
+import org.apache.juddi.config.PersistenceManager;
+import org.apache.juddi.config.Property;
+import org.apache.juddi.mapping.MappingApiToModel;
+import org.apache.juddi.mapping.MappingModelToApi;
+import org.apache.juddi.model.BindingTemplate;
+import org.apache.juddi.model.BusinessEntity;
+import org.apache.juddi.model.BusinessService;
+import org.apache.juddi.model.ChangeRecord;
+import org.apache.juddi.model.Tmodel;
+import org.apache.juddi.model.UddiEntityPublisher;
+import org.apache.juddi.query.DeletePublisherAssertionByBusinessQuery;
+import org.apache.juddi.query.FetchBusinessEntitiesQuery;
+import org.apache.juddi.query.FetchTModelsQuery;
+import org.apache.juddi.query.FindBusinessByPublisherQuery;
+import org.apache.juddi.query.FindPublisherAssertionByBusinessQuery;
+import org.apache.juddi.query.FindTModelByPublisherQuery;
+import org.apache.juddi.query.TModelQuery;
+import org.apache.juddi.query.util.DynamicQuery;
+import org.apache.juddi.query.util.FindQualifiers;
+import org.apache.juddi.replication.ReplicationNotifier;
+import org.apache.juddi.v3.error.ErrorMessage;
+import org.apache.juddi.v3.error.FatalErrorException;
+import org.apache.juddi.validation.ValidatePublish;
import org.uddi.api_v3.AddPublisherAssertions;
import org.uddi.api_v3.AssertionStatusItem;
import org.uddi.api_v3.BindingDetail;
@@ -41,6 +73,8 @@ import org.uddi.api_v3.DeleteService;
import org.uddi.api_v3.DeleteTModel;
import org.uddi.api_v3.GetRegisteredInfo;
import org.uddi.api_v3.InfoSelection;
+import org.uddi.api_v3.ListDescription;
+import org.uddi.api_v3.OperationalInfo;
import org.uddi.api_v3.PublisherAssertion;
import org.uddi.api_v3.RegisteredInfo;
import org.uddi.api_v3.SaveBinding;
@@ -49,885 +83,1234 @@ import org.uddi.api_v3.SaveService;
import org.uddi.api_v3.SaveTModel;
import org.uddi.api_v3.ServiceDetail;
import org.uddi.api_v3.TModelDetail;
+import org.uddi.repl_v3.ChangeRecordDelete;
+import org.uddi.repl_v3.ChangeRecordDeleteAssertion;
+import org.uddi.repl_v3.ChangeRecordHide;
+import org.uddi.repl_v3.ChangeRecordIDType;
+import org.uddi.repl_v3.ChangeRecordNewData;
+import org.uddi.repl_v3.ChangeRecordPublisherAssertion;
+import org.uddi.repl_v3.FromSignatures;
import org.uddi.v3_service.DispositionReportFaultMessage;
import org.uddi.v3_service.UDDIPublicationPortType;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.juddi.mapping.MappingApiToModel;
-import org.apache.juddi.mapping.MappingModelToApi;
-import org.apache.juddi.v3.error.ErrorMessage;
-import org.apache.juddi.v3.error.FatalErrorException;
-import org.apache.juddi.validation.ValidatePublish;
-import org.apache.juddi.query.FetchBusinessEntitiesQuery;
-import org.apache.juddi.query.FetchTModelsQuery;
-import org.apache.juddi.query.FindBusinessByPublisherQuery;
-import org.apache.juddi.query.FindTModelByPublisherQuery;
-import org.apache.juddi.query.FindPublisherAssertionByBusinessQuery;
-import org.apache.juddi.query.DeletePublisherAssertionByBusinessQuery;
-import org.apache.juddi.query.TModelQuery;
-import org.apache.juddi.model.UddiEntityPublisher;
-import org.apache.juddi.api.util.PublicationQuery;
-import org.apache.juddi.api.util.QueryStatus;
-import org.apache.juddi.config.AppConfig;
-import org.apache.juddi.config.PersistenceManager;
-import org.apache.juddi.config.Property;
-import org.apache.juddi.query.util.DynamicQuery;
-import org.apache.juddi.query.util.FindQualifiers;
-import org.uddi.api_v3.ListDescription;
/**
* This class implements the UDDI Publication Service
+ *
* @author <a href="mailto:jfaath@apache.org">Jeff Faath</a> (and many others)
+ * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a> added support for
+ * replication and several bug fixes
*/
-@WebService(serviceName="UDDIPublicationService",
- endpointInterface="org.uddi.v3_service.UDDIPublicationPortType",
- targetNamespace = "urn:uddi-org:v3_service")
+@WebService(serviceName = "UDDIPublicationService",
+ endpointInterface = "org.uddi.v3_service.UDDIPublicationPortType",
+ targetNamespace = "urn:uddi-org:v3_service")
public class UDDIPublicationImpl extends AuthenticatedService implements UDDIPublicationPortType {
private static Log log = LogFactory.getLog(UDDIInquiryImpl.class);
private UDDIServiceCounter serviceCounter;
-
+
+ private static DatatypeFactory df = null;
+
public UDDIPublicationImpl() {
- super();
- serviceCounter = ServiceCounterLifecycleResource.getServiceCounter(UDDIPublicationImpl.class);
- }
-
-
-
- public void addPublisherAssertions(AddPublisherAssertions body)
- throws DispositionReportFaultMessage {
- long startTime = System.currentTimeMillis();
-
- EntityManager em = PersistenceManager.getEntityManager();
- EntityTransaction tx = em.getTransaction();
- try {
- tx.begin();
-
- UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
-
- new ValidatePublish(publisher).validateAddPublisherAssertions(em, body);
-
- List<org.uddi.api_v3.PublisherAssertion> apiPubAssertionList = body.getPublisherAssertion();
- for (org.uddi.api_v3.PublisherAssertion apiPubAssertion : apiPubAssertionList) {
-
- org.apache.juddi.model.PublisherAssertion modelPubAssertion = new org.apache.juddi.model.PublisherAssertion();
-
- MappingApiToModel.mapPublisherAssertion(apiPubAssertion, modelPubAssertion);
-
- org.apache.juddi.model.PublisherAssertion existingPubAssertion = em.find(modelPubAssertion.getClass(), modelPubAssertion.getId());
- boolean persistNewAssertion = true;
- if (existingPubAssertion != null) {
- if (modelPubAssertion.getTmodelKey().equalsIgnoreCase(existingPubAssertion.getTmodelKey()) &&
- modelPubAssertion.getKeyName().equalsIgnoreCase(existingPubAssertion.getKeyName()) &&
- modelPubAssertion.getKeyValue().equalsIgnoreCase(existingPubAssertion.getKeyValue())) {
- // This pub assertion is already been "asserted". Simply need to set the "check" value on the existing (and persistent) assertion
- if (publisher.isOwner(existingPubAssertion.getBusinessEntityByFromKey()))
- existingPubAssertion.setFromCheck("true");
- if (publisher.isOwner(existingPubAssertion.getBusinessEntityByToKey()))
- existingPubAssertion.setToCheck("true");
-
- persistNewAssertion = false;
- }
- else {
+ super();
+ serviceCounter = ServiceCounterLifecycleResource.getServiceCounter(UDDIPublicationImpl.class);
+ if (df == null) {
+ try {
+ df = DatatypeFactory.newInstance();
+ } catch (DatatypeConfigurationException ex) {
+ logger.fatal(ex);
+ }
+ }
+ }
+
+ @Override
+ public void addPublisherAssertions(AddPublisherAssertions body)
+ throws DispositionReportFaultMessage {
+ long startTime = System.currentTimeMillis();
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+
+ new ValidatePublish(publisher).validateAddPublisherAssertions(em, body);
+
+ List<org.uddi.api_v3.PublisherAssertion> apiPubAssertionList = body.getPublisherAssertion();
+ List<ChangeRecord> changes = new ArrayList<ChangeRecord>();
+ for (org.uddi.api_v3.PublisherAssertion apiPubAssertion : apiPubAssertionList) {
+
+ org.apache.juddi.model.PublisherAssertion modelPubAssertion = new org.apache.juddi.model.PublisherAssertion();
+
+ MappingApiToModel.mapPublisherAssertion(apiPubAssertion, modelPubAssertion);
+
+ org.apache.juddi.model.PublisherAssertion existingPubAssertion = em.find(modelPubAssertion.getClass(), modelPubAssertion.getId());
+ boolean persistNewAssertion = true;
+ if (existingPubAssertion != null) {
+ if (modelPubAssertion.getTmodelKey().equalsIgnoreCase(existingPubAssertion.getTmodelKey())
+ && modelPubAssertion.getKeyName().equalsIgnoreCase(existingPubAssertion.getKeyName())
+ && modelPubAssertion.getKeyValue().equalsIgnoreCase(existingPubAssertion.getKeyValue())) {
+ // This pub assertion is already been "asserted". Simply need to set the "check" value on the existing (and persistent) assertion
+ if (publisher.isOwner(existingPubAssertion.getBusinessEntityByFromKey())) {
+ existingPubAssertion.setFromCheck("true");
+ }
+ if (publisher.isOwner(existingPubAssertion.getBusinessEntityByToKey())) {
+ existingPubAssertion.setToCheck("true");
+ }
+
+ persistNewAssertion = false;
+ } else {
// Otherwise, it is a new relationship between these entities. Remove the old one so the new one can be added.
- // TODO: the model only seems to allow one assertion per two business (primary key is fromKey and toKey). Spec seems to imply as
- // many relationships as desired (the differentiator would be the keyedRef values).
- em.remove(existingPubAssertion);
- }
- }
-
- if (persistNewAssertion) {
- org.apache.juddi.model.BusinessEntity beFrom = em.find(org.apache.juddi.model.BusinessEntity.class, modelPubAssertion.getId().getFromKey());
- org.apache.juddi.model.BusinessEntity beTo = em.find(org.apache.juddi.model.BusinessEntity.class, modelPubAssertion.getId().getToKey());
- modelPubAssertion.setBusinessEntityByFromKey(beFrom);
- modelPubAssertion.setBusinessEntityByToKey(beTo);
-
- modelPubAssertion.setFromCheck("false");
- modelPubAssertion.setToCheck("false");
-
- em.persist(modelPubAssertion);
-
- if (publisher.isOwner(modelPubAssertion.getBusinessEntityByFromKey()))
- modelPubAssertion.setFromCheck("true");
- if (publisher.isOwner(modelPubAssertion.getBusinessEntityByToKey()))
- modelPubAssertion.setToCheck("true");
- }
-
- }
-
- tx.commit();
+ // TODO: the model only seems to allow one assertion per two business (primary key is fromKey and toKey). Spec seems to imply as
+ // many relationships as desired (the differentiator would be the keyedRef values).
+ em.remove(existingPubAssertion);
+ }
+ }
+
+ if (persistNewAssertion) {
+ org.apache.juddi.model.BusinessEntity beFrom = em.find(org.apache.juddi.model.BusinessEntity.class, modelPubAssertion.getId().getFromKey());
+ org.apache.juddi.model.BusinessEntity beTo = em.find(org.apache.juddi.model.BusinessEntity.class, modelPubAssertion.getId().getToKey());
+ modelPubAssertion.setBusinessEntityByFromKey(beFrom);
+ modelPubAssertion.setBusinessEntityByToKey(beTo);
+
+ modelPubAssertion.setFromCheck("false");
+ modelPubAssertion.setToCheck("false");
+
+ if (publisher.isOwner(modelPubAssertion.getBusinessEntityByFromKey())) {
+ modelPubAssertion.setFromCheck("true");
+ }
+ if (publisher.isOwner(modelPubAssertion.getBusinessEntityByToKey())) {
+ modelPubAssertion.setToCheck("true");
+ }
+ modelPubAssertion.setModified(new Date());
+ em.persist(modelPubAssertion);
+
+ changes.add(getChangeRecord_NewAssertion(apiPubAssertion, modelPubAssertion, node));
+
+ }
+
+ }
+
+ tx.commit();
+ for (int i = 0; i < changes.size(); i++) {
+ ReplicationNotifier.Enqueue(changes.get(i));
+ }
+
long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.ADD_PUBLISHERASSERTIONS,
- QueryStatus.SUCCESS, procTime);
+ serviceCounter.update(PublicationQuery.ADD_PUBLISHERASSERTIONS,
+ QueryStatus.SUCCESS, procTime);
} catch (DispositionReportFaultMessage drfm) {
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.ADD_PUBLISHERASSERTIONS, QueryStatus.FAILED, procTime);
- throw drfm;
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.ADD_PUBLISHERASSERTIONS, QueryStatus.FAILED, procTime);
+ throw drfm;
} finally {
- if (tx.isActive()) {
- tx.rollback();
- }
- em.close();
- }
- }
-
- public void deleteBinding(DeleteBinding body)
- throws DispositionReportFaultMessage {
- long startTime = System.currentTimeMillis();
-
- EntityManager em = PersistenceManager.getEntityManager();
- EntityTransaction tx = em.getTransaction();
- try {
- tx.begin();
-
- UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
-
- new ValidatePublish(publisher).validateDeleteBinding(em, body);
-
- List<String> entityKeyList = body.getBindingKey();
- for (String entityKey : entityKeyList) {
- Object obj = em.find(org.apache.juddi.model.BindingTemplate.class, entityKey);
-
- ((org.apache.juddi.model.BindingTemplate)obj).getBusinessService().setModifiedIncludingChildren(new Date());
- // JUDDI-421: now the businessEntity parent will have it's modifiedIncludingChildren set
- ((org.apache.juddi.model.BindingTemplate)obj).getBusinessService().getBusinessEntity().setModifiedIncludingChildren(new Date());
-
- em.remove(obj);
- }
-
- tx.commit();
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+ }
+
+ public void deleteBinding(DeleteBinding body)
+ throws DispositionReportFaultMessage {
+ long startTime = System.currentTimeMillis();
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+
+ new ValidatePublish(publisher).validateDeleteBinding(em, body);
+
+ List<String> entityKeyList = body.getBindingKey();
+ List<ChangeRecord> changes = new ArrayList<ChangeRecord>();
+ for (String entityKey : entityKeyList) {
+ deleteBinding(entityKey, em);
+ changes.add(getChangeRecord_deleteBinding(entityKey, node));
+ }
+ tx.commit();
+ for (int i = 0; i < changes.size(); i++) {
+ ReplicationNotifier.Enqueue(changes.get(i));
+ }
+
long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.DELETE_BINDING,
- QueryStatus.SUCCESS, procTime);
+ serviceCounter.update(PublicationQuery.DELETE_BINDING,
+ QueryStatus.SUCCESS, procTime);
} catch (DispositionReportFaultMessage drfm) {
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.DELETE_BINDING, QueryStatus.FAILED, procTime);
- throw drfm;
- } finally {
- if (tx.isActive()) {
- tx.rollback();
- }
- em.close();
- }
- }
-
- public void deleteBusiness(DeleteBusiness body)
- throws DispositionReportFaultMessage {
- long startTime = System.currentTimeMillis();
-
- EntityManager em = PersistenceManager.getEntityManager();
- EntityTransaction tx = em.getTransaction();
- try {
- tx.begin();
-
- UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
-
- new ValidatePublish(publisher).validateDeleteBusiness(em, body);
-
- List<String> entityKeyList = body.getBusinessKey();
- for (String entityKey : entityKeyList) {
- Object obj = em.find(org.apache.juddi.model.BusinessEntity.class, entityKey);
- em.remove(obj);
- }
-
- tx.commit();
long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.DELETE_BUSINESS, QueryStatus.SUCCESS, procTime);
+ serviceCounter.update(PublicationQuery.DELETE_BINDING, QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+ }
+
+ /**
+ * deletes the referenced object, assuming authorization rules are
+ * already processed and there is already an open transaction
+ *
+ * @param entityKey
+ * @param em
+ * @throws DispositionReportFaultMessage
+ */
+ protected void deleteBinding(String entityKey, EntityManager em) throws DispositionReportFaultMessage {
+
+ Object obj = em.find(org.apache.juddi.model.BindingTemplate.class, entityKey);
+
+ ((org.apache.juddi.model.BindingTemplate) obj).getBusinessService().setModifiedIncludingChildren(new Date());
+ // JUDDI-421: now the businessEntity parent will have it's modifiedIncludingChildren set
+ ((org.apache.juddi.model.BindingTemplate) obj).getBusinessService().getBusinessEntity().setModifiedIncludingChildren(new Date());
+
+ em.remove(obj);
+
+ }
+
+ public void deleteBusiness(DeleteBusiness body)
+ throws DispositionReportFaultMessage {
+ long startTime = System.currentTimeMillis();
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+
+ new ValidatePublish(publisher).validateDeleteBusiness(em, body);
+
+ List<String> entityKeyList = body.getBusinessKey();
+ List<ChangeRecord> changes = new ArrayList<ChangeRecord>();
+ for (String entityKey : entityKeyList) {
+ deleteBusiness(entityKey, em);
+ changes.add(getChangeRecord_deleteBusiness(entityKey, node));
+ }
+
+ tx.commit();
+ for (int i = 0; i < changes.size(); i++) {
+ ReplicationNotifier.Enqueue(changes.get(i));
+ }
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.DELETE_BUSINESS, QueryStatus.SUCCESS, procTime);
} catch (DispositionReportFaultMessage drfm) {
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.DELETE_BUSINESS, QueryStatus.FAILED, procTime);
- throw drfm;
- } finally {
- if (tx.isActive()) {
- tx.rollback();
- }
- em.close();
- }
- }
-
- public void deletePublisherAssertions(DeletePublisherAssertions body)
- throws DispositionReportFaultMessage {
- long startTime = System.currentTimeMillis();
-
- EntityManager em = PersistenceManager.getEntityManager();
- EntityTransaction tx = em.getTransaction();
- try {
- tx.begin();
-
- UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
-
- new ValidatePublish(publisher).validateDeletePublisherAssertions(em, body);
-
- List<org.uddi.api_v3.PublisherAssertion> entityList = body.getPublisherAssertion();
- for (org.uddi.api_v3.PublisherAssertion entity : entityList) {
- org.apache.juddi.model.PublisherAssertionId pubAssertionId = new org.apache.juddi.model.PublisherAssertionId(entity.getFromKey(), entity.getToKey());
- Object obj = em.find(org.apache.juddi.model.PublisherAssertion.class, pubAssertionId);
- em.remove(obj);
- }
-
- tx.commit();
long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.DELETE_PUBLISHERASSERTIONS,
- QueryStatus.SUCCESS, procTime);
+ serviceCounter.update(PublicationQuery.DELETE_BUSINESS, QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+ }
+
+ /**
+ * deletes the referenced object, assuming authorization rules are
+ * already processed and there is already an open transaction
+ *
+ * @param entityKey
+ * @param em
+ * @throws DispositionReportFaultMessage
+ */
+ protected void deleteBusiness(String key, EntityManager em) throws DispositionReportFaultMessage {
+ Object obj = em.find(org.apache.juddi.model.BusinessEntity.class, key);
+ em.remove(obj);
+ }
+
+ public void deletePublisherAssertions(DeletePublisherAssertions body)
+ throws DispositionReportFaultMessage {
+ long startTime = System.currentTimeMillis();
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+
+ new ValidatePublish(publisher).validateDeletePublisherAssertions(em, body);
+
+ List<org.uddi.api_v3.PublisherAssertion> entityList = body.getPublisherAssertion();
+ List<ChangeRecord> changes = new ArrayList<ChangeRecord>();
+ for (org.uddi.api_v3.PublisherAssertion entity : entityList) {
+ deletePublisherAssertion(entity, em);
+ changes.add(getChangeRecord_deletePublisherAssertion(entity, node));
+ }
+
+ tx.commit();
+ for (int i = 0; i < changes.size(); i++) {
+ ReplicationNotifier.Enqueue(changes.get(i));
+ }
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.DELETE_PUBLISHERASSERTIONS,
+ QueryStatus.SUCCESS, procTime);
} catch (DispositionReportFaultMessage drfm) {
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.DELETE_PUBLISHERASSERTIONS, QueryStatus.FAILED, procTime);
- throw drfm;
- } finally {
- if (tx.isActive()) {
- tx.rollback();
- }
- em.close();
- }
- }
-
- public void deleteService(DeleteService body)
- throws DispositionReportFaultMessage {
- long startTime = System.currentTimeMillis();
-
- EntityManager em = PersistenceManager.getEntityManager();
- EntityTransaction tx = em.getTransaction();
- try {
- tx.begin();
-
- UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
-
- new ValidatePublish(publisher).validateDeleteService(em, body);
-
- List<String> entityKeyList = body.getServiceKey();
- for (String entityKey : entityKeyList) {
- Object obj = em.find(org.apache.juddi.model.BusinessService.class, entityKey);
-
- ((org.apache.juddi.model.BusinessService)obj).getBusinessEntity().setModifiedIncludingChildren(new Date());
-
- em.remove(obj);
- }
-
- tx.commit();
long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.DELETE_SERVICE,
- QueryStatus.SUCCESS, procTime);
+ serviceCounter.update(PublicationQuery.DELETE_PUBLISHERASSERTIONS, QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+ }
+
+ /**
+ * deletes the referenced object, assuming authorization rules are
+ * already processed and there is already an open transaction
+ *
+ * @param entityKey
+ * @param em
+ * @throws DispositionReportFaultMessage
+ */
+ protected void deletePublisherAssertion(org.uddi.api_v3.PublisherAssertion entity, EntityManager em) throws DispositionReportFaultMessage {
+ org.apache.juddi.model.PublisherAssertionId pubAssertionId = new org.apache.juddi.model.PublisherAssertionId(entity.getFromKey(), entity.getToKey());
+ Object obj = em.find(org.apache.juddi.model.PublisherAssertion.class, pubAssertionId);
+ em.remove(obj);
+ }
+
+ public void deleteService(DeleteService body)
+ throws DispositionReportFaultMessage {
+ long startTime = System.currentTimeMillis();
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+
+ new ValidatePublish(publisher).validateDeleteService(em, body);
+
+ List<String> entityKeyList = body.getServiceKey();
+ List<ChangeRecord> changes = new ArrayList<ChangeRecord>();
+ for (String entityKey : entityKeyList) {
+ deleteService(entityKey, em);
+ changes.add(getChangeRecord_deleteService(entityKey, node));
+ }
+
+ tx.commit();
+ for (int i = 0; i < changes.size(); i++) {
+ ReplicationNotifier.Enqueue(changes.get(i));
+ }
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.DELETE_SERVICE,
+ QueryStatus.SUCCESS, procTime);
} catch (DispositionReportFaultMessage drfm) {
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.DELETE_SERVICE, QueryStatus.FAILED, procTime);
- throw drfm;
- } finally {
- if (tx.isActive()) {
- tx.rollback();
- }
- em.close();
- }
- }
-
-
- public void deleteTModel(DeleteTModel body)
- throws DispositionReportFaultMessage {
- long startTime = System.currentTimeMillis();
-
- EntityManager em = PersistenceManager.getEntityManager();
- EntityTransaction tx = em.getTransaction();
- try {
- tx.begin();
-
- UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
-
- new ValidatePublish(publisher).validateDeleteTModel(em, body);
-
- // tModels are only lazily deleted!
- List<String> entityKeyList = body.getTModelKey();
- for (String entityKey : entityKeyList) {
- Object obj = em.find(org.apache.juddi.model.Tmodel.class, entityKey);
- ((org.apache.juddi.model.Tmodel)obj).setDeleted(true);
-
- }
-
- tx.commit();
long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.DELETE_TMODEL, QueryStatus.SUCCESS, procTime);
+ serviceCounter.update(PublicationQuery.DELETE_SERVICE, QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+ }
+
+ /**
+ * deletes the referenced object, assuming authorization rules are
+ * already processed and there is already an open transaction
+ *
+ * @param entityKey
+ * @param em
+ * @throws DispositionReportFaultMessage
+ */
+ protected void deleteService(String key, EntityManager em) throws DispositionReportFaultMessage {
+ Object obj = em.find(org.apache.juddi.model.BusinessService.class, key);
+ ((org.apache.juddi.model.BusinessService) obj).getBusinessEntity().setModifiedIncludingChildren(new Date());
+ em.remove(obj);
+ }
+
+ public void deleteTModel(DeleteTModel body)
+ throws DispositionReportFaultMessage {
+ long startTime = System.currentTimeMillis();
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+
+ new ValidatePublish(publisher).validateDeleteTModel(em, body);
+
+ // tModels are only lazily deleted!
+ List<String> entityKeyList = body.getTModelKey();
+ List<ChangeRecord> changes = new ArrayList<ChangeRecord>();
+ for (String entityKey : entityKeyList) {
+ deleteTModel(entityKey, em);
+ changes.add(getChangeRecord_deleteTModel(entityKey, node));
+ }
+
+ tx.commit();
+
+ for (int i = 0; i < changes.size(); i++) {
+ ReplicationNotifier.Enqueue(changes.get(i));
+ }
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.DELETE_TMODEL, QueryStatus.SUCCESS, procTime);
} catch (DispositionReportFaultMessage drfm) {
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.DELETE_TMODEL, QueryStatus.FAILED, procTime);
- throw drfm;
- } finally {
- if (tx.isActive()) {
- tx.rollback();
- }
- em.close();
- }
- }
-
-
- public List<AssertionStatusItem> getAssertionStatusReport(String authInfo,
- CompletionStatus completionStatus)
- throws DispositionReportFaultMessage {
- long startTime = System.currentTimeMillis();
-
- EntityManager em = PersistenceManager.getEntityManager();
- EntityTransaction tx = em.getTransaction();
- try {
- tx.begin();
-
- UddiEntityPublisher publisher = this.getEntityPublisher(em, authInfo);
-
- List<org.uddi.api_v3.AssertionStatusItem> result = PublicationHelper.getAssertionStatusItemList(publisher, completionStatus, em);
-
- tx.commit();
long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.GET_ASSERTIONSTATUSREPORT,
- QueryStatus.SUCCESS, procTime);
+ serviceCounter.update(PublicationQuery.DELETE_TMODEL, QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+ }
+
+ /**
+ * deletes the referenced object, assuming authorization rules are
+ * already processed and there is already an open transaction
+ *
+ * @param entityKey
+ * @param em
+ * @throws DispositionReportFaultMessage
+ */
+ protected void deleteTModel(String key, EntityManager em) {
+ Object obj = em.find(org.apache.juddi.model.Tmodel.class, key);
+ ((org.apache.juddi.model.Tmodel) obj).setDeleted(true);
+ }
+
+ public List<AssertionStatusItem> getAssertionStatusReport(String authInfo,
+ CompletionStatus completionStatus)
+ throws DispositionReportFaultMessage {
+ long startTime = System.currentTimeMillis();
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, authInfo);
+
+ List<org.uddi.api_v3.AssertionStatusItem> result = PublicationHelper.getAssertionStatusItemList(publisher, completionStatus, em);
+
+ tx.commit();
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.GET_ASSERTIONSTATUSREPORT,
+ QueryStatus.SUCCESS, procTime);
- return result;
+ return result;
} catch (DispositionReportFaultMessage drfm) {
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.GET_ASSERTIONSTATUSREPORT, QueryStatus.FAILED, procTime);
- throw drfm;
- } finally {
- if (tx.isActive()) {
- tx.rollback();
- }
- em.close();
- }
- }
-
- public List<PublisherAssertion> getPublisherAssertions(String authInfo)
- throws DispositionReportFaultMessage {
- long startTime = System.currentTimeMillis();
-
- EntityManager em = PersistenceManager.getEntityManager();
- EntityTransaction tx = em.getTransaction();
- try {
- tx.begin();
-
- UddiEntityPublisher publisher = this.getEntityPublisher(em, authInfo);
-
- List<org.uddi.api_v3.PublisherAssertion> result = new ArrayList<org.uddi.api_v3.PublisherAssertion>(0);
-
- List<?> businessKeysFound = null;
- businessKeysFound = FindBusinessByPublisherQuery.select(em, null, publisher, businessKeysFound);
-
- List<org.apache.juddi.model.PublisherAssertion> pubAssertionList = FindPublisherAssertionByBusinessQuery.select(em, businessKeysFound, null);
- if (pubAssertionList!=null)
- for(org.apache.juddi.model.PublisherAssertion modelPubAssertion : pubAssertionList) {
- org.uddi.api_v3.PublisherAssertion apiPubAssertion = new org.uddi.api_v3.PublisherAssertion();
-
- MappingModelToApi.mapPublisherAssertion(modelPubAssertion, apiPubAssertion);
-
- result.add(apiPubAssertion);
- }
-
- tx.commit();
long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.GET_PUBLISHERASSERTIONS,
- QueryStatus.SUCCESS, procTime);
- return result;
+ serviceCounter.update(PublicationQuery.GET_ASSERTIONSTATUSREPORT, QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+ }
+
+ public List<PublisherAssertion> getPublisherAssertions(String authInfo)
+ throws DispositionReportFaultMessage {
+ long startTime = System.currentTimeMillis();
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, authInfo);
+
+ List<org.uddi.api_v3.PublisherAssertion> result = new ArrayList<org.uddi.api_v3.PublisherAssertion>(0);
+
+ List<?> businessKeysFound = null;
+ businessKeysFound = FindBusinessByPublisherQuery.select(em, null, publisher, businessKeysFound);
+
+ List<org.apache.juddi.model.PublisherAssertion> pubAssertionList = FindPublisherAssertionByBusinessQuery.select(em, businessKeysFound, null);
+ if (pubAssertionList != null) {
+ for (org.apache.juddi.model.PublisherAssertion modelPubAssertion : pubAssertionList) {
+ org.uddi.api_v3.PublisherAssertion apiPubAssertion = new org.uddi.api_v3.PublisherAssertion();
+
+ MappingModelToApi.mapPublisherAssertion(modelPubAssertion, apiPubAssertion);
+
+ result.add(apiPubAssertion);
+ }
+ }
+
+ tx.commit();
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.GET_PUBLISHERASSERTIONS,
+ QueryStatus.SUCCESS, procTime);
+ return result;
} catch (DispositionReportFaultMessage drfm) {
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.GET_PUBLISHERASSERTIONS,
- QueryStatus.FAILED, procTime);
- throw drfm;
- } finally {
- if (tx.isActive()) {
- tx.rollback();
- }
- em.close();
- }
- }
-
-
- public RegisteredInfo getRegisteredInfo(GetRegisteredInfo body)
- throws DispositionReportFaultMessage {
- long startTime = System.currentTimeMillis();
-
- EntityManager em = PersistenceManager.getEntityManager();
- EntityTransaction tx = em.getTransaction();
- try {
- tx.begin();
-
- UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
-
- new ValidatePublish(publisher).validateRegisteredInfo(body);
-
- List<?> businessKeysFound = null;
- businessKeysFound = FindBusinessByPublisherQuery.select(em, null, publisher, businessKeysFound);
-
-
- List<?> tmodelKeysFound = null;
-
- if (body.getInfoSelection().equals(InfoSelection.HIDDEN))
- tmodelKeysFound = FindTModelByPublisherQuery.select(em, null, publisher, tmodelKeysFound, new DynamicQuery.Parameter(TModelQuery.ENTITY_ALIAS + ".deleted", Boolean.TRUE, DynamicQuery.PREDICATE_EQUALS));
- else if (body.getInfoSelection().equals(InfoSelection.VISIBLE))
- tmodelKeysFound = FindTModelByPublisherQuery.select(em, null, publisher, tmodelKeysFound, new DynamicQuery.Parameter(TModelQuery.ENTITY_ALIAS + ".deleted", Boolean.FALSE, DynamicQuery.PREDICATE_EQUALS));
- else
- tmodelKeysFound = FindTModelByPublisherQuery.select(em, null, publisher, tmodelKeysFound);
-
- RegisteredInfo result = new RegisteredInfo();
-
- // Sort and retrieve the final results
- List<?> queryResults = FetchBusinessEntitiesQuery.select(em, new FindQualifiers(), businessKeysFound, null, null, null);
- if (queryResults.size() > 0) {
- result.setBusinessInfos(new org.uddi.api_v3.BusinessInfos());
-
- for (Object item : queryResults) {
- org.apache.juddi.model.BusinessEntity modelBusinessEntity = (org.apache.juddi.model.BusinessEntity)item;
- org.uddi.api_v3.BusinessInfo apiBusinessInfo = new org.uddi.api_v3.BusinessInfo();
-
- MappingModelToApi.mapBusinessInfo(modelBusinessEntity, apiBusinessInfo);
-
- result.getBusinessInfos().getBusinessInfo().add(apiBusinessInfo);
- }
- }
-
- // Sort and retrieve the final results
- queryResults = FetchTModelsQuery.select(em, new FindQualifiers(), tmodelKeysFound, null, null, null);
- if (queryResults.size() > 0) {
- result.setTModelInfos(new org.uddi.api_v3.TModelInfos());
-
- for (Object item : queryResults) {
- org.apache.juddi.model.Tmodel modelTModel = (org.apache.juddi.model.Tmodel)item;
- org.uddi.api_v3.TModelInfo apiTModelInfo = new org.uddi.api_v3.TModelInfo();
-
- MappingModelToApi.mapTModelInfo(modelTModel, apiTModelInfo);
-
- result.getTModelInfos().getTModelInfo().add(apiTModelInfo);
- }
- }
-
- tx.commit();
long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.GET_REGISTEREDINFO,
- QueryStatus.SUCCESS, procTime);
+ serviceCounter.update(PublicationQuery.GET_PUBLISHERASSERTIONS,
+ QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+ }
+
+ public RegisteredInfo getRegisteredInfo(GetRegisteredInfo body)
+ throws DispositionReportFaultMessage {
+ long startTime = System.currentTimeMillis();
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+
+ new ValidatePublish(publisher).validateRegisteredInfo(body);
+
+ List<?> businessKeysFound = null;
+ businessKeysFound = FindBusinessByPublisherQuery.select(em, null, publisher, businessKeysFound);
- return result;
+ List<?> tmodelKeysFound = null;
+
+ if (body.getInfoSelection().equals(InfoSelection.HIDDEN)) {
+ tmodelKeysFound = FindTModelByPublisherQuery.select(em, null, publisher, tmodelKeysFound, new DynamicQuery.Parameter(TModelQuery.ENTITY_ALIAS + ".deleted", Boolean.TRUE, DynamicQuery.PREDICATE_EQUALS));
+ } else if (body.getInfoSelection().equals(InfoSelection.VISIBLE)) {
+ tmodelKeysFound = FindTModelByPublisherQuery.select(em, null, publisher, tmodelKeysFound, new DynamicQuery.Parameter(TModelQuery.ENTITY_ALIAS + ".deleted", Boolean.FALSE, DynamicQuery.PREDICATE_EQUALS));
+ } else {
+ tmodelKeysFound = FindTModelByPublisherQuery.select(em, null, publisher, tmodelKeysFound);
+ }
+
+ RegisteredInfo result = new RegisteredInfo();
+
+ // Sort and retrieve the final results
+ List<?> queryResults = FetchBusinessEntitiesQuery.select(em, new FindQualifiers(), businessKeysFound, null, null, null);
+ if (queryResults.size() > 0) {
+ result.setBusinessInfos(new org.uddi.api_v3.BusinessInfos());
+
+ for (Object item : queryResults) {
+ org.apache.juddi.model.BusinessEntity modelBusinessEntity = (org.apache.juddi.model.BusinessEntity) item;
+ org.uddi.api_v3.BusinessInfo apiBusinessInfo = new org.uddi.api_v3.BusinessInfo();
+
+ MappingModelToApi.mapBusinessInfo(modelBusinessEntity, apiBusinessInfo);
+
+ result.getBusinessInfos().getBusinessInfo().add(apiBusinessInfo);
+ }
+ }
+
+ // Sort and retrieve the final results
+ queryResults = FetchTModelsQuery.select(em, new FindQualifiers(), tmodelKeysFound, null, null, null);
+ if (queryResults.size() > 0) {
+ result.setTModelInfos(new org.uddi.api_v3.TModelInfos());
+
+ for (Object item : queryResults) {
+ org.apache.juddi.model.Tmodel modelTModel = (org.apache.juddi.model.Tmodel) item;
+ org.uddi.api_v3.TModelInfo apiTModelInfo = new org.uddi.api_v3.TModelInfo();
+
+ MappingModelToApi.mapTModelInfo(modelTModel, apiTModelInfo);
+
+ result.getTModelInfos().getTModelInfo().add(apiTModelInfo);
+ }
+ }
+
+ tx.commit();
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.GET_REGISTEREDINFO,
+ QueryStatus.SUCCESS, procTime);
+
+ return result;
} catch (DispositionReportFaultMessage drfm) {
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.GET_REGISTEREDINFO,
- QueryStatus.FAILED, procTime);
- throw drfm;
- } finally {
- if (tx.isActive()) {
- tx.rollback();
- }
- em.close();
- }
- }
-
-
- public BindingDetail saveBinding(SaveBinding body)
- throws DispositionReportFaultMessage {
- long startTime = System.currentTimeMillis();
-
- EntityManager em = PersistenceManager.getEntityManager();
- EntityTransaction tx = em.getTransaction();
- try {
- tx.begin();
-
- UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
- publisher.populateKeyGeneratorKeys(em);
- ValidatePublish validator = new ValidatePublish(publisher);
- validator.validateSaveBinding(em, body, null, publisher);
-
- BindingDetail result = new BindingDetail();
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.GET_REGISTEREDINFO,
+ QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+ }
+
+ public BindingDetail saveBinding(SaveBinding body)
+ throws DispositionReportFaultMessage {
+ long startTime = System.currentTimeMillis();
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+ publisher.populateKeyGeneratorKeys(em);
+ ValidatePublish validator = new ValidatePublish(publisher);
+ validator.validateSaveBinding(em, body, null, publisher);
+
+ BindingDetail result = new BindingDetail();
result.setListDescription(new ListDescription());
- List<org.uddi.api_v3.BindingTemplate> apiBindingTemplateList = body.getBindingTemplate();
- for (org.uddi.api_v3.BindingTemplate apiBindingTemplate : apiBindingTemplateList) {
-
- org.apache.juddi.model.BindingTemplate modelBindingTemplate = new org.apache.juddi.model.BindingTemplate();
-
- org.apache.juddi.model.BusinessService modelBusinessService = new org.apache.juddi.model.BusinessService();
- modelBusinessService.setEntityKey(apiBindingTemplate.getServiceKey());
-
- MappingApiToModel.mapBindingTemplate(apiBindingTemplate, modelBindingTemplate, modelBusinessService);
-
- setOperationalInfo(em, modelBindingTemplate, publisher, false);
-
- em.persist(modelBindingTemplate);
-
- result.getBindingTemplate().add(apiBindingTemplate);
- result.getListDescription().setActualCount(result.getListDescription().getActualCount()+1);
- result.getListDescription().setIncludeCount(result.getListDescription().getIncludeCount()+1);
- validator.validateSaveBindingMax(em, modelBindingTemplate.getBusinessService().getEntityKey());
- }
-
- tx.commit();
+ List<org.uddi.api_v3.BindingTemplate> apiBindingTemplateList = body.getBindingTemplate();
+ List<org.apache.juddi.model.ChangeRecord> changes = new ArrayList<ChangeRecord>();
+
+ for (org.uddi.api_v3.BindingTemplate apiBindingTemplate : apiBindingTemplateList) {
+
+ org.apache.juddi.model.BindingTemplate modelBindingTemplate = new org.apache.juddi.model.BindingTemplate();
+
+ org.apache.juddi.model.BusinessService modelBusinessService = new org.apache.juddi.model.BusinessService();
+ modelBusinessService.setEntityKey(apiBindingTemplate.getServiceKey());
+
+ MappingApiToModel.mapBindingTemplate(apiBindingTemplate, modelBindingTemplate, modelBusinessService);
+
+ setOperationalInfo(em, modelBindingTemplate, publisher, false);
+
+ em.persist(modelBindingTemplate);
+
+ result.getBindingTemplate().add(apiBindingTemplate);
+ result.getListDescription().setActualCount(result.getListDescription().getActualCount() + 1);
+ result.getListDescription().setIncludeCount(result.getListDescription().getIncludeCount() + 1);
+ validator.validateSaveBindingMax(em, modelBindingTemplate.getBusinessService().getEntityKey());
+ changes.add(getChangeRecord(modelBindingTemplate, apiBindingTemplate, node));
+ }
+
+ tx.commit();
+ for (int i = 0; i < changes.size(); i++) {
+ ReplicationNotifier.Enqueue(changes.get(i));
+ }
long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.SAVE_BINDING,
- QueryStatus.SUCCESS, procTime);
+ serviceCounter.update(PublicationQuery.SAVE_BINDING,
+ QueryStatus.SUCCESS, procTime);
- return result;
+ return result;
} catch (DispositionReportFaultMessage drfm) {
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.SAVE_BINDING,
- QueryStatus.FAILED, procTime);
- throw drfm;
- } finally {
- if (tx.isActive()) {
- tx.rollback();
- }
- em.close();
- }
- }
-
-
- public BusinessDetail saveBusiness(SaveBusiness body)
- throws DispositionReportFaultMessage {
- long startTime = System.currentTimeMillis();
- if (!body.getBusinessEntity().isEmpty()) {
- log.debug("Inbound save business request for key " + body.getBusinessEntity().get(0).getBusinessKey());
- }
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.SAVE_BINDING,
+ QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+ }
+
+ public BusinessDetail saveBusiness(SaveBusiness body)
+ throws DispositionReportFaultMessage {
+ long startTime = System.currentTimeMillis();
+ if (!body.getBusinessEntity().isEmpty()) {
+ log.debug("Inbound save business request for key " + body.getBusinessEntity().get(0).getBusinessKey());
+ }
EntityManager em = PersistenceManager.getEntityManager();
- EntityTransaction tx = em.getTransaction();
- try {
- tx.begin();
-
- UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
- publisher.populateKeyGeneratorKeys(em);
- ValidatePublish validator = new ValidatePublish(publisher);
- validator.validateSaveBusiness(em, body, null, publisher);
-
- BusinessDetail result = new BusinessDetail();
-
- List<org.uddi.api_v3.BusinessEntity> apiBusinessEntityList = body.getBusinessEntity();
- for (org.uddi.api_v3.BusinessEntity apiBusinessEntity : apiBusinessEntityList) {
-
- org.apache.juddi.model.BusinessEntity modelBusinessEntity = new org.apache.juddi.model.BusinessEntity();
-
- MappingApiToModel.mapBusinessEntity(apiBusinessEntity, modelBusinessEntity);
-
- setOperationalInfo(em, modelBusinessEntity, publisher);
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+ publisher.populateKeyGeneratorKeys(em);
+ ValidatePublish validator = new ValidatePublish(publisher);
+ validator.validateSaveBusiness(em, body, null, publisher);
+
+ BusinessDetail result = new BusinessDetail();
+
+ List<org.uddi.api_v3.BusinessEntity> apiBusinessEntityList = body.getBusinessEntity();
+ List<ChangeRecord> changes = new ArrayList<ChangeRecord>();
+
+ for (org.uddi.api_v3.BusinessEntity apiBusinessEntity : apiBusinessEntityList) {
+
+ org.apache.juddi.model.BusinessEntity modelBusinessEntity = new org.apache.juddi.model.BusinessEntity();
+
+ MappingApiToModel.mapBusinessEntity(apiBusinessEntity, modelBusinessEntity);
+
+ setOperationalInfo(em, modelBusinessEntity, publisher);
log.debug("Saving business " + modelBusinessEntity.getEntityKey());
-
- em.persist(modelBusinessEntity);
-
- result.getBusinessEntity().add(apiBusinessEntity);
- }
-
- //check how many business this publisher owns.
- validator.validateSaveBusinessMax(em);
-
- tx.commit();
+
+ em.persist(modelBusinessEntity);
+ changes.add(getChangeRecord(modelBusinessEntity, apiBusinessEntity, node));
+ result.getBusinessEntity().add(apiBusinessEntity);
+ }
+
+ //check how many business this publisher owns.
+ validator.validateSaveBusinessMax(em);
+
+ tx.commit();
+ for (int i = 0; i < changes.size(); i++) {
+ ReplicationNotifier.Enqueue(changes.get(i));
+ }
long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.SAVE_BUSINESS,
- QueryStatus.SUCCESS, procTime);
+ serviceCounter.update(PublicationQuery.SAVE_BUSINESS,
+ QueryStatus.SUCCESS, procTime);
- return result;
+ return result;
} catch (DispositionReportFaultMessage drfm) {
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.SAVE_BUSINESS,
- QueryStatus.FAILED, procTime);
- throw drfm;
- } catch (Exception ex){
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.SAVE_BUSINESS,
+ QueryStatus.FAILED, procTime);
+ throw drfm;
+ } catch (Exception ex) {
StringWriter sw = new StringWriter();
- if (body!=null)
- JAXB.marshal(body, sw);
- log.fatal("unexpected error!" + sw.toString(), ex);
- throw new FatalErrorException(new ErrorMessage("E_fatalError", ex.getMessage()));
+ if (body != null) {
+ JAXB.marshal(body, sw);
+ }
+ log.fatal("unexpected error!" + sw.toString(), ex);
+ throw new FatalErrorException(new ErrorMessage("E_fatalError", ex.getMessage()));
} finally {
- if (tx.isActive()) {
- tx.rollback();
- }
- em.close();
- }
- }
-
-
- public ServiceDetail saveService(SaveService body)
- throws DispositionReportFaultMessage {
- long startTime = System.currentTimeMillis();
-
- EntityManager em = PersistenceManager.getEntityManager();
- EntityTransaction tx = em.getTransaction();
- try {
- tx.begin();
-
- UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
- publisher.populateKeyGeneratorKeys(em);
- ValidatePublish validator = new ValidatePublish(publisher);
- validator.validateSaveService(em, body, null, publisher);
-
- ServiceDetail result = new ServiceDetail();
-
- List<org.uddi.api_v3.BusinessService> apiBusinessServiceList = body.getBusinessService();
- for (org.uddi.api_v3.BusinessService apiBusinessService : apiBusinessServiceList) {
-
- org.apache.juddi.model.BusinessService modelBusinessService = new org.apache.juddi.model.BusinessService();
- org.apache.juddi.model.BusinessEntity modelBusinessEntity = new org.apache.juddi.model.BusinessEntity();
- modelBusinessEntity.setEntityKey(apiBusinessService.getBusinessKey());
-
- MappingApiToModel.mapBusinessService(apiBusinessService, modelBusinessService, modelBusinessEntity);
-
- setOperationalInfo(em, modelBusinessService, publisher, false);
-
- em.persist(modelBusinessService);
-
- result.getBusinessService().add(apiBusinessService);
-
- validator.validateSaveServiceMax(em, modelBusinessService.getBusinessEntity().getEntityKey());
- }
-
-
- tx.commit();
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+ }
+
+ public ServiceDetail saveService(SaveService body)
+ throws DispositionReportFaultMessage {
+ long startTime = System.currentTimeMillis();
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+ publisher.populateKeyGeneratorKeys(em);
+ ValidatePublish validator = new ValidatePublish(publisher);
+ validator.validateSaveService(em, body, null, publisher);
+
+ ServiceDetail result = new ServiceDetail();
+
+ List<org.uddi.api_v3.BusinessService> apiBusinessServiceList = body.getBusinessService();
+ List<ChangeRecord> changes = new ArrayList<ChangeRecord>();
+ for (org.uddi.api_v3.BusinessService apiBusinessService : apiBusinessServiceList) {
+
+ org.apache.juddi.model.BusinessService modelBusinessService = new org.apache.juddi.model.BusinessService();
+ org.apache.juddi.model.BusinessEntity modelBusinessEntity = new org.apache.juddi.model.BusinessEntity();
+ modelBusinessEntity.setEntityKey(apiBusinessService.getBusinessKey());
+
+ MappingApiToModel.mapBusinessService(apiBusinessService, modelBusinessService, modelBusinessEntity);
+
+ setOperationalInfo(em, modelBusinessService, publisher, false);
+
+ em.persist(modelBusinessService);
+
+ result.getBusinessService().add(apiBusinessService);
+ changes.add(getChangeRecord(modelBusinessService, apiBusinessService, node));
+ validator.validateSaveServiceMax(em, modelBusinessService.getBusinessEntity().getEntityKey());
+ }
+
+ tx.commit();
+ for (int i = 0; i < changes.size(); i++) {
+ ReplicationNotifier.Enqueue(changes.get(i));
+ }
long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.SAVE_SERVICE,
- QueryStatus.SUCCESS, procTime);
+ serviceCounter.update(PublicationQuery.SAVE_SERVICE,
+ QueryStatus.SUCCESS, procTime);
- return result;
+ return result;
} catch (DispositionReportFaultMessage drfm) {
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.SAVE_SERVICE,
- QueryStatus.FAILED, procTime);
- throw drfm;
- } finally {
- if (tx.isActive()) {
- tx.rollback();
- }
- em.close();
- }
- }
-
-
- public TModelDetail saveTModel(SaveTModel body)
- throws DispositionReportFaultMessage {
- long startTime = System.currentTimeMillis();
-
- EntityManager em = PersistenceManager.getEntityManager();
- EntityTransaction tx = em.getTransaction();
- try {
- tx.begin();
-
- UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
- publisher.populateKeyGeneratorKeys(em);
- new ValidatePublish(publisher).validateSaveTModel(em, body, null, publisher);
-
- TModelDetail result = new TModelDetail();
-
- List<org.uddi.api_v3.TModel> apiTModelList = body.getTModel();
- for (org.uddi.api_v3.TModel apiTModel : apiTModelList) {
-
- org.apache.juddi.model.Tmodel modelTModel = new org.apache.juddi.model.Tmodel();
-
- MappingApiToModel.mapTModel(apiTModel, modelTModel);
-
- setOperationalInfo(em, modelTModel, publisher);
-
- em.persist(modelTModel);
-
- result.getTModel().add(apiTModel);
-
- }
-
- tx.commit();
long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.SAVE_TMODEL,
- QueryStatus.SUCCESS, procTime);
+ serviceCounter.update(PublicationQuery.SAVE_SERVICE,
+ QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+ }
+
+ public TModelDetail saveTModel(SaveTModel body)
+ throws DispositionReportFaultMessage {
+ long startTime = System.currentTimeMillis();
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+ publisher.populateKeyGeneratorKeys(em);
+ new ValidatePublish(publisher).validateSaveTModel(em, body, null, publisher);
+
+ TModelDetail result = new TModelDetail();
+
+ List<org.uddi.api_v3.TModel> apiTModelList = body.getTModel();
+ List<ChangeRecord> changes = new ArrayList<ChangeRecord>();
+ for (org.uddi.api_v3.TModel apiTModel : apiTModelList) {
+
+ org.apache.juddi.model.Tmodel modelTModel = new org.apache.juddi.model.Tmodel();
+
+ MappingApiToModel.mapTModel(apiTModel, modelTModel);
+
+ setOperationalInfo(em, modelTModel, publisher);
+
+ em.persist(modelTModel);
+
+ result.getTModel().add(apiTModel);
+ changes.add(getChangeRecord(modelTModel, apiTModel, node));
+
+ }
+
+ tx.commit();
+ for (int i = 0; i < changes.size(); i++) {
+ ReplicationNotifier.Enqueue(changes.get(i));
+ }
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.SAVE_TMODEL,
+ QueryStatus.SUCCESS, procTime);
- return result;
+ return result;
} catch (DispositionReportFaultMessage drfm) {
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.SAVE_TMODEL,
- QueryStatus.FAILED, procTime);
- throw drfm;
- } finally {
- if (tx.isActive()) {
- tx.rollback();
- }
- em.close();
- }
- }
-
-
- public void setPublisherAssertions(String authInfo,
- Holder<List<PublisherAssertion>> publisherAssertion)
- throws DispositionReportFaultMessage {
- long startTime = System.currentTimeMillis();
-
- EntityManager em = PersistenceManager.getEntityManager();
- EntityTransaction tx = em.getTransaction();
- try {
- tx.begin();
-
- UddiEntityPublisher publisher = this.getEntityPublisher(em, authInfo);
-
- new ValidatePublish(publisher).validateSetPublisherAssertions(em, publisherAssertion);
-
- List<?> businessKeysFound = null;
- businessKeysFound = FindBusinessByPublisherQuery.select(em, null, publisher, businessKeysFound);
-
- // First, wipe out all previous assertions associated with this publisher
- DeletePublisherAssertionByBusinessQuery.delete(em, businessKeysFound);
-
- // Slate is clean for all assertions involving this publisher, now we simply need to add the new ones (and they will all be "new").
- List<org.uddi.api_v3.PublisherAssertion> apiPubAssertionList = publisherAssertion.value;
- for (org.uddi.api_v3.PublisherAssertion apiPubAssertion : apiPubAssertionList) {
-
- org.apache.juddi.model.PublisherAssertion modelPubAssertion = new org.apache.juddi.model.PublisherAssertion();
-
- MappingApiToModel.mapPublisherAssertion(apiPubAssertion, modelPubAssertion);
-
- org.apache.juddi.model.BusinessEntity beFrom = em.find(org.apache.juddi.model.BusinessEntity.class, modelPubAssertion.getId().getFromKey());
- org.apache.juddi.model.BusinessEntity beTo = em.find(org.apache.juddi.model.BusinessEntity.class, modelPubAssertion.getId().getToKey());
- modelPubAssertion.setBusinessEntityByFromKey(beFrom);
- modelPubAssertion.setBusinessEntityByToKey(beTo);
-
- modelPubAssertion.setFromCheck("false");
- modelPubAssertion.setToCheck("false");
-
- em.persist(modelPubAssertion);
-
- if (publisher.isOwner(modelPubAssertion.getBusinessEntityByFromKey()))
- modelPubAssertion.setFromCheck("true");
- if (publisher.isOwner(modelPubAssertion.getBusinessEntityByToKey()))
- modelPubAssertion.setToCheck("true");
-
- }
-
- tx.commit();
long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.SET_PUBLISHERASSERTIONS,
- QueryStatus.SUCCESS, procTime);
+ serviceCounter.update(PublicationQuery.SAVE_TMODEL,
+ QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+ }
+
+ @Override
+ public void setPublisherAssertions(String authInfo,
+ Holder<List<PublisherAssertion>> publisherAssertion)
+ throws DispositionReportFaultMessage {
+ long startTime = System.currentTimeMillis();
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ try {
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, authInfo);
+
+ new ValidatePublish(publisher).validateSetPublisherAssertions(em, publisherAssertion);
+
+ List<?> businessKeysFound = null;
+ businessKeysFound = FindBusinessByPublisherQuery.select(em, null, publisher, businessKeysFound);
+
+ //TODO this has to be reworked to record what was deleted.
+
+ // First, wipe out all previous assertions associated with this publisher
+ DeletePublisherAssertionByBusinessQuery.delete(em, businessKeysFound);
+
+ // Slate is clean for all assertions involving this publisher, now we simply need to add the new ones (and they will all be "new").
+ List<org.uddi.api_v3.PublisherAssertion> apiPubAssertionList = publisherAssertion.value;
+
+ List<ChangeRecord> changes = new ArrayList<ChangeRecord>();
+ for (org.uddi.api_v3.PublisherAssertion apiPubAssertion : apiPubAssertionList) {
+
+ org.apache.juddi.model.PublisherAssertion modelPubAssertion = new org.apache.juddi.model.PublisherAssertion();
+
+ MappingApiToModel.mapPublisherAssertion(apiPubAssertion, modelPubAssertion);
+
+ org.apache.juddi.model.BusinessEntity beFrom = em.find(org.apache.juddi.model.BusinessEntity.class, modelPubAssertion.getId().getFromKey());
+ org.apache.juddi.model.BusinessEntity beTo = em.find(org.apache.juddi.model.BusinessEntity.class, modelPubAssertion.getId().getToKey());
+ modelPubAssertion.setBusinessEntityByFromKey(beFrom);
+ modelPubAssertion.setBusinessEntityByToKey(beTo);
+
+ modelPubAssertion.setFromCheck("false");
+ modelPubAssertion.setToCheck("false");
+
+
+ if (publisher.isOwner(modelPubAssertion.getBusinessEntityByFromKey())) {
+ modelPubAssertion.setFromCheck("true");
+ }
+ if (publisher.isOwner(modelPubAssertion.getBusinessEntityByToKey())) {
+ modelPubAssertion.setToCheck("true");
+ }
+ em.persist(modelPubAssertion);
+
+
+ changes.add(getChangeRecord_NewAssertion(apiPubAssertion, modelPubAssertion, node));
+
+ }
+
+ tx.commit();
+ for (int i=0; i < changes.size(); i++)
+ ReplicationNotifier.Enqueue(changes.get(i));
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.SET_PUBLISHERASSERTIONS,
+ QueryStatus.SUCCESS, procTime);
} catch (DispositionReportFaultMessage drfm) {
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.SET_PUBLISHERASSERTIONS,
- QueryStatus.FAILED, procTime);
- throw drfm;
- } finally {
- if (tx.isActive()) {
- tx.rollback();
- }
- em.close();
- }
- }
-
- private void setOperationalInfo(EntityManager em, org.apache.juddi.model.BusinessEntity uddiEntity, UddiEntityPublisher publisher) throws DispositionReportFaultMessage {
-
- uddiEntity.setAuthorizedName(publisher.getAuthorizedName());
-
- Date now = new Date();
- uddiEntity.setModified(now);
- uddiEntity.setModifiedIncludingChildren(now);
-
- String nodeId = "";
- try
- { nodeId = AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID); }
- catch (ConfigurationException ce)
- { throw new FatalErrorException(new ErrorMessage("errors.configuration.Retrieval", Property.JUDDI_NODE_ID)); }
- uddiEntity.setNodeId(nodeId);
-
- org.apache.juddi.model.BusinessEntity existingUddiEntity = em.find(uddiEntity.getClass(), uddiEntity.getEntityKey());
- if (existingUddiEntity != null)
- uddiEntity.setCreated(existingUddiEntity.getCreated());
- else
- uddiEntity.setCreated(now);
-
- List<org.apache.juddi.model.BusinessService> serviceList = uddiEntity.getBusinessServices();
- for (org.apache.juddi.model.BusinessService service : serviceList)
- setOperationalInfo(em, service, publisher, true);
-
-
- if (existingUddiEntity != null)
- em.remove(existingUddiEntity);
-
- }
-
- private void setOperationalInfo(EntityManager em, org.apache.juddi.model.BusinessService uddiEntity, UddiEntityPublisher publisher, boolean isChild) throws DispositionReportFaultMessage {
-
- uddiEntity.setAuthorizedName(publisher.getAuthorizedName());
-
- Date now = new Date();
- uddiEntity.setModified(now);
- uddiEntity.setModifiedIncludingChildren(now);
-
- if(!isChild) {
- org.apache.juddi.model.BusinessEntity parent = em.find(org.apache.juddi.model.BusinessEntity.class, uddiEntity.getBusinessEntity().getEntityKey());
- parent.setModifiedIncludingChildren(now);
- em.persist(parent);
- }
-
- String nodeId = "";
- try
- { nodeId = AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID); }
- catch (ConfigurationException ce)
- { throw new FatalErrorException(new ErrorMessage("errors.configuration.Retrieval", Property.JUDDI_NODE_ID)); }
- uddiEntity.setNodeId(nodeId);
-
- org.apache.juddi.model.BusinessService existingUddiEntity = em.find(uddiEntity.getClass(), uddiEntity.getEntityKey());
- if (existingUddiEntity != null) {
- uddiEntity.setCreated(existingUddiEntity.getCreated());
- }
- else
- uddiEntity.setCreated(now);
-
- List<org.apache.juddi.model.BindingTemplate> bindingList = uddiEntity.getBindingTemplates();
- for (org.apache.juddi.model.BindingTemplate binding : bindingList)
- setOperationalInfo(em, binding, publisher, true);
-
-
- if (existingUddiEntity != null)
- em.remove(existingUddiEntity);
-
- }
-
- private void setOperationalInfo(EntityManager em, org.apache.juddi.model.BindingTemplate uddiEntity, UddiEntityPublisher publisher, boolean isChild) throws DispositionReportFaultMessage {
-
- uddiEntity.setAuthorizedName(publisher.getAuthorizedName());
-
- Date now = new Date();
- uddiEntity.setModified(now);
- uddiEntity.setModifiedIncludingChildren(now);
-
- if(!isChild) {
- org.apache.juddi.model.BusinessService parent = em.find(org.apache.juddi.model.BusinessService.class, uddiEntity.getBusinessService().getEntityKey());
- parent.setModifiedIncludingChildren(now);
- em.persist(parent);
-
- // JUDDI-421: now the businessEntity parent will have it's modifiedIncludingChildren set
- org.apache.juddi.model.BusinessEntity businessParent = em.find(org.apache.juddi.model.BusinessEntity.class, parent.getBusinessEntity().getEntityKey());
- businessParent.setModifiedIncludingChildren(now);
- em.persist(businessParent);
- }
-
- String nodeId = "";
- try
- { nodeId = AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID); }
- catch (ConfigurationException ce)
- { throw new FatalErrorException(new ErrorMessage("errors.configuration.Retrieval", Property.JUDDI_NODE_ID)); }
- uddiEntity.setNodeId(nodeId);
-
- org.apache.juddi.model.BindingTemplate existingUddiEntity = em.find(uddiEntity.getClass(), uddiEntity.getEntityKey());
- if (existingUddiEntity != null)
- uddiEntity.setCreated(existingUddiEntity.getCreated());
- else
- uddiEntity.setCreated(now);
-
- if (existingUddiEntity != null)
- em.remove(existingUddiEntity);
-
- }
-
- private void setOperationalInfo(EntityManager em, org.apache.juddi.model.Tmodel uddiEntity, UddiEntityPublisher publisher) throws DispositionReportFaultMessage {
-
- uddiEntity.setAuthorizedName(publisher.getAuthorizedName());
-
- Date now = new Date();
- uddiEntity.setModified(now);
- uddiEntity.setModifiedIncludingChildren(now);
-
- String nodeId = "";
- try
- { nodeId = AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID); }
- catch (ConfigurationException ce)
- { throw new FatalErrorException(new ErrorMessage("errors.configuration.Retrieval", Property.JUDDI_NODE_ID)); }
- uddiEntity.setNodeId(nodeId);
-
- org.apache.juddi.model.Tmodel existingUddiEntity = em.find(uddiEntity.getClass(), uddiEntity.getEntityKey());
- if (existingUddiEntity != null)
- uddiEntity.setCreated(existingUddiEntity.getCreated());
- else
- uddiEntity.setCreated(now);
-
- if (existingUddiEntity != null)
- em.remove(existingUddiEntity);
-
- }
-
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.SET_PUBLISHERASSERTIONS,
+ QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+ }
+
+ private void setOperationalInfo(EntityManager em, org.apache.juddi.model.BusinessEntity uddiEntity, UddiEntityPublisher publisher) throws DispositionReportFaultMessage {
+
+ uddiEntity.setAuthorizedName(publisher.getAuthorizedName());
+
+ Date now = new Date();
+ uddiEntity.setModified(now);
+ uddiEntity.setModifiedIncludingChildren(now);
+
+ String nodeId = "";
+ try {
+ nodeId = AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID);
+ } catch (ConfigurationException ce) {
+ throw new FatalErrorException(new ErrorMessage("errors.configuration.Retrieval", Property.JUDDI_NODE_ID));
+ }
+ uddiEntity.setNodeId(nodeId);
+
+ org.apache.juddi.model.BusinessEntity existingUddiEntity = em.find(uddiEntity.getClass(), uddiEntity.getEntityKey());
+ if (existingUddiEntity != null) {
+ uddiEntity.setCreated(existingUddiEntity.getCreated());
+ } else {
+ uddiEntity.setCreated(now);
+ }
+
+ List<org.apache.juddi.model.BusinessService> serviceList = uddiEntity.getBusinessServices();
+ for (org.apache.juddi.model.BusinessService service : serviceList) {
+ setOperationalInfo(em, service, publisher, true);
+ }
+
+ if (existingUddiEntity != null) {
+ em.remove(existingUddiEntity);
+ }
+
+ }
+
+ private void setOperationalInfo(EntityManager em, org.apache.juddi.model.BusinessService uddiEntity, UddiEntityPublisher publisher, boolean isChild) throws DispositionReportFaultMessage {
+
+ uddiEntity.setAuthorizedName(publisher.getAuthorizedName());
+
+ Date now = new Date();
+ uddiEntity.setModified(now);
+ uddiEntity.setModifiedIncludingChildren(now);
+
+ if (!isChild) {
+ org.apache.juddi.model.BusinessEntity parent = em.find(org.apache.juddi.model.BusinessEntity.class, uddiEntity.getBusinessEntity().getEntityKey());
+ parent.setModifiedIncludingChildren(now);
+ em.persist(parent);
+ }
+
+ String nodeId = "";
+ try {
+ nodeId = AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID);
+ } catch (ConfigurationException ce) {
+ throw new FatalErrorException(new ErrorMessage("errors.configuration.Retrieval", Property.JUDDI_NODE_ID));
+ }
+ uddiEntity.setNodeId(nodeId);
+
+ org.apache.juddi.model.BusinessService existingUddiEntity = em.find(uddiEntity.getClass(), uddiEntity.getEntityKey());
+ if (existingUddiEntity != null) {
+ uddiEntity.setCreated(existingUddiEntity.getCreated());
+ } else {
+ uddiEntity.setCreated(now);
+ }
+
+ List<org.apache.juddi.model.BindingTemplate> bindingList = uddiEntity.getBindingTemplates();
+
<TRUNCATED>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org