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(-)
----------------------------------------------------------------------