You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by me...@apache.org on 2014/09/18 03:46:48 UTC
git commit: Create and Persist Composite Application Subscriptions in
SM from the Topology after the ApplicationCreatedEvent
Repository: stratos
Updated Branches:
refs/heads/4.0.0-grouping 4b9832870 -> 04fa25e6e
Create and Persist Composite Application Subscriptions in SM from the Topology after the ApplicationCreatedEvent
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/04fa25e6
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/04fa25e6
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/04fa25e6
Branch: refs/heads/4.0.0-grouping
Commit: 04fa25e6e8d12f8fd63fdd1c861311917c4aa584
Parents: 4b98328
Author: Martin Eppel <me...@cisco..com>
Authored: Wed Sep 17 18:45:23 2014 -0700
Committer: Martin Eppel <me...@cisco..com>
Committed: Wed Sep 17 18:45:23 2014 -0700
----------------------------------------------------------------------
.../manager/CartridgeSubscriptionManager.java | 22 ++++++++---
.../StratosManagerTopologyEventReceiver.java | 39 ++++++++++++++++++++
2 files changed, 56 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/04fa25e6/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
index bdf5b37..11297d1 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
@@ -38,10 +38,6 @@ import org.apache.stratos.manager.repository.Repository;
import org.apache.stratos.manager.retriever.DataInsertionAndRetrievalManager;
import org.apache.stratos.manager.subscriber.Subscriber;
import org.apache.stratos.manager.subscription.*;
-import org.apache.stratos.manager.subscription.CartridgeSubscription;
-import org.apache.stratos.manager.subscription.PersistenceContext;
-import org.apache.stratos.manager.subscription.SubscriptionData;
-import org.apache.stratos.manager.subscription.SubscriptionDomain;
import org.apache.stratos.manager.subscription.factory.CartridgeSubscriptionFactory;
import org.apache.stratos.manager.subscription.tenancy.SubscriptionMultiTenantBehaviour;
import org.apache.stratos.manager.subscription.tenancy.SubscriptionSingleTenantBehaviour;
@@ -95,6 +91,10 @@ public class CartridgeSubscriptionManager {
public CompositeAppSubscription createCompositeAppSubscription (String appId, int tenantId) throws CompositeAppSubscriptionException {
+ if (log.isDebugEnabled()) {
+ log.debug("createCompositeAppSubscription for appId: " + appId + " and tenantId: " + tenantId);
+ }
+
DataInsertionAndRetrievalManager dataInsertionAndRetrievalMgr = new DataInsertionAndRetrievalManager();
CompositeAppSubscription compositeAppSubscription;
@@ -102,12 +102,24 @@ public class CartridgeSubscriptionManager {
compositeAppSubscription = dataInsertionAndRetrievalMgr.getCompositeAppSubscription(tenantId, appId);
} catch (PersistenceManagerException e) {
+ log.error("failed to createCompositeAppSubscription for appId: " + appId + " and tenantId: " + tenantId + " e:" + e);
throw new CompositeAppSubscriptionException(e);
}
if (compositeAppSubscription != null) {
// Composite App Subscription already exists with same app id
- throw new CompositeAppSubscriptionException("Composite App Subscription already exists with Id [ " + appId + " ]");
+ log.error("app Id already exists, failed to createCompositeAppSubscription for appId: " + appId + " and tenantId: " + tenantId);
+ throw new CompositeAppSubscriptionException("Composite App Subscription already exists with Id [ " + appId + " ]");
+ } else {
+ // persist
+ try {
+ persistCompositeAppSubscription(compositeAppSubscription);
+ } catch (ADCException e) {
+ // TODO Auto-generated catch block
+ log.error("app Id already exists, failed to createCompositeAppSubscription for appId: " + appId +
+ " and tenantId: " + tenantId + " e:" + e);
+ e.printStackTrace();
+ }
}
return new CompositeAppSubscription(appId);
http://git-wip-us.apache.org/repos/asf/stratos/blob/04fa25e6/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java
index 94ba486..6d24765 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/receiver/StratosManagerTopologyEventReceiver.java
@@ -21,7 +21,14 @@ package org.apache.stratos.manager.topology.receiver;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.manager.exception.ADCException;
+import org.apache.stratos.manager.exception.CompositeAppSubscriptionException;
+import org.apache.stratos.manager.exception.CompositeApplicationDefinitionException;
+import org.apache.stratos.manager.exception.CompositeApplicationException;
+import org.apache.stratos.manager.manager.CartridgeSubscriptionManager;
+import org.apache.stratos.manager.subscription.CompositeAppSubscription;
import org.apache.stratos.manager.topology.model.TopologyClusterInformationModel;
+import org.apache.stratos.messaging.domain.topology.Application;
import org.apache.stratos.messaging.domain.topology.Cluster;
import org.apache.stratos.messaging.domain.topology.Member;
import org.apache.stratos.messaging.domain.topology.Service;
@@ -269,6 +276,38 @@ public class StratosManagerTopologyEventReceiver implements Runnable {
}
}
});
+
+ //add listner to Complete Topology Event
+ topologyEventReceiver.addEventListener(new ApplicationCreatedEventListener() {
+ @Override
+ protected void onEvent(Event event) {
+
+ ApplicationCreatedEvent appCreateEvent = (ApplicationCreatedEvent) event;
+
+ log.info("[ApplicationCreatedEventListener] Received: " + event.getClass());
+
+ try {
+ TopologyManager.acquireReadLock();
+
+ // create and persist Application subscritpion
+ CartridgeSubscriptionManager cartridgeSubscriptionManager = new CartridgeSubscriptionManager();
+ CompositeAppSubscription compositeAppSubscription;
+ Application app = appCreateEvent.getApplication();
+ String appId = app.getId();
+ int tenantId = app.getTenantId();
+ try {
+ compositeAppSubscription = cartridgeSubscriptionManager.createCompositeAppSubscription(appId, tenantId);
+ cartridgeSubscriptionManager.persistCompositeAppSubscription(compositeAppSubscription);
+ } catch (CompositeAppSubscriptionException e) {
+ //throw new CompositeApplicationDefinitionException(e);
+ } catch (ADCException e) {
+ //throw new CompositeApplicationException(e);
+ }
+ } finally {
+ TopologyManager.releaseReadLock();
+ }
+ }
+ });
}