You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2019/04/03 19:33:54 UTC

[airavata] branch develop updated: AIRAVATA-3002 Specify publishing service instead of deriving from entity type

This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata.git


The following commit(s) were added to refs/heads/develop by this push:
     new 6134da4  AIRAVATA-3002 Specify publishing service instead of deriving from entity type
6134da4 is described below

commit 6134da4f912da0720a16b2608c4745ef05fa2eea
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Wed Apr 3 15:33:15 2019 -0400

    AIRAVATA-3002 Specify publishing service instead of deriving from entity type
---
 .../common/utils/DBEventManagerConstants.java        |  1 +
 .../messaging/core/util/DBEventPublisherUtils.java   | 20 ++++++++++++--------
 .../messaging/RegistryServiceDBEventHandler.java     |  3 ++-
 3 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/modules/commons/src/main/java/org/apache/airavata/common/utils/DBEventManagerConstants.java b/modules/commons/src/main/java/org/apache/airavata/common/utils/DBEventManagerConstants.java
index 3b24155..60e8c25 100644
--- a/modules/commons/src/main/java/org/apache/airavata/common/utils/DBEventManagerConstants.java
+++ b/modules/commons/src/main/java/org/apache/airavata/common/utils/DBEventManagerConstants.java
@@ -69,6 +69,7 @@ public class DBEventManagerConstants {
      * @param entityType
      * @return
      */
+    @Deprecated
     public static String getDbEventServiceName(EntityType entityType) {
         for (DBEventService service : DBEventService.values()) {
             if (service.name().equals(entityType.name())) {
diff --git a/modules/messaging/core/src/main/java/org/apache/airavata/messaging/core/util/DBEventPublisherUtils.java b/modules/messaging/core/src/main/java/org/apache/airavata/messaging/core/util/DBEventPublisherUtils.java
index 61b861c..d38154d 100644
--- a/modules/messaging/core/src/main/java/org/apache/airavata/messaging/core/util/DBEventPublisherUtils.java
+++ b/modules/messaging/core/src/main/java/org/apache/airavata/messaging/core/util/DBEventPublisherUtils.java
@@ -25,7 +25,12 @@ import org.slf4j.LoggerFactory;
 public class DBEventPublisherUtils {
 
     private final static Logger logger = LoggerFactory.getLogger(DBEventPublisherUtils.class);
-    private static Publisher dbEventPublisher = null;
+    private Publisher dbEventPublisher = null;
+    private DBEventService publisherService;
+
+    public DBEventPublisherUtils(DBEventService dbEventService) {
+        this.publisherService = dbEventService;
+    }
 
     /**
      * Publish DB Event for given entity.
@@ -33,10 +38,9 @@ public class DBEventPublisherUtils {
      * @param crudType
      * @param entityModel
      */
-    public static void publish(EntityType entityType, CrudType crudType, TBase entityModel) throws AiravataException {
+    public void publish(EntityType entityType, CrudType crudType, TBase entityModel) throws AiravataException {
 
-        DBEventPublisherUtils.getDbEventPublisher().publish(
-                DBEventPublisherUtils.getDBEventMessageContext(entityType, crudType, entityModel),
+        getDbEventPublisher().publish(getDBEventMessageContext(entityType, crudType, entityModel),
                 DBEventManagerConstants.getRoutingKey(DBEventService.DB_EVENT.toString()));
     }
 
@@ -45,9 +49,9 @@ public class DBEventPublisherUtils {
      * @return
      * @throws AiravataException
      */
-    private static Publisher getDbEventPublisher() throws AiravataException {
+    private Publisher getDbEventPublisher() throws AiravataException {
         if(null == dbEventPublisher){
-            synchronized (DBEventPublisherUtils.class){
+            synchronized (this){
                 if(null == dbEventPublisher){
                     logger.info("Creating DB Event publisher.....");
                     dbEventPublisher = MessagingFactory.getDBEventPublisher();
@@ -66,7 +70,7 @@ public class DBEventPublisherUtils {
      * @return
      * @throws AiravataException
      */
-    private static MessageContext getDBEventMessageContext(EntityType entityType, CrudType crudType, TBase entityModel) throws AiravataException {
+    private MessageContext getDBEventMessageContext(EntityType entityType, CrudType crudType, TBase entityModel) throws AiravataException {
         try {
             // set the publisherContext
             DBEventMessage dbEventMessage = new DBEventMessage();
@@ -84,7 +88,7 @@ public class DBEventPublisherUtils {
 
             // set dbEventMessage with messageContext
             dbEventMessage.setDbEventType(DBEventType.PUBLISHER);
-            dbEventMessage.setPublisherService(DBEventManagerConstants.getDbEventServiceName(entityType));
+            dbEventMessage.setPublisherService(this.publisherService.toString());
             dbEventMessage.setMessageContext(dbMessageContext);
 
             // construct and return messageContext
diff --git a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/messaging/RegistryServiceDBEventHandler.java b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/messaging/RegistryServiceDBEventHandler.java
index 3bbfe25..a099e8f 100644
--- a/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/messaging/RegistryServiceDBEventHandler.java
+++ b/modules/registry/registry-server/registry-api-service/src/main/java/org/apache/airavata/registry/api/service/messaging/RegistryServiceDBEventHandler.java
@@ -54,6 +54,7 @@ public class RegistryServiceDBEventHandler implements MessageHandler {
 
     private static final Logger logger = LoggerFactory.getLogger(RegistryServiceDBEventHandler.class);
     private final ThriftClientPool<RegistryService.Client> registryClientPool;
+    private DBEventPublisherUtils dbEventPublisherUtils = new DBEventPublisherUtils(DBEventService.REGISTRY);
 
     public RegistryServiceDBEventHandler() throws ApplicationSettingsException, RegistryServiceException {
 
@@ -142,7 +143,7 @@ public class RegistryServiceDBEventHandler implements MessageHandler {
                                 if (defaultProject != null) {
 
                                     // Publish new PROJECT event (sharing service will listen for it and register this as a shared Entity)
-                                    DBEventPublisherUtils.publish(EntityType.PROJECT, CrudType.CREATE, defaultProject);
+                                    dbEventPublisherUtils.publish(EntityType.PROJECT, CrudType.CREATE, defaultProject);
                                 }
                                 logger.info("addUser Replication Success!");
                                 break;