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 2013/12/31 16:35:28 UTC
svn commit: r1554543 [1/4] - in /juddi/branches/juddi-3.3.x:
juddi-core-openjpa/src/test/resources/META-INF/ juddi-core/
juddi-core/src/main/java/org/apache/juddi/api/impl/
juddi-core/src/main/java/org/apache/juddi/mapping/
juddi-core/src/main/java/org...
Author: alexoree
Date: Tue Dec 31 15:35:27 2013
New Revision: 1554543
URL: http://svn.apache.org/r1554543
Log:
JUDDI-241 adding persistence layer for replication configuration. added queuing mechanism
Added:
juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/model/ChangeRecord.java
juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/model/CommunicationGraph.java
juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/model/ControlMessage.java
juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/model/Edge.java
juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/model/Operator.java
juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/model/OperatorStatusType.java
juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/model/ReplicationConfiguration.java
juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/model/ReplicationMessage.java
Modified:
juddi/branches/juddi-3.3.x/juddi-core-openjpa/src/test/resources/META-INF/persistence.xml
juddi/branches/juddi-3.3.x/juddi-core/pom.xml
juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java
juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java
juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/model/KeyDataValue.java
juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/model/KeyInfo.java
juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/model/Signature.java
juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
juddi/branches/juddi-3.3.x/juddi-core/src/test/resources/META-INF/persistence.xml
juddi/branches/juddi-3.3.x/juddi-examples/hello-world-embedded/src/main/resources/META-INF/persistence.xml
juddi/branches/juddi-3.3.x/juddi-rest-cxf/src/test/resources/META-INF/persistence.xml
juddi/branches/juddi-3.3.x/juddiv3-war/JPA/Hibernate-JBoss/WEB-INF/classes/META-INF/persistence.xml
juddi/branches/juddi-3.3.x/juddiv3-war/JPA/Hibernate/WEB-INF/classes/META-INF/persistence.xml
juddi/branches/juddi-3.3.x/juddiv3-war/JPA/OpenJPA-JBossAS7Up/WEB-INF/classes/META-INF/persistence.xml
juddi/branches/juddi-3.3.x/juddiv3-war/JPA/OpenJPA/WEB-INF/classes/META-INF/persistence.xml
Modified: juddi/branches/juddi-3.3.x/juddi-core-openjpa/src/test/resources/META-INF/persistence.xml
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.3.x/juddi-core-openjpa/src/test/resources/META-INF/persistence.xml?rev=1554543&r1=1554542&r2=1554543&view=diff
==============================================================================
--- juddi/branches/juddi-3.3.x/juddi-core-openjpa/src/test/resources/META-INF/persistence.xml (original)
+++ juddi/branches/juddi-3.3.x/juddi-core-openjpa/src/test/resources/META-INF/persistence.xml Tue Dec 31 15:35:27 2013
@@ -72,6 +72,13 @@
<class>org.apache.juddi.model.UddiEntityPublisher</class>
<class>org.apache.juddi.model.ValueSetValues</class>
<class>org.apache.juddi.model.ValueSetValue</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="openjpa.jdbc.SynchronizeMappings" value="buildSchema(SchemaAction='dropDB,add')"/>
Modified: juddi/branches/juddi-3.3.x/juddi-core/pom.xml
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.3.x/juddi-core/pom.xml?rev=1554543&r1=1554542&r2=1554543&view=diff
==============================================================================
--- juddi/branches/juddi-3.3.x/juddi-core/pom.xml (original)
+++ juddi/branches/juddi-3.3.x/juddi-core/pom.xml Tue Dec 31 15:35:27 2013
@@ -121,7 +121,7 @@
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
- <version>3.2.5.ga</version>
+ <version>3.2.7.ga</version>
<exclusions>
<exclusion>
<groupId>cglib</groupId>
@@ -132,7 +132,7 @@
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
- <version>3.3.1.ga</version>
+ <version>3.3.2.GA</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
Modified: juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java?rev=1554543&r1=1554542&r2=1554543&view=diff
==============================================================================
--- juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java (original)
+++ juddi/branches/juddi-3.3.x/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java Tue Dec 31 15:35:27 2013
@@ -14,7 +14,6 @@
* limitations under the License.
*
*/
-
package org.apache.juddi.api.impl;
import java.util.Date;
@@ -70,856 +69,888 @@ import org.apache.juddi.api.util.QuerySt
import org.apache.juddi.config.AppConfig;
import org.apache.juddi.config.PersistenceManager;
import org.apache.juddi.config.Property;
-import org.apache.juddi.model.Tmodel;
-import org.apache.juddi.model.UddiEntity;
import org.apache.juddi.query.util.DynamicQuery;
import org.apache.juddi.query.util.FindQualifiers;
+import org.apache.juddi.replication.ReplicationNotifier;
/**
* This class implements the UDDI Publication Service
- * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a> (and many others)
+ *
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
+ * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
*/
-@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;
-
+
public UDDIPublicationImpl() {
- super();
- serviceCounter = ServiceCounterLifecycleResource.getServiceCounter(UDDIPublicationImpl.class);
+ super();
+ serviceCounter = ServiceCounterLifecycleResource.getServiceCounter(UDDIPublicationImpl.class);
+ }
+
+ @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();
+ 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();
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.ADD_PUBLISHERASSERTIONS,
+ QueryStatus.SUCCESS, procTime);
+ ReplicationNotifier.Enqueue(body);
+ } catch (DispositionReportFaultMessage drfm) {
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.ADD_PUBLISHERASSERTIONS, QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+ }
+
+ @Override
+ 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();
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.DELETE_BINDING,
+ QueryStatus.SUCCESS, procTime);
+ ReplicationNotifier.Enqueue(body);
+ } 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();
+ }
+ }
+
+ @Override
+ 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);
+ ReplicationNotifier.Enqueue(body);
+ } 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 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 {
- // 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();
- long procTime = System.currentTimeMillis() - startTime;
- 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;
- } 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();
- long procTime = System.currentTimeMillis() - startTime;
- 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);
- } 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);
- } 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);
- } 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);
- } 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);
-
- 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;
- } 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);
-
- 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());
-
- ValidatePublish validator = new ValidatePublish(publisher);
- validator.validateSaveBinding(em, body, null);
-
- BindingDetail result = new BindingDetail();
-
- 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);
-
- validator.validateSaveBindingMax(em, modelBindingTemplate.getBusinessService().getEntityKey());
- }
-
- tx.commit();
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.SAVE_BINDING,
- QueryStatus.SUCCESS, procTime);
-
- 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());
- }
- EntityManager em = PersistenceManager.getEntityManager();
- EntityTransaction tx = em.getTransaction();
- try {
- tx.begin();
-
- UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
-
- ValidatePublish validator = new ValidatePublish(publisher);
- validator.validateSaveBusiness(em, body, null);
-
- 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);
-
- em.persist(modelBusinessEntity);
-
- result.getBusinessEntity().add(apiBusinessEntity);
- }
-
- //check how many business this publisher owns.
- validator.validateSaveBusinessMax(em);
-
- tx.commit();
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.SAVE_BUSINESS,
- QueryStatus.SUCCESS, procTime);
-
- return result;
- } catch (DispositionReportFaultMessage drfm) {
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.SAVE_BUSINESS,
- QueryStatus.FAILED, procTime);
- throw drfm;
- } 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());
-
- ValidatePublish validator = new ValidatePublish(publisher);
- validator.validateSaveService(em, body, null);
-
- 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();
- long procTime = System.currentTimeMillis() - startTime;
- serviceCounter.update(PublicationQuery.SAVE_SERVICE,
- QueryStatus.SUCCESS, procTime);
-
- 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());
-
- new ValidatePublish(publisher).validateSaveTModel(em, body, null);
-
- 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);
-
- 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);
- } 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);
-
- }
-
+ @Override
+ 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);
+ ReplicationNotifier.Enqueue(body);
+ } 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();
+ }
+ }
+
+ @Override
+ 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);
+ ReplicationNotifier.Enqueue(body);
+ } 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();
+ }
+ }
+
+ @Override
+ 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();
+ ReplicationNotifier.Enqueue(body);
+ 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();
+ }
+ }
+
+ @Override
+ 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;
+ } 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();
+ }
+ }
+
+ @Override
+ 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();
+ }
+ }
+
+ @Override
+ 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);
+
+ 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();
+ }
+ }
+
+ @Override
+ 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());
+
+ ValidatePublish validator = new ValidatePublish(publisher);
+ validator.validateSaveBinding(em, body, null);
+
+ BindingDetail result = new BindingDetail();
+
+ 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);
+
+ validator.validateSaveBindingMax(em, modelBindingTemplate.getBusinessService().getEntityKey());
+ }
+
+ tx.commit();
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.SAVE_BINDING,
+ QueryStatus.SUCCESS, procTime);
+
+ ReplicationNotifier.Enqueue(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();
+ }
+ }
+
+ @Override
+ 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());
+
+ ValidatePublish validator = new ValidatePublish(publisher);
+ validator.validateSaveBusiness(em, body, null);
+
+ 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);
+
+ em.persist(modelBusinessEntity);
+
+ result.getBusinessEntity().add(apiBusinessEntity);
+ }
+
+ //check how many business this publisher owns.
+ validator.validateSaveBusinessMax(em);
+
+ tx.commit();
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.SAVE_BUSINESS,
+ QueryStatus.SUCCESS, procTime);
+
+ ReplicationNotifier.Enqueue(result);
+ return result;
+ } catch (DispositionReportFaultMessage drfm) {
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.SAVE_BUSINESS,
+ QueryStatus.FAILED, procTime);
+ throw drfm;
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ em.close();
+ }
+ }
+
+ @Override
+ 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());
+
+ ValidatePublish validator = new ValidatePublish(publisher);
+ validator.validateSaveService(em, body, null);
+
+ 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();
+ long procTime = System.currentTimeMillis() - startTime;
+ serviceCounter.update(PublicationQuery.SAVE_SERVICE,
+ QueryStatus.SUCCESS, procTime);
+ ReplicationNotifier.Enqueue(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();
+ }
+ }
+
+ @Override
+ 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());
+
+ new ValidatePublish(publisher).validateSaveTModel(em, body, null);
+
+ 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);
+ ReplicationNotifier.Enqueue(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();
+ }
+ }
+
+ @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);
+
+ // 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);
+ ReplicationNotifier.Enqueue(publisherAssertion);
+ } 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);
+ }
+
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org