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; }
