Repository: stratos
Updated Branches:
  refs/heads/stratos-4.1.x bba650ea4 -> 4df694d08


Fixing domain mapping event handling issue in messaging and load balancer 
extension


Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/4df694d0
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/4df694d0
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/4df694d0

Branch: refs/heads/stratos-4.1.x
Commit: 4df694d08d765a296c83ac72a5355a89e84553b3
Parents: bba650e
Author: Imesh Gunaratne <[email protected]>
Authored: Wed Oct 14 16:56:11 2015 +0530
Committer: Imesh Gunaratne <[email protected]>
Committed: Wed Oct 14 16:56:31 2015 +0530

----------------------------------------------------------------------
 .../extension/api/LoadBalancerExtension.java      | 12 ++++++++++++
 ...ompleteApplicationSignUpsMessageProcessor.java | 18 ++++++++++++++++++
 .../DomainMappingAddedMessageProcessor.java       |  2 +-
 .../DomainMappingRemovedMessageProcessor.java     |  2 +-
 4 files changed, 32 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/4df694d0/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java
 
b/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java
index 862d28a..ae2b6dd 100644
--- 
a/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java
+++ 
b/components/org.apache.stratos.load.balancer.extension.api/src/main/java/org/apache/stratos/load/balancer/extension/api/LoadBalancerExtension.java
@@ -38,6 +38,7 @@ import org.apache.stratos.messaging.listener.topology.*;
 import 
org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilter;
 import 
org.apache.stratos.messaging.message.filter.topology.TopologyMemberFilter;
 import 
org.apache.stratos.messaging.message.filter.topology.TopologyServiceFilter;
+import 
org.apache.stratos.messaging.message.receiver.application.ApplicationsEventReceiver;
 
 import java.util.concurrent.ExecutorService;
 
@@ -59,6 +60,7 @@ public class LoadBalancerExtension {
     private LoadBalancerCommonTopologyEventReceiver topologyEventReceiver;
     private LoadBalancerCommonDomainMappingEventReceiver 
domainMappingEventReceiver;
     private LoadBalancerCommonApplicationSignUpEventReceiver 
applicationSignUpEventReceiver;
+    private ApplicationsEventReceiver applicationsEventReceiver;
 
     /**
      * Load balancer extension constructor.
@@ -86,6 +88,7 @@ public class LoadBalancerExtension {
 
             // Start topology receiver thread
             startTopologyEventReceiver(executorService, topologyProvider);
+            startApplicationEventReceiver(executorService);
             startApplicationSignUpEventReceiver(executorService, 
topologyProvider);
             startDomainMappingEventReceiver(executorService, topologyProvider);
 
@@ -144,6 +147,15 @@ public class LoadBalancerExtension {
         }
     }
 
+    private void startApplicationEventReceiver(ExecutorService 
executorService) {
+        applicationsEventReceiver = new ApplicationsEventReceiver();
+        applicationsEventReceiver.setExecutorService(executorService);
+        applicationsEventReceiver.execute();
+        if (log.isInfoEnabled()) {
+            log.info("Application event receiver thread started");
+        }
+    }
+
     /**
      * Start domain mapping event receiver thread.
      *

http://git-wip-us.apache.org/repos/asf/stratos/blob/4df694d0/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/signup/CompleteApplicationSignUpsMessageProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/signup/CompleteApplicationSignUpsMessageProcessor.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/signup/CompleteApplicationSignUpsMessageProcessor.java
index 8e26eaf..c838d67 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/signup/CompleteApplicationSignUpsMessageProcessor.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/application/signup/CompleteApplicationSignUpsMessageProcessor.java
@@ -25,8 +25,11 @@ import 
org.apache.stratos.messaging.domain.application.signup.ApplicationSignUp;
 import 
org.apache.stratos.messaging.event.application.signup.CompleteApplicationSignUpsEvent;
 import org.apache.stratos.messaging.message.processor.MessageProcessor;
 import 
org.apache.stratos.messaging.message.receiver.application.signup.ApplicationSignUpManager;
+import 
org.apache.stratos.messaging.message.receiver.domain.mapping.DomainMappingManager;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
+import java.util.Arrays;
+
 /**
  * Complete application signups message processor.
  */
@@ -63,11 +66,26 @@ public class CompleteApplicationSignUpsMessageProcessor 
extends MessageProcessor
                         }
                     }
                     
ApplicationSignUpManager.getInstance().setInitialized(true);
+                    log.info("Application signups initialized");
                 } finally {
                     ApplicationSignUpManager.releaseWriteLock();
                 }
             }
 
+            if(!DomainMappingManager.getInstance().isInitialized()) {
+                try {
+                    DomainMappingManager.acquireWriteLock();
+                    for (ApplicationSignUp applicationSignUp : 
event.getApplicationSignUps()) {
+                        DomainMappingManager.getInstance().addDomainMappings(
+                                
Arrays.asList(applicationSignUp.getDomainMappings()));
+                    }
+                    DomainMappingManager.getInstance().setInitialized(true);
+                    log.info("Domain mappings initialized");
+                } finally {
+                    DomainMappingManager.releaseWriteLock();
+                }
+            }
+
             notifyEventListeners(event);
             return true;
         } else if (nextProcessor != null) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/4df694d0/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/domain/mapping/DomainMappingAddedMessageProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/domain/mapping/DomainMappingAddedMessageProcessor.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/domain/mapping/DomainMappingAddedMessageProcessor.java
index b4ef076..239ebfc 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/domain/mapping/DomainMappingAddedMessageProcessor.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/domain/mapping/DomainMappingAddedMessageProcessor.java
@@ -74,7 +74,7 @@ public class DomainMappingAddedMessageProcessor extends 
MessageProcessor {
                 Application application = 
ApplicationManager.getApplications().getApplication(applicationId);
                 if (application == null) {
                     if (log.isWarnEnabled()) {
-                        log.warn(String.format("Application not found: 
[application-id] %d", applicationId));
+                        log.warn(String.format("Application not found: 
[application-id] %s", applicationId));
                     }
                     return false;
                 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/4df694d0/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/domain/mapping/DomainMappingRemovedMessageProcessor.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/domain/mapping/DomainMappingRemovedMessageProcessor.java
 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/domain/mapping/DomainMappingRemovedMessageProcessor.java
index f7fc054..63316ce 100644
--- 
a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/domain/mapping/DomainMappingRemovedMessageProcessor.java
+++ 
b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/domain/mapping/DomainMappingRemovedMessageProcessor.java
@@ -75,7 +75,7 @@ public class DomainMappingRemovedMessageProcessor extends 
MessageProcessor {
                 Application application = 
ApplicationManager.getApplications().getApplication(applicationId);
                 if (application == null) {
                     if (log.isWarnEnabled()) {
-                        log.warn(String.format("Application not found: 
[application-id] %d", applicationId));
+                        log.warn(String.format("Application not found: 
[application-id] %s", applicationId));
                     }
                     return false;
                 }

Reply via email to