You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2015/03/28 14:20:27 UTC
stratos git commit: Adding logic to activate mock iaas component once
stratos manager is activated
Repository: stratos
Updated Branches:
refs/heads/master 964d35dee -> 094b5fb6a
Adding logic to activate mock iaas component once stratos manager is activated
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/094b5fb6
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/094b5fb6
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/094b5fb6
Branch: refs/heads/master
Commit: 094b5fb6a25e952ce66ac5fa350541335b13e194
Parents: 964d35d
Author: Imesh Gunaratne <im...@apache.org>
Authored: Sat Mar 28 18:50:09 2015 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Sat Mar 28 18:50:09 2015 +0530
----------------------------------------------------------------------
.../internal/AutoscalerServiceComponent.java | 2 +-
.../org/apache/stratos/common/Component.java | 2 +-
.../StratosManagerServiceComponent.java | 2 +-
components/org.apache.stratos.mock.iaas/pom.xml | 5 ++
.../iaas/internal/MockIaasServiceComponent.java | 60 ++++++++++++++------
.../iaas/internal/ServiceReferenceHolder.java | 10 ++++
6 files changed, 62 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/094b5fb6/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
index 81608ec..a1c038e 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/internal/AutoscalerServiceComponent.java
@@ -101,7 +101,7 @@ public class AutoscalerServiceComponent {
try {
ComponentStartUpSynchronizer componentStartUpSynchronizer =
ServiceReferenceHolder.getInstance().getComponentStartUpSynchronizer();
- // Wait for cloud controller component to start
+ // Wait for cloud controller component to be activated
componentStartUpSynchronizer.waitForComponentActivation(Component.Autoscaler,
Component.CloudController);
http://git-wip-us.apache.org/repos/asf/stratos/blob/094b5fb6/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/Component.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/Component.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/Component.java
index 28f5341..c59593a 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/Component.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/Component.java
@@ -23,5 +23,5 @@ package org.apache.stratos.common;
* Stratos components enumeration.
*/
public enum Component {
- MessageBroker, StratosManager, CloudController, Autoscaler, ComplexEventProcessor
+ MessageBroker, StratosManager, CloudController, Autoscaler, ComplexEventProcessor, MockIaaS
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/094b5fb6/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
index 00fc68d..796d8b6 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/internal/StratosManagerServiceComponent.java
@@ -107,7 +107,7 @@ public class StratosManagerServiceComponent {
ComponentStartUpSynchronizer componentStartUpSynchronizer =
ServiceReferenceHolder.getInstance().getComponentStartUpSynchronizer();
- // Wait for cloud controller and autoscaler components to start
+ // Wait for cloud controller and autoscaler components to be activated
componentStartUpSynchronizer.waitForComponentActivation(Component.StratosManager,
Component.CloudController);
componentStartUpSynchronizer.waitForComponentActivation(Component.StratosManager,
http://git-wip-us.apache.org/repos/asf/stratos/blob/094b5fb6/components/org.apache.stratos.mock.iaas/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.mock.iaas/pom.xml b/components/org.apache.stratos.mock.iaas/pom.xml
index 9a0aed1..ba2e4c7 100644
--- a/components/org.apache.stratos.mock.iaas/pom.xml
+++ b/components/org.apache.stratos.mock.iaas/pom.xml
@@ -31,6 +31,11 @@
</dependency>
<dependency>
<groupId>org.apache.stratos</groupId>
+ <artifactId>org.apache.stratos.common</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.stratos</groupId>
<artifactId>org.apache.stratos.messaging</artifactId>
<version>${project.version}</version>
</dependency>
http://git-wip-us.apache.org/repos/asf/stratos/blob/094b5fb6/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/internal/MockIaasServiceComponent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/internal/MockIaasServiceComponent.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/internal/MockIaasServiceComponent.java
index f998401..e1828e8 100644
--- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/internal/MockIaasServiceComponent.java
+++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/internal/MockIaasServiceComponent.java
@@ -21,6 +21,8 @@ package org.apache.stratos.mock.iaas.internal;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.common.Component;
+import org.apache.stratos.common.services.ComponentStartUpSynchronizer;
import org.apache.stratos.mock.iaas.config.MockIaasConfig;
import org.apache.stratos.mock.iaas.persistence.PersistenceManager;
import org.apache.stratos.mock.iaas.persistence.PersistenceManagerFactory;
@@ -38,30 +40,48 @@ import org.wso2.carbon.registry.core.session.UserRegistry;
* @scr.component name="org.apache.stratos.mock.iaas.internal.MockIaasServiceComponent" immediate="true"
* @scr.reference name="registry.service" interface="org.wso2.carbon.registry.core.service.RegistryService"
* cardinality="1..1" policy="dynamic" bind="setRegistryService" unbind="unsetRegistryService"
+ * @scr.reference name="componentStartUpSynchronizer" interface="org.apache.stratos.common.services.ComponentStartUpSynchronizer"
+ * cardinality="1..1" policy="dynamic" bind="setComponentStartUpSynchronizer" unbind="unsetComponentStartUpSynchronizer"
*/
public class MockIaasServiceComponent {
private static final Log log = LogFactory.getLog(MockIaasServiceComponent.class);
- protected void activate(ComponentContext context) {
- try {
- if(!MockIaasConfig.getInstance().isEnabled()) {
- log.debug("Mock IaaS is disabled, Mock IaaS service component is not activated");
- return;
- }
+ protected void activate(final ComponentContext context) {
+ Runnable mockIaasActivator = new Runnable() {
+ @Override
+ public void run() {
+ try {
+ if(!MockIaasConfig.getInstance().isEnabled()) {
+ log.debug("Mock IaaS is disabled, Mock IaaS service component is not activated");
+ return;
+ }
- PersistenceManager persistenceManager = PersistenceManagerFactory.getPersistenceManager(PersistenceManagerType.Registry);
- MockIaasServiceUtil mockIaasServiceUtil = new MockIaasServiceUtil(persistenceManager);
- mockIaasServiceUtil.startInstancesPersisted();
+ ComponentStartUpSynchronizer componentStartUpSynchronizer =
+ ServiceReferenceHolder.getInstance().getComponentStartUpSynchronizer();
- MockIaasService mockIaasService = new MockIaasServiceImpl();
- context.getBundleContext().registerService(MockIaasService.class.getName(), mockIaasService, null);
- log.info("Mock IaaS service registered");
+ // Wait for stratos manager to be activated
+ componentStartUpSynchronizer.waitForComponentActivation(Component.MockIaaS,
+ Component.StratosManager);
- log.info("Mock IaaS service component activated");
- } catch (Exception e) {
- log.error("An error occurred when starting mock instances", e);
- }
+ PersistenceManager persistenceManager =
+ PersistenceManagerFactory.getPersistenceManager(PersistenceManagerType.Registry);
+ MockIaasServiceUtil mockIaasServiceUtil = new MockIaasServiceUtil(persistenceManager);
+ mockIaasServiceUtil.startInstancesPersisted();
+
+ MockIaasService mockIaasService = new MockIaasServiceImpl();
+ context.getBundleContext().registerService(MockIaasService.class.getName(), mockIaasService, null);
+ log.info("Mock IaaS service registered");
+
+ componentStartUpSynchronizer.setComponentStatus(Component.MockIaaS, true);
+ log.info("Mock IaaS service component activated");
+ } catch (Exception e) {
+ log.error("An error occurred when starting mock instances", e);
+ }
+ }
+ };
+ Thread mockIaasActivatorThread = new Thread(mockIaasActivator);
+ mockIaasActivatorThread.start();
}
protected void deactivate(ComponentContext context) {
@@ -87,4 +107,12 @@ public class MockIaasServiceComponent {
}
ServiceReferenceHolder.getInstance().setRegistry(null);
}
+
+ protected void setComponentStartUpSynchronizer(ComponentStartUpSynchronizer componentStartUpSynchronizer) {
+ ServiceReferenceHolder.getInstance().setComponentStartUpSynchronizer(componentStartUpSynchronizer);
+ }
+
+ protected void unsetComponentStartUpSynchronizer(ComponentStartUpSynchronizer componentStartUpSynchronizer) {
+ ServiceReferenceHolder.getInstance().setComponentStartUpSynchronizer(null);
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/094b5fb6/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/internal/ServiceReferenceHolder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/internal/ServiceReferenceHolder.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/internal/ServiceReferenceHolder.java
index 1d75f8a..1334d93 100644
--- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/internal/ServiceReferenceHolder.java
+++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/internal/ServiceReferenceHolder.java
@@ -19,6 +19,7 @@
package org.apache.stratos.mock.iaas.internal;
+import org.apache.stratos.common.services.ComponentStartUpSynchronizer;
import org.wso2.carbon.registry.core.session.UserRegistry;
/**
@@ -28,6 +29,7 @@ public class ServiceReferenceHolder {
private static volatile ServiceReferenceHolder instance;
private UserRegistry registry;
+ private ComponentStartUpSynchronizer componentStartUpSynchronizer;
private ServiceReferenceHolder() {
}
@@ -50,4 +52,12 @@ public class ServiceReferenceHolder {
public UserRegistry getRegistry() {
return registry;
}
+
+ public void setComponentStartUpSynchronizer(ComponentStartUpSynchronizer componentStartUpSynchronizer) {
+ this.componentStartUpSynchronizer = componentStartUpSynchronizer;
+ }
+
+ public ComponentStartUpSynchronizer getComponentStartUpSynchronizer() {
+ return componentStartUpSynchronizer;
+ }
}