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 2013/12/06 05:52:10 UTC
[1/2] git commit: Implemented tenant message processors
Updated Branches:
refs/heads/master 90a1af7a5 -> 83cbec461
Implemented tenant message processors
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/4fcdc4ff
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/4fcdc4ff
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/4fcdc4ff
Branch: refs/heads/master
Commit: 4fcdc4ff51b905b9e095081a1b65396c381aee49
Parents: 9ced655
Author: Imesh Gunaratne <im...@apache.org>
Authored: Fri Dec 6 10:21:34 2013 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Fri Dec 6 10:21:34 2013 +0530
----------------------------------------------------------------------
.../stratos/messaging/domain/tenant/Tenant.java | 4 ++
.../event/tenant/TenantCreatedEvent.java | 18 +++-----
.../tenant/TenantCreatedMessageProcessor.java | 36 +++++++++++++++-
.../tenant/TenantRemovedMessageProcessor.java | 45 +++++++++++++++++++-
.../tenant/TenantUpdatedMessageProcessor.java | 45 +++++++++++++++++++-
5 files changed, 131 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/4fcdc4ff/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/Tenant.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/Tenant.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/Tenant.java
index 932cf72..039ff8c 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/Tenant.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/Tenant.java
@@ -42,4 +42,8 @@ public class Tenant implements Serializable{
public String getTenantDomain() {
return tenantDomain;
}
+
+ public void setTenantDomain(String tenantDomain) {
+ this.tenantDomain = tenantDomain;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/4fcdc4ff/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantCreatedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantCreatedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantCreatedEvent.java
index 34d3b69..2c37ef3 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantCreatedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantCreatedEvent.java
@@ -19,6 +19,8 @@
package org.apache.stratos.messaging.event.tenant;
+import org.apache.stratos.messaging.domain.tenant.Tenant;
+
import java.io.Serializable;
/**
@@ -27,19 +29,13 @@ import java.io.Serializable;
public class TenantCreatedEvent extends TenantEvent implements Serializable {
private static final long serialVersionUID = -5954900215964894383L;
- private int tenantId;
- private String tenantDomain;
-
- public TenantCreatedEvent(int tenantId, String tenantDomain) {
- this.tenantId = tenantId;
- this.tenantDomain = tenantDomain;
- }
+ private Tenant tenant;
- public int getTenantId() {
- return tenantId;
+ public TenantCreatedEvent(Tenant tenant) {
+ this.tenant = tenant;
}
- public String getTenantDomain() {
- return tenantDomain;
+ public Tenant getTenant() {
+ return tenant;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/4fcdc4ff/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantCreatedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantCreatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantCreatedMessageProcessor.java
index e41982c..ebd8b5d 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantCreatedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantCreatedMessageProcessor.java
@@ -19,7 +19,12 @@
package org.apache.stratos.messaging.message.processor.tenant;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.messaging.event.tenant.TenantCreatedEvent;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
+import org.apache.stratos.messaging.message.receiver.tenant.TenantManager;
+import org.apache.stratos.messaging.util.Util;
/**
* Tenant created message processor for triggering tenant created event
@@ -27,13 +32,40 @@ import org.apache.stratos.messaging.message.processor.MessageProcessor;
*/
public class TenantCreatedMessageProcessor extends MessageProcessor {
+ private static final Log log = LogFactory.getLog(TenantCreatedMessageProcessor.class);
+
+ private MessageProcessor nextProcessor;
+
@Override
public void setNext(MessageProcessor nextProcessor) {
-
+ this.nextProcessor = nextProcessor;
}
@Override
public boolean process(String type, String message, Object object) {
- return false;
+ if (TenantCreatedEvent.class.getName().equals(type)) {
+ // Parse complete message and build event
+ TenantCreatedEvent event = (TenantCreatedEvent) Util.jsonToObject(message, TenantCreatedEvent.class);
+
+ try {
+ TenantManager.acquireWriteLock();
+ TenantManager.getInstance().addTenant(event.getTenant());
+ if(log.isInfoEnabled()) {
+ log.info(String.format("Tenant created: [tenant-id] %d [tenant-domain] %s", event.getTenant().getTenantId(), event.getTenant().getTenantDomain()));
+ }
+ return true;
+ }
+ finally {
+ TenantManager.releaseWriteLock();
+ }
+ }
+ else {
+ if(nextProcessor != null) {
+ return nextProcessor.process(type, message, object);
+ }
+ else {
+ throw new RuntimeException(String.format("Failed to process tenant message using available message processors: [type] %s [body] %s", type, message));
+ }
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/4fcdc4ff/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantRemovedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantRemovedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantRemovedMessageProcessor.java
index 27bb681..2ad5cb8 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantRemovedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantRemovedMessageProcessor.java
@@ -19,7 +19,13 @@
package org.apache.stratos.messaging.message.processor.tenant;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.messaging.domain.tenant.Tenant;
+import org.apache.stratos.messaging.event.tenant.TenantRemovedEvent;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
+import org.apache.stratos.messaging.message.receiver.tenant.TenantManager;
+import org.apache.stratos.messaging.util.Util;
/**
* Tenant removed message processor for triggering tenant removed event
@@ -27,13 +33,48 @@ import org.apache.stratos.messaging.message.processor.MessageProcessor;
*/
public class TenantRemovedMessageProcessor extends MessageProcessor {
+ private static final Log log = LogFactory.getLog(TenantRemovedMessageProcessor.class);
+
+ private MessageProcessor nextProcessor;
+
@Override
public void setNext(MessageProcessor nextProcessor) {
-
+ this.nextProcessor = nextProcessor;
}
@Override
public boolean process(String type, String message, Object object) {
- return false;
+ if (TenantRemovedEvent.class.getName().equals(type)) {
+ // Parse complete message and build event
+ TenantRemovedEvent event = (TenantRemovedEvent) Util.jsonToObject(message, TenantRemovedEvent.class);
+
+ try {
+ TenantManager.acquireWriteLock();
+ Tenant tenant = TenantManager.getInstance().getTenant(event.getTenantId());
+ if(tenant == null) {
+ if(log.isWarnEnabled()) {
+ log.warn(String.format("Tenant not found: [tenant-id] %d", event.getTenantId()));
+ }
+ return false;
+ }
+ TenantManager.getInstance().removeTenant(event.getTenantId());
+
+ if(log.isInfoEnabled()) {
+ log.info(String.format("Tenant removed: [tenant-id] %d [tenant-domain] %s", tenant.getTenantId(), tenant.getTenantDomain()));
+ }
+ return true;
+ }
+ finally {
+ TenantManager.releaseWriteLock();
+ }
+ }
+ else {
+ if(nextProcessor != null) {
+ return nextProcessor.process(type, message, object);
+ }
+ else {
+ throw new RuntimeException(String.format("Failed to process tenant message using available message processors: [type] %s [body] %s", type, message));
+ }
+ }
}
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/4fcdc4ff/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantUpdatedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantUpdatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantUpdatedMessageProcessor.java
index eae5cdd..e89ef36 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantUpdatedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/tenant/TenantUpdatedMessageProcessor.java
@@ -19,7 +19,13 @@
package org.apache.stratos.messaging.message.processor.tenant;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.messaging.domain.tenant.Tenant;
+import org.apache.stratos.messaging.event.tenant.TenantUpdatedEvent;
import org.apache.stratos.messaging.message.processor.MessageProcessor;
+import org.apache.stratos.messaging.message.receiver.tenant.TenantManager;
+import org.apache.stratos.messaging.util.Util;
/**
* Tenant updated message processor for triggering tenant updated event
@@ -27,13 +33,48 @@ import org.apache.stratos.messaging.message.processor.MessageProcessor;
*/
public class TenantUpdatedMessageProcessor extends MessageProcessor {
+ private static final Log log = LogFactory.getLog(TenantUpdatedMessageProcessor.class);
+
+ private MessageProcessor nextProcessor;
+
@Override
public void setNext(MessageProcessor nextProcessor) {
-
+ this.nextProcessor = nextProcessor;
}
@Override
public boolean process(String type, String message, Object object) {
- return false;
+ if (TenantUpdatedEvent.class.getName().equals(type)) {
+ // Parse complete message and build event
+ TenantUpdatedEvent event = (TenantUpdatedEvent) Util.jsonToObject(message, TenantUpdatedEvent.class);
+
+ try {
+ TenantManager.acquireWriteLock();
+ Tenant tenant = TenantManager.getInstance().getTenant(event.getTenantId());
+ if(tenant == null) {
+ if(log.isWarnEnabled()) {
+ log.warn(String.format("Tenant not found: [tenant-id] %d", event.getTenantId()));
+ }
+ return false;
+ }
+ tenant.setTenantDomain(event.getTenantDomain());
+
+ if(log.isInfoEnabled()) {
+ log.info(String.format("Tenant updated: [tenant-id] %d [tenant-domain] %s", tenant.getTenantId(), tenant.getTenantDomain()));
+ }
+ return true;
+ }
+ finally {
+ TenantManager.releaseWriteLock();
+ }
+ }
+ else {
+ if(nextProcessor != null) {
+ return nextProcessor.process(type, message, object);
+ }
+ else {
+ throw new RuntimeException(String.format("Failed to process tenant message using available message processors: [type] %s [body] %s", type, message));
+ }
+ }
}
}
[2/2] git commit: Merge remote-tracking branch 'origin/master'
Posted by im...@apache.org.
Merge remote-tracking branch 'origin/master'
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/83cbec46
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/83cbec46
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/83cbec46
Branch: refs/heads/master
Commit: 83cbec4612b18611896c50ec963efdd08fc1ba6c
Parents: 4fcdc4f 90a1af7
Author: Imesh Gunaratne <im...@apache.org>
Authored: Fri Dec 6 10:22:01 2013 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Fri Dec 6 10:22:01 2013 +0530
----------------------------------------------------------------------
.../org.apache.stratos.rest.endpoint/pom.xml | 6 +-
.../bean/autoscaler/partition/Partition.java | 39 ++++
.../autoscaler/partition/PartitionGroup.java | 34 +++
.../policy/autoscale/AutoscalePolicy.java | 34 +++
.../policy/autoscale/LoadAverage.java | 36 +++
.../policy/autoscale/LoadThresholds.java | 32 +++
.../policy/autoscale/MemoryConsumption.java | 36 +++
.../policy/autoscale/RequestsInFlight.java | 36 +++
.../policy/deployment/DeploymentPolicy.java | 35 +++
.../bean/util/convert/PojoConverter.java | 25 ++
.../service/client/AutoscalerServiceClient.java | 111 +++++++++
.../rest/endpoint/services/ServiceUtils.java | 226 ++++++++++++++++++-
.../rest/endpoint/services/StratosAdmin.java | 44 ++++
.../src/main/partitions/partitions.xml | 6 +-
.../pom.xml | 1 +
15 files changed, 691 insertions(+), 10 deletions(-)
----------------------------------------------------------------------