You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ma...@apache.org on 2014/07/08 09:41:54 UTC
[04/14] Clustering changes for stratos
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/payload/BasicPayloadData.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/payload/BasicPayloadData.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/payload/BasicPayloadData.java
index 0d27b1b..70fb974 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/payload/BasicPayloadData.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/payload/BasicPayloadData.java
@@ -47,6 +47,7 @@ public class BasicPayloadData implements Serializable {
private String gitRepositoryUrl;
private String portMappings;
private String multitenant;
+ private String provider;
protected StringBuilder payloadBuilder;
@@ -74,13 +75,15 @@ public class BasicPayloadData implements Serializable {
payloadBuilder.append(",");
payloadBuilder.append("CARTRIDGE_KEY=" + getSubscriptionKey());
payloadBuilder.append(",");
- payloadBuilder.append("DEPLOYMENT=" + getDeployment());
- payloadBuilder.append(",");
+ //payloadBuilder.append("DEPLOYMENT=" + getDeployment());
+ //payloadBuilder.append(",");
//payloadBuilder.append("APP_PATH=" + getApplicationPath());
//payloadBuilder.append(",");
payloadBuilder.append("REPO_URL=" + getGitRepositoryUrl());
payloadBuilder.append(",");
payloadBuilder.append("PORTS=" + getPortMappings());
+ payloadBuilder.append(",");
+ payloadBuilder.append("PROVIDER=" + getProvider());
//Payload Data exposed as system variables
payloadBuilder.append(",");
@@ -216,4 +219,12 @@ public class BasicPayloadData implements Serializable {
public void setPuppetEnvironment(String puppetEnvironment) {
this.puppetEnvironment = puppetEnvironment;
}
+
+ public String getProvider() {
+ return provider;
+ }
+
+ public void setProvider(String provider) {
+ this.provider = provider;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/InstanceNotificationPublisher.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/InstanceNotificationPublisher.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/InstanceNotificationPublisher.java
index e10d4ff..6a885e8 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/InstanceNotificationPublisher.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/InstanceNotificationPublisher.java
@@ -57,10 +57,11 @@ public class InstanceNotificationPublisher {
artifactUpdateEvent.setRepoPassword(repository.getPassword());
artifactUpdateEvent.setRepoURL(repository.getUrl());
artifactUpdateEvent.setTenantId(tenantId);
+ artifactUpdateEvent.setCommitEnabled(repository.isCommitEnabled());
log.info(String.format("Publishing artifact updated event: [cluster] %s " +
- "[repo-URL] %s [repo-username] %s [repo-password] %s [tenant-id] %s",
- clusterId, repository.getUrl(), repository.getUserName(), repository.getPassword(), tenantId));
+ "[repo-URL] %s [repo-username] %s [tenant-id] %s",
+ clusterId, repository.getUrl(), repository.getUserName(), tenantId));
publish(artifactUpdateEvent);
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/TenantSynzhronizerTask.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/TenantSynzhronizerTask.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/TenantSynzhronizerTask.java
index 3eac3f5..1e291ab 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/TenantSynzhronizerTask.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/publisher/TenantSynzhronizerTask.java
@@ -24,18 +24,17 @@ import org.apache.commons.logging.LogFactory;
import org.apache.stratos.manager.internal.DataHolder;
import org.apache.stratos.manager.retriever.DataInsertionAndRetrievalManager;
import org.apache.stratos.manager.subscription.CartridgeSubscription;
+import org.apache.stratos.manager.subscription.SubscriptionDomain;
import org.apache.stratos.messaging.broker.publish.EventPublisher;
import org.apache.stratos.messaging.broker.publish.EventPublisherPool;
+import org.apache.stratos.messaging.domain.tenant.Subscription;
import org.apache.stratos.messaging.domain.tenant.Tenant;
import org.apache.stratos.messaging.event.tenant.CompleteTenantEvent;
import org.apache.stratos.messaging.util.Constants;
import org.wso2.carbon.ntask.core.Task;
import org.wso2.carbon.user.core.tenant.TenantManager;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* Tenant synchronizer task for publishing complete tenant event periodically
@@ -71,12 +70,18 @@ public class TenantSynzhronizerTask implements Task {
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Collection<CartridgeSubscription> cartridgeSubscriptions = new DataInsertionAndRetrievalManager().getCartridgeSubscriptions(tenant.getTenantId());
if (cartridgeSubscriptions != null && !cartridgeSubscriptions.isEmpty()) {
- for (CartridgeSubscription subscription : cartridgeSubscriptions) {
+ for (CartridgeSubscription cartridgeSubscription : cartridgeSubscriptions) {
if(log.isDebugEnabled()) {
log.debug(String.format("Tenant subscription found: [tenant-id] %d [tenant-domain] %s [service] %s",
- carbonTenant.getId(), carbonTenant.getDomain(), subscription.getType()));
+ carbonTenant.getId(), carbonTenant.getDomain(), cartridgeSubscription.getType()));
}
- tenant.addServiceSubscription(subscription.getType());
+ HashSet<String> clusterIds = new HashSet<String>();
+ clusterIds.add(cartridgeSubscription.getCluster().getClusterDomain());
+ Subscription subscription = new Subscription(cartridgeSubscription.getType(),clusterIds);
+ for(SubscriptionDomain subscriptionDomain : cartridgeSubscription.getSubscriptionDomains()) {
+ subscription.addSubscriptionDomain(subscriptionDomain.getDomainName(), subscriptionDomain.getApplicationContext());
+ }
+ tenant.addSubscription(subscription);
}
}
tenants.add(tenant);
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/repository/Repository.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/repository/Repository.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/repository/Repository.java
index 16cc2c4..ab95ae3 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/repository/Repository.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/repository/Repository.java
@@ -29,6 +29,7 @@ public class Repository implements Serializable {
private String userName;
private String password;
private boolean isPrivateRepository;
+ private boolean commitEnabled;
public String getUserName() {
return userName;
@@ -75,4 +76,12 @@ public class Repository implements Serializable {
return "Repository [id=" + id + ", url=" + url + ", userName=" + userName +
", isPrivateRepository=" + isPrivateRepository + "]";
}
+
+ public boolean isCommitEnabled() {
+ return commitEnabled;
+ }
+
+ public void setCommitEnabled(boolean commitEnabled) {
+ this.commitEnabled = commitEnabled;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/repository/RepositoryNotification.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/repository/RepositoryNotification.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/repository/RepositoryNotification.java
index 8c10d5a..778b3fc 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/repository/RepositoryNotification.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/repository/RepositoryNotification.java
@@ -57,7 +57,7 @@ public class RepositoryNotification {
if (cartridgeSubscription.getRepository() != null) {
InstanceNotificationPublisher publisher = new InstanceNotificationPublisher();
publisher.sendArtifactUpdateEvent(cartridgeSubscription.getRepository(),
- String.valueOf(cartridgeSubscription.getCluster().getId()),
+ String.valueOf(cartridgeSubscription.getCluster().getClusterDomain()),
String.valueOf(cartridgeSubscription.getSubscriber().getTenantId()));
if (log.isDebugEnabled()) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/retriever/DataInsertionAndRetrievalManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/retriever/DataInsertionAndRetrievalManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/retriever/DataInsertionAndRetrievalManager.java
index 386758f..0504fd3 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/retriever/DataInsertionAndRetrievalManager.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/retriever/DataInsertionAndRetrievalManager.java
@@ -68,6 +68,31 @@ public class DataInsertionAndRetrievalManager {
}
}
+ public void cacheAndUpdateSubscription(CartridgeSubscription cartridgeSubscription) throws PersistenceManagerException {
+
+ // get the write lock
+ LookupDataHolder.getInstance().acquireWriteLock();
+
+ try {
+ // store in LookupDataHolder
+ LookupDataHolder.getInstance().putSubscription(cartridgeSubscription);
+
+ try {
+ // store in Persistence Manager
+ persistenceManager.persistCartridgeSubscription(cartridgeSubscription);
+
+ } catch (PersistenceManagerException e) {
+ String errorMsg = "Error in updating cartridge subscription in persistence manager";
+ log.error(errorMsg, e);
+ throw e;
+ }
+
+ } finally {
+ // release the write lock
+ LookupDataHolder.getInstance().releaseWriteLock();
+ }
+ }
+
public void removeSubscription (int tenantId, String subscriptionAlias) throws PersistenceManagerException {
CartridgeSubscription cartridgeSubscription = getCartridgeSubscription(tenantId, subscriptionAlias);
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
index e143bc3..ebf7276 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
@@ -34,7 +34,7 @@ import org.apache.stratos.manager.utils.ApplicationManagementUtil;
import org.apache.stratos.manager.utils.CartridgeConstants;
import java.io.Serializable;
-import java.util.Map;
+import java.util.*;
public abstract class CartridgeSubscription implements Serializable {
@@ -58,7 +58,7 @@ public abstract class CartridgeSubscription implements Serializable {
//private List<String> connectedSubscriptionAliases;
private String subscriptionKey;
private SubscriptionTenancyBehaviour subscriptionTenancyBehaviour;
-
+ private Map<String, SubscriptionDomain> subscriptionDomainMap;
/**
* Constructor
@@ -79,6 +79,7 @@ public abstract class CartridgeSubscription implements Serializable {
//this.setSubscriptionStatus(CartridgeConstants.SUBSCRIBED);
//this.connectedSubscriptionAliases = new ArrayList<String>();
this.setSubscriptionTenancyBehaviour(subscriptionTenancyBehaviour);
+ this.subscriptionDomainMap = new HashMap<String, SubscriptionDomain>();
}
/**
@@ -117,6 +118,33 @@ public abstract class CartridgeSubscription implements Serializable {
getSubscriptionKey(), getCustomPayloadEntries()));
}
+ public void addSubscriptionDomain(SubscriptionDomain subscriptionDomain) {
+ subscriptionDomainMap.put(subscriptionDomain.getDomainName(), subscriptionDomain);
+ }
+
+ public void removeSubscriptionDomain(String domainName) {
+ if(subscriptionDomainExists(domainName)) {
+ subscriptionDomainMap.remove(domainName);
+ }
+ else {
+ if(log.isWarnEnabled()) {
+ log.warn("Subscription domain does not exist: " + domainName);
+ }
+ }
+ }
+
+ public boolean subscriptionDomainExists(String domainName) {
+ return subscriptionDomainMap.containsKey(domainName);
+ }
+
+ public SubscriptionDomain getSubscriptionDomain(String domainName) {
+ return subscriptionDomainMap.get(domainName);
+ }
+
+ public Collection<SubscriptionDomain> getSubscriptionDomains() {
+ return Collections.unmodifiableCollection(subscriptionDomainMap.values());
+ }
+
/**
* Unsubscribe from this cartridge subscription
*
@@ -387,7 +415,7 @@ public abstract class CartridgeSubscription implements Serializable {
", alias=" + alias + ", autoscalingPolicyName=" + autoscalingPolicyName +
", deploymentPolicyName=" + deploymentPolicyName + ", subscriber=" + subscriber +
", repository=" + repository + ", cartridgeInfo=" + cartridgeInfo + ", payload=" +
- payloadData + ", cluster=" + cluster + "]";
+ payloadData + ", cluster=" + cluster + "]" + ", subscriptionDomainMap=" + subscriptionDomainMap.toString();
}
public String getLbClusterId() {
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/InternalRepoBasedCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/InternalRepoBasedCartridgeSubscription.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/InternalRepoBasedCartridgeSubscription.java
index ebd9a32..1b698e2 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/InternalRepoBasedCartridgeSubscription.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/InternalRepoBasedCartridgeSubscription.java
@@ -52,11 +52,23 @@ public class InternalRepoBasedCartridgeSubscription extends CartridgeSubscriptio
RepositoryRequiredException,
RepositoryCredentialsRequiredException,
RepositoryTransportException, InvalidRepositoryException {
+
+ if(log.isDebugEnabled()) {
+ log.debug("Managing internal repo for repo URL: " + repoURL);
+ }
Repository repository = null;
String defaultRepoUserName = System.getProperty(CartridgeConstants.INTERNAL_GIT_USERNAME);
String defaultRepoPassword = System.getProperty(CartridgeConstants.INTERNAL_GIT_PASSWORD);
- String[] dirArray = null;
+ String[] dirArray = {"test"};
+
+ if (repoURL != null && !repoURL.equalsIgnoreCase("null") && !repoURL.isEmpty()) {
+ repository = new Repository();
+ repository.setUrl(repoURL);
+ repository.setUserName(defaultRepoUserName);
+ repository.setPassword(defaultRepoPassword);
+ return repository;
+ }
// Repo URL will be generated inside createInternalRepository method
RepositoryInfoBean repoInfoBean = new RepositoryInfoBean(repoURL, getAlias(), getSubscriber().getTenantDomain(),
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java
index 3bad5fd..84610e6 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java
@@ -41,6 +41,8 @@ import org.apache.stratos.manager.subscriber.Subscriber;
import org.apache.stratos.manager.subscription.tenancy.SubscriptionTenancyBehaviour;
import org.apache.stratos.manager.utils.ApplicationManagementUtil;
+import java.util.Set;
+
public class LBCartridgeSubscription extends CartridgeSubscription {
private LoadBalancerCategory loadBalancerCategory;
@@ -71,24 +73,26 @@ public class LBCartridgeSubscription extends CartridgeSubscription {
setAutoscalingPolicyName(autoscalingPolicy);
setDeploymentPolicyName(deploymentPolicyName);
setRepository(repository);
+ setPayloadData(getLoadBalancerCategory().create(getAlias(), getCluster(), getSubscriber(), getRepository(), getCartridgeInfo(),
+ getSubscriptionKey(), getCustomPayloadEntries()));
// If LB subscription is for MT service, payload data should not be set
- if(!loadBalancerCategory.isLoadBalancedServiceMultiTenant()) {
- setPayloadData(getLoadBalancerCategory().create(getAlias(), getCluster(), getSubscriber(), getRepository(), getCartridgeInfo(),
- getSubscriptionKey(), getCustomPayloadEntries()));
- }
+// if(!loadBalancerCategory.isLoadBalancedServiceMultiTenant()) {
+// setPayloadData(getLoadBalancerCategory().create(getAlias(), getCluster(), getSubscriber(), getRepository(), getCartridgeInfo(),
+// getSubscriptionKey(), getCustomPayloadEntries()));
+// }
}
@Override
- public CartridgeSubscriptionInfo registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
- if(!loadBalancerCategory.isLoadBalancedServiceMultiTenant()) {
- if(log.isDebugEnabled()) {
- log.debug("Loadbalanced service is single tenant.");
- }
+ public CartridgeSubscriptionInfo registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
+ //if(!loadBalancerCategory.isLoadBalancedServiceMultiTenant()) {
+ //if(log.isDebugEnabled()) {
+ //log.debug("Loadbalanced service is single tenant.");
+ //}
getLoadBalancerCategory().register (getCartridgeInfo(), getCluster(), getPayloadData(), getAutoscalingPolicyName(),
getDeploymentPolicyName(), properties);
- }
-
+ //}
+
return ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), getAutoscalingPolicyName(),
getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(),
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
index e267c24..ed14d87 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
@@ -20,6 +20,10 @@ package org.apache.stratos.manager.subscription;
import org.apache.stratos.cloud.controller.stub.pojo.Property;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
/**
* This holds the data that are gathered at the time of subscription. This is usefull when passing subscription details to the method calls.
*/
@@ -42,6 +46,12 @@ public class SubscriptionData {
private PersistenceContext persistanceCtxt;
private boolean isCommitsEnabled;
private String serviceGroup;
+ private Set<String> domains;
+ private String serviceName;
+
+ public SubscriptionData() {
+ this.domains = new HashSet<String>();
+ }
public String getCartridgeType() {
return cartridgeType;
@@ -170,5 +180,29 @@ public class SubscriptionData {
public void setServiceGroup(String serviceGroup) {
this.serviceGroup = serviceGroup;
}
+
+ public void addDomains(Set<String> domains) {
+ domains.addAll(domains);
+ }
+
+ public void removeDomain(String domain) {
+ domains.remove(domain);
+ }
+
+ public void removeDomains(Set<String> domains) {
+ domains.removeAll(domains);
+ }
+
+ public Set<String> getDomains() {
+ return Collections.unmodifiableSet(domains);
+ }
+
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ public void setServiceName(String serviceName) {
+ this.serviceName = serviceName;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionDomain.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionDomain.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionDomain.java
new file mode 100644
index 0000000..9fed0b0
--- /dev/null
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionDomain.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.manager.subscription;
+
+import java.io.Serializable;
+
+/**
+ * Subscription domain definition.
+ */
+public class SubscriptionDomain implements Serializable{
+ private final String domainName;
+ private final String applicationContext;
+
+ public SubscriptionDomain(String domainName, String applicationContext) {
+ this.domainName = domainName;
+ this.applicationContext = applicationContext;
+ }
+
+ public String getDomainName() {
+ return domainName;
+ }
+
+ public String getApplicationContext() {
+ return applicationContext;
+ }
+
+ @Override
+ public String toString() {
+ return String.format("[domain-name] %s [application-context] %s", getDomainName(), getApplicationContext());
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/factory/CartridgeSubscriptionFactory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/factory/CartridgeSubscriptionFactory.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/factory/CartridgeSubscriptionFactory.java
index fbeb159..203ae87 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/factory/CartridgeSubscriptionFactory.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/factory/CartridgeSubscriptionFactory.java
@@ -49,8 +49,13 @@ public class CartridgeSubscriptionFactory {
//TODO: fix the logic properly
CartridgeSubscription cartridgeSubscription = null;
if(cartridgeInfo.getMultiTenant()) {
- cartridgeSubscription = new FrameworkCartridgeSubscription(cartridgeInfo, subscriptionTenancyBehaviour);
-
+ if (cartridgeInfo.getProvider().equals(CartridgeConstants.INTERNAL_REPO_BASED_CARTRIDGE_PROVIDER)) {
+ cartridgeSubscription = new InternalRepoBasedCartridgeSubscription(cartridgeInfo, subscriptionTenancyBehaviour);
+ } else if (cartridgeInfo.getProvider().equals("application")) {
+ cartridgeSubscription = new ApplicationCartridgeSubscription(cartridgeInfo, subscriptionTenancyBehaviour);
+ } else {
+ cartridgeSubscription = new FrameworkCartridgeSubscription(cartridgeInfo, subscriptionTenancyBehaviour);
+ }
} else {
// TODO: fix properly with cartridgeCategory element
if(cartridgeInfo.getProvider().equals(CartridgeConstants.DATA_CARTRIDGE_PROVIDER)) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
index a5c5517..a12f1f7 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/utils/CartridgeSubscriptionUtils.java
@@ -44,6 +44,8 @@ import org.apache.stratos.messaging.event.tenant.TenantSubscribedEvent;
import org.apache.stratos.messaging.event.tenant.TenantUnSubscribedEvent;
import org.apache.stratos.messaging.util.Constants;
+import java.util.HashSet;
+import java.util.Set;
import java.util.concurrent.Executor;
import java.util.regex.Pattern;
@@ -57,10 +59,11 @@ public class CartridgeSubscriptionUtils {
BasicPayloadData basicPayloadData = new BasicPayloadData();
basicPayloadData.setApplicationPath(cartridgeInfo.getBaseDir());
basicPayloadData.setSubscriptionKey(subscriptionKey);
- basicPayloadData.setDeployment("default");//currently hard coded to default
+ //basicPayloadData.setDeployment("default");//currently hard coded to default
basicPayloadData.setMultitenant(String.valueOf(cartridgeInfo.getMultiTenant()));
basicPayloadData.setPortMappings(createPortMappingPayloadString(cartridgeInfo));
basicPayloadData.setServiceName(cartridgeInfo.getType());
+ basicPayloadData.setProvider(cartridgeInfo.getProvider());
if(repository != null) {
basicPayloadData.setGitRepositoryUrl(repository.getUrl());
@@ -95,7 +98,7 @@ public class CartridgeSubscriptionUtils {
basicPayloadData.setApplicationPath(service.getCartridgeInfo().getBaseDir());
basicPayloadData.setSubscriptionKey(service.getSubscriptionKey());
basicPayloadData.setClusterId(service.getClusterId());
- basicPayloadData.setDeployment("default");//currently hard coded to default
+ //basicPayloadData.setDeployment("default");//currently hard coded to default
basicPayloadData.setHostName(service.getHostName());
basicPayloadData.setMultitenant(String.valueOf(service.getCartridgeInfo().getMultiTenant()));
basicPayloadData.setPortMappings(createPortMappingPayloadString(service.getCartridgeInfo()));
@@ -146,19 +149,19 @@ public class CartridgeSubscriptionUtils {
}
public static String generateSubscriptionKey() {
- String key = RandomStringUtils.randomAlphanumeric(16);
- log.info("Generated key : " + key); // TODO -- remove the log
- return key;
+ return RandomStringUtils.randomAlphanumeric(16);
}
static class TenantSubscribedEventPublisher implements Runnable {
- int tenantId;
- String serviceName;
+ private int tenantId;
+ private String serviceName;
+ private Set<String> clusterIds;
- public TenantSubscribedEventPublisher(int tenantId, String service) {
+ public TenantSubscribedEventPublisher(int tenantId, String service, Set<String> clusterIds) {
this.tenantId = tenantId;
this.serviceName = service;
+ this.clusterIds = clusterIds;
}
@Override
public void run() {
@@ -166,7 +169,7 @@ public class CartridgeSubscriptionUtils {
if(log.isInfoEnabled()) {
log.info(String.format("Publishing tenant subscribed event: [tenant-id] %d [service] %s", tenantId, serviceName));
}
- TenantSubscribedEvent subscribedEvent = new TenantSubscribedEvent(tenantId, serviceName);
+ TenantSubscribedEvent subscribedEvent = new TenantSubscribedEvent(tenantId, serviceName, clusterIds);
EventPublisher eventPublisher = EventPublisherPool.getPublisher(Constants.TENANT_TOPIC);
eventPublisher.publish(subscribedEvent);
} catch (Exception e) {
@@ -178,7 +181,7 @@ public class CartridgeSubscriptionUtils {
}
}
- public static void publishTenantSubscribedEvent(int tenantId, String serviceName) {
+ public static void publishTenantSubscribedEvent(int tenantId, String serviceName, Set<String> clusterIds) {
Executor exec = new Executor() {
@@ -188,15 +191,15 @@ public class CartridgeSubscriptionUtils {
}
};
- exec.execute(new TenantSubscribedEventPublisher(tenantId, serviceName));
+ exec.execute(new TenantSubscribedEventPublisher(tenantId, serviceName, clusterIds));
}
- public static void publishTenantUnSubscribedEvent(int tenantId, String serviceName) {
+ public static void publishTenantUnSubscribedEvent(int tenantId, String serviceName, Set<String> clusterIds) {
try {
if(log.isInfoEnabled()) {
log.info(String.format("Publishing tenant un-subscribed event: [tenant-id] %d [service] %s", tenantId, serviceName));
}
- TenantUnSubscribedEvent event = new TenantUnSubscribedEvent(tenantId, serviceName);
+ TenantUnSubscribedEvent event = new TenantUnSubscribedEvent(tenantId, serviceName, clusterIds);
EventPublisher eventPublisher = EventPublisherPool.getPublisher(Constants.TENANT_TOPIC);
eventPublisher.publish(event);
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/model/TopologyClusterInformationModel.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/model/TopologyClusterInformationModel.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/model/TopologyClusterInformationModel.java
index 928c3ce..2b73dff 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/model/TopologyClusterInformationModel.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/topology/model/TopologyClusterInformationModel.java
@@ -41,6 +41,7 @@ public class TopologyClusterInformationModel {
//private Map<Integer, Set<CartridgeTypeContext>> tenantIdToCartridgeTypeContextMap;
private static TopologyClusterInformationModel topologyClusterInformationModel;
private Map<String, Cluster> clusterIdToClusterMap;
+ private Map<String, Cluster> serviceNameToClusterMap;
private DataInsertionAndRetrievalManager dataInsertionNRetrievalMgr;
private boolean initialized;
@@ -51,6 +52,7 @@ public class TopologyClusterInformationModel {
private TopologyClusterInformationModel() {
//tenantIdToCartridgeTypeContextMap = new HashMap<Integer, Set<CartridgeTypeContext>>();
clusterIdToClusterMap = new HashMap<String, Cluster>();
+ serviceNameToClusterMap = new HashMap<String, Cluster>();
dataInsertionNRetrievalMgr = new DataInsertionAndRetrievalManager();
}
@@ -73,6 +75,7 @@ public class TopologyClusterInformationModel {
log.debug(" Adding cluster ["+cluster.getClusterId()+"] ");
}
clusterIdToClusterMap.put(cluster.getClusterId(), cluster);
+ serviceNameToClusterMap.put(cluster.getServiceName(), cluster);
}
public Cluster getCluster (int tenantId, String cartridgeType, String subscriptionAlias) {
@@ -136,6 +139,22 @@ public class TopologyClusterInformationModel {
return clusterSet;
}
+ public Set<Cluster> getClusters(String cartridgeType) {
+
+ Set<Cluster> clusterSet = new HashSet<Cluster>();
+
+ if (log.isDebugEnabled()) {
+ log.info("Finding cluster with service name [" + cartridgeType
+ + "] ");
+ }
+ Cluster foundCluster = serviceNameToClusterMap.get(cartridgeType);
+ if (foundCluster != null) {
+ clusterSet.add(foundCluster);
+ }
+
+ return clusterSet;
+ }
+
// public void removeCluster (int tenantId, String cartridgeType, String subscriptionAlias) {
//
// Set<CartridgeTypeContext> cartridgeTypeContextSet = null;
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/RepositoryCreator.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/RepositoryCreator.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/RepositoryCreator.java
index b17b85f..c6406f1 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/RepositoryCreator.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/RepositoryCreator.java
@@ -120,7 +120,7 @@ public class RepositoryCreator implements Runnable {
handleException(e.getMessage(), e);
}
- repository.setUrl(System.getProperty(CartridgeConstants.INTERNAL_GIT_URL)+repoName);
+ repository.setUrl(System.getProperty(CartridgeConstants.INTERNAL_GIT_URL) + "/git/" + repoName);
repository.setUserName(userName);
repository.setPassword(password);
@@ -155,8 +155,9 @@ public class RepositoryCreator implements Runnable {
CloneCommand cloneCmd =
git.cloneRepository()
- .setURI(System.getProperty(CartridgeConstants.INTERNAL_GIT_URL) + tenantDomain + "/" +
- cartridgeName + ".git")
+ .setURI(System.getProperty(CartridgeConstants.INTERNAL_GIT_URL) +
+ "/git/" + tenantDomain + "/" +
+ cartridgeName + ".git")
.setDirectory(new File(parentDirName));
cloneCmd.setCredentialsProvider(credentialsProvider);
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/pom.xml b/components/org.apache.stratos.messaging/pom.xml
index f145a1e..8545681 100644
--- a/components/org.apache.stratos.messaging/pom.xml
+++ b/components/org.apache.stratos.messaging/pom.xml
@@ -64,6 +64,11 @@
<version>${wso2carbon.version}</version>
</dependency>
<dependency>
+ <groupId>org.wso2.carbon</groupId>
+ <artifactId>org.wso2.carbon.utils</artifactId>
+ <version>${wso2carbon.version}</version>
+ </dependency>
+ <dependency>
<groupId>com.jamesmurty.utils</groupId>
<artifactId>java-xmlbuilder</artifactId>
<version>0.6</version>
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/Subscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/Subscription.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/Subscription.java
new file mode 100644
index 0000000..caab423
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/Subscription.java
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.messaging.domain.tenant;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.*;
+
+/**
+ * Tenant's service subscription.
+ */
+public class Subscription {
+ private static final Log log = LogFactory.getLog(Subscription.class);
+
+ private final String serviceName;
+ private final Set<String> clusterIds;
+ private final Map<String, SubscriptionDomain> subscriptionDomainMap;
+
+ public Subscription(String serviceName, Set<String> clusterIds) {
+ this.serviceName = serviceName;
+ this.clusterIds = clusterIds;
+ this.subscriptionDomainMap = new HashMap<String, SubscriptionDomain>();
+ }
+
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ public Set<String> getClusterIds() {
+ return Collections.unmodifiableSet(clusterIds);
+ }
+
+ public void addSubscriptionDomain(SubscriptionDomain subscriptionDomain) {
+ subscriptionDomainMap.put(subscriptionDomain.getDomainName(), subscriptionDomain);
+ }
+
+ public void addSubscriptionDomain(String domainName, String applicationContext) {
+ addSubscriptionDomain(new SubscriptionDomain(domainName, applicationContext));
+ }
+
+ public void removeSubscriptionDomain(String domainName) {
+ if(subscriptionDomainExists(domainName)) {
+ subscriptionDomainMap.remove(domainName);
+ }
+ else {
+ if(log.isWarnEnabled()) {
+ log.warn("Subscription domain does not exist: " + domainName);
+ }
+ }
+ }
+
+ public boolean subscriptionDomainExists(String domainName) {
+ return subscriptionDomainMap.containsKey(domainName);
+ }
+
+ public Collection<SubscriptionDomain> getSubscriptionDomains() {
+ return Collections.unmodifiableCollection(subscriptionDomainMap.values());
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/SubscriptionDomain.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/SubscriptionDomain.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/SubscriptionDomain.java
new file mode 100644
index 0000000..84df4c8
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/tenant/SubscriptionDomain.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.messaging.domain.tenant;
+
+/**
+ * Subscription domain definition.
+ */
+public class SubscriptionDomain {
+ private final String domainName;
+ private final String applicationContext;
+
+ public SubscriptionDomain(String domainName, String applicationContext) {
+ this.domainName = domainName;
+ this.applicationContext = applicationContext;
+ }
+
+ public String getDomainName() {
+ return domainName;
+ }
+
+ public String getApplicationContext() {
+ return applicationContext;
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/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 bc4244a..ed20bd0 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
@@ -32,13 +32,13 @@ public class Tenant implements Serializable{
private int tenantId;
private String tenantDomain;
- // Map<ServiceName, Subscribed>
- private Map<String, Boolean> serviceNameMap;
+ // Map<ServiceName, Subscription>
+ private Map<String, Subscription> serviceNameSubscriptionMap;
public Tenant(int tenantId, String tenantDomain) {
this.tenantId = tenantId;
this.tenantDomain = tenantDomain;
- this.serviceNameMap = new HashMap<String, Boolean>();
+ this.serviceNameSubscriptionMap = new HashMap<String, Subscription>();
}
public int getTenantId() {
@@ -53,19 +53,26 @@ public class Tenant implements Serializable{
this.tenantDomain = tenantDomain;
}
- public Collection<String> getServiceSubscriptions() {
- return serviceNameMap.keySet();
+ public Subscription getSubscription(String serviceName) {
+ if(serviceNameSubscriptionMap.containsKey(serviceName)) {
+ return serviceNameSubscriptionMap.get(serviceName);
+ }
+ return null;
}
- public boolean isServiceSubscribed(String serviceName) {
- return serviceNameMap.containsKey(serviceName);
+ public Collection<Subscription> getSubscriptions() {
+ return serviceNameSubscriptionMap.values();
}
- public void addServiceSubscription(String serviceName) {
- serviceNameMap.put(serviceName, true);
+ public boolean isSubscribed(String serviceName) {
+ return serviceNameSubscriptionMap.containsKey(serviceName);
}
- public void removeServiceSubscription(String serviceName) {
- serviceNameMap.remove(serviceName);
+ public void addSubscription(Subscription subscription) {
+ serviceNameSubscriptionMap.put(subscription.getServiceName(), subscription);
+ }
+
+ public void removeSubscription(String serviceName) {
+ serviceNameSubscriptionMap.remove(serviceName);
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
index dddb869..08bd262 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
@@ -49,6 +49,8 @@ public class Cluster implements Serializable {
@XmlJavaTypeAdapter(MapAdapter.class)
private Map<String, Member> memberMap;
+ private ClusterStatus status;
+
private String loadBalanceAlgorithmName;
@XmlJavaTypeAdapter(MapAdapter.class)
private Properties properties;
@@ -200,5 +202,13 @@ public class Cluster implements Serializable {
}
return partitionIds.keySet();
}
+
+ public ClusterStatus getStatus() {
+ return status;
+ }
+
+ public void setStatus(ClusterStatus status) {
+ this.status = status;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ClusterStatus.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ClusterStatus.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ClusterStatus.java
new file mode 100644
index 0000000..b3301c8
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/ClusterStatus.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.messaging.domain.topology;
+public enum ClusterStatus {
+ Created(1),
+ In_Maintenance(2),
+ Removed(3);
+
+ private int code;
+
+ private ClusterStatus(int code) {
+ this.code = code;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Member.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Member.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Member.java
index b942e2e..4a3bf17 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Member.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Member.java
@@ -24,10 +24,7 @@ import org.apache.stratos.messaging.util.bean.type.map.MapAdapter;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import java.io.Serializable;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
+import java.util.*;
/**
* Defines a member node in a cluster.
@@ -42,13 +39,13 @@ public class Member implements Serializable {
private final String networkPartitionId;
private final String partitionId;
private final String memberId;
-
+ // Key: Port.proxy
+ @XmlJavaTypeAdapter(MapAdapter.class)
+ private final Map<Integer, Port> portMap;
private String memberPublicIp;
private MemberStatus status;
private String memberIp;
@XmlJavaTypeAdapter(MapAdapter.class)
- private final Map<String, Port> portMap;
- @XmlJavaTypeAdapter(MapAdapter.class)
private Properties properties;
private String lbClusterId;
@@ -58,7 +55,7 @@ public class Member implements Serializable {
this.networkPartitionId = networkPartitionId;
this.partitionId = partitionId;
this.memberId = memberId;
- this.portMap = new HashMap<String, Port>();
+ this.portMap = new HashMap<Integer, Port>();
}
public String getServiceName() {
@@ -86,33 +83,32 @@ public class Member implements Serializable {
}
public Collection<Port> getPorts() {
- return portMap.values();
+ return Collections.unmodifiableCollection(portMap.values());
+ }
+
+ public Port getPort(int proxy) {
+ if(portMap.containsKey(proxy)) {
+ return portMap.get(proxy);
+ }
+ return null;
}
public void addPort(Port port) {
- this.portMap.put(port.getProtocol(), port);
+ this.portMap.put(port.getProxy(), port);
}
public void addPorts(Collection<Port> ports) {
- for(Port port: ports) {
+ for(Port port : ports) {
addPort(port);
}
}
public void removePort(Port port) {
- this.portMap.remove(port.getProtocol());
- }
-
- public void removePort(String protocol) {
- this.portMap.remove(protocol);
+ this.portMap.remove(port.getProxy());
}
public boolean portExists(Port port) {
- return this.portMap.containsKey(port.getProtocol());
- }
-
- public Port getPort(String protocol) {
- return this.portMap.get(protocol);
+ return this.portMap.containsKey(port.getProxy());
}
public Properties getProperties() {
@@ -123,37 +119,37 @@ public class Member implements Serializable {
this.properties = properties;
}
- public String getMemberIp() {
- return memberIp;
+ public String getMemberIp() {
+ return memberIp;
}
- public void setMemberIp(String memberIp) {
- this.memberIp = memberIp;
+ public void setMemberIp(String memberIp) {
+ this.memberIp = memberIp;
}
public String getPartitionId() {
return partitionId;
}
- public void setLbClusterId(String lbClusterId) {
- this.lbClusterId = lbClusterId;
- }
-
public String getLbClusterId() {
return lbClusterId;
}
+ public void setLbClusterId(String lbClusterId) {
+ this.lbClusterId = lbClusterId;
+ }
+
public String getNetworkPartitionId() {
return networkPartitionId;
}
- public String getMemberPublicIp() {
- return memberPublicIp;
- }
+ public String getMemberPublicIp() {
+ return memberPublicIp;
+ }
+
+ public void setMemberPublicIp(String memberPublicIp) {
+ this.memberPublicIp = memberPublicIp;
+ }
- public void setMemberPublicIp(String memberPublicIp) {
- this.memberPublicIp = memberPublicIp;
- }
-
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Service.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Service.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Service.java
index 21cc5e7..46d46d4 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Service.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Service.java
@@ -34,14 +34,15 @@ public class Service implements Serializable{
private final ServiceType serviceType;
// Key: Cluster.clusterId
private Map<String, Cluster> clusterIdClusterMap;
- private Map<String, Port> portMap;
+ // Key: Port.proxy
+ private Map<Integer, Port> portMap;
private Properties properties;
public Service(String serviceName, ServiceType serviceType) {
this.serviceName = serviceName;
this.serviceType = serviceType;
this.clusterIdClusterMap = new HashMap<String, Cluster>();
- this.portMap = new HashMap<String, Port>();
+ this.portMap = new HashMap<Integer, Port>();
}
public String getServiceName() {
@@ -77,33 +78,32 @@ public class Service implements Serializable{
}
public Collection<Port> getPorts() {
- return portMap.values();
+ return Collections.unmodifiableCollection(portMap.values());
+ }
+
+ public Port getPort(int proxy) {
+ if(portMap.containsKey(proxy)) {
+ return portMap.get(proxy);
+ }
+ return null;
}
public void addPort(Port port) {
- this.portMap.put(port.getProtocol(), port);
+ this.portMap.put(port.getProxy(), port);
}
public void addPorts(Collection<Port> ports) {
- for(Port port: ports) {
+ for(Port port : ports) {
addPort(port);
}
}
public void removePort(Port port) {
- this.portMap.remove(port.getProtocol());
- }
-
- public void removePort(String protocol) {
- this.portMap.remove(protocol);
+ this.portMap.remove(port.getProxy());
}
public boolean portExists(Port port) {
- return this.portMap.containsKey(port.getProtocol());
- }
-
- public Port getPort(String protocol) {
- return this.portMap.get(protocol);
+ return this.portMap.containsKey(port.getProxy());
}
public Properties getProperties() {
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/instance/notifier/ArtifactUpdatedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/instance/notifier/ArtifactUpdatedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/instance/notifier/ArtifactUpdatedEvent.java
index fe0240d..0f6aaef 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/instance/notifier/ArtifactUpdatedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/instance/notifier/ArtifactUpdatedEvent.java
@@ -33,6 +33,7 @@ public class ArtifactUpdatedEvent extends InstanceNotifierEvent implements Seria
private String repoPassword;
private String repoURL;
private String tenantId;
+ private boolean commitEnabled;
public String getClusterId() {
return clusterId;
@@ -87,4 +88,12 @@ public class ArtifactUpdatedEvent extends InstanceNotifierEvent implements Seria
return String.format("[cluster] %s [repo-url] %s [repo-username] %s [tenant] %s",
getClusterId(), getRepoURL(), getRepoUserName(), getTenantId());
}
+
+ public boolean isCommitEnabled() {
+ return commitEnabled;
+ }
+
+ public void setCommitEnabled(boolean commitEnabled) {
+ this.commitEnabled = commitEnabled;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainAddedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainAddedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainAddedEvent.java
new file mode 100644
index 0000000..e2b87d4
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainAddedEvent.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.messaging.event.tenant;
+
+import org.apache.stratos.messaging.event.Event;
+
+import java.io.Serializable;
+import java.util.*;
+
+/**
+ * This event is fired when domains are added to a tenant subscription.
+ */
+public class SubscriptionDomainAddedEvent extends Event implements Serializable {
+ private static final long serialVersionUID = 3457484382856403382L;
+
+ private final int tenantId;
+ private final String serviceName;
+ private final Set<String> clusterIds;
+ private final String domainName;
+ private final String applicationContext;
+
+ public SubscriptionDomainAddedEvent(int tenantId, String serviceName, Set<String> clusterIds, String domainName,
+ String applicationContext) {
+ this.tenantId = tenantId;
+ this.serviceName = serviceName;
+ this.clusterIds = clusterIds;
+ this.domainName = domainName;
+ this.applicationContext = applicationContext;
+ }
+
+ public int getTenantId() {
+ return tenantId;
+ }
+
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ public Set<String> getClusterIds() {
+ return Collections.unmodifiableSet(clusterIds);
+ }
+
+ public String getDomainName() {
+ return domainName;
+ }
+
+ public String getApplicationContext() {
+ return applicationContext;
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainRemovedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainRemovedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainRemovedEvent.java
new file mode 100644
index 0000000..b3d9578
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainRemovedEvent.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.messaging.event.tenant;
+
+import org.apache.stratos.messaging.event.Event;
+
+import java.io.Serializable;
+import java.util.*;
+
+/**
+ * This event is fired when domains are removed from a tenant subscription.
+ */
+public class SubscriptionDomainRemovedEvent extends Event implements Serializable {
+ private static final long serialVersionUID = -8837521344795740210L;
+
+ private final int tenantId;
+ private final String serviceName;
+ private final Set<String> clusterIds;
+ private final String domainName;
+
+ public SubscriptionDomainRemovedEvent(int tenantId, String serviceName, Set<String> clusterIds, String domainName) {
+ this.tenantId = tenantId;
+ this.serviceName = serviceName;
+ this.clusterIds = clusterIds;
+ this.domainName = domainName;
+ }
+
+ public int getTenantId() {
+ return tenantId;
+ }
+
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ public Set<String> getClusterIds() {
+ return Collections.unmodifiableSet(clusterIds);
+ }
+
+ public String getDomainName() {
+ return domainName;
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainsAddedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainsAddedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainsAddedEvent.java
new file mode 100644
index 0000000..312571a
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainsAddedEvent.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.messaging.event.tenant;
+
+import org.apache.stratos.messaging.event.Event;
+
+import java.io.Serializable;
+import java.util.*;
+
+/**
+ * This event is fired when domains are added to a tenant subscription.
+ */
+public class SubscriptionDomainsAddedEvent extends Event implements Serializable {
+ private static final long serialVersionUID = 3457484382856403382L;
+
+ private final int tenantId;
+ private final String serviceName;
+ private final Set<String> clusterIds;
+ private final Set<String> domains;
+
+ public SubscriptionDomainsAddedEvent(int tenantId, String serviceName, Set<String> clusterIds, Set<String> domains) {
+ this.tenantId = tenantId;
+ this.serviceName = serviceName;
+ this.clusterIds = clusterIds;
+ this.domains = (domains != null) ? domains : new HashSet<String>();
+ }
+
+ public int getTenantId() {
+ return tenantId;
+ }
+
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ public Set<String> getClusterIds() {
+ return Collections.unmodifiableSet(clusterIds);
+ }
+
+ public Set<String> getDomains() {
+ return Collections.unmodifiableSet(domains);
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainsRemovedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainsRemovedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainsRemovedEvent.java
new file mode 100644
index 0000000..3cc5664
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/SubscriptionDomainsRemovedEvent.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.messaging.event.tenant;
+
+import org.apache.stratos.messaging.event.Event;
+
+import java.io.Serializable;
+import java.util.*;
+
+/**
+ * This event is fired when domains are removed from a tenant subscription.
+ */
+public class SubscriptionDomainsRemovedEvent extends Event implements Serializable {
+ private static final long serialVersionUID = -8837521344795740210L;
+
+ private final int tenantId;
+ private final String serviceName;
+ private final Set<String> clusterIds;
+ private Set<String> domains;
+
+ public SubscriptionDomainsRemovedEvent(int tenantId, String serviceName, Set<String> clusterIds, Set<String> domains) {
+ this.tenantId = tenantId;
+ this.serviceName = serviceName;
+ this.clusterIds = clusterIds;
+ this.domains = (domains != null) ? domains : new HashSet<String>();
+ }
+
+ public int getTenantId() {
+ return tenantId;
+ }
+
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ public Set<String> getClusterIds() {
+ return Collections.unmodifiableSet(clusterIds);
+ }
+
+ public Set<String> getDomains() {
+ return Collections.unmodifiableSet(domains);
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantSubscribedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantSubscribedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantSubscribedEvent.java
index 2be1ad3..d89de12 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantSubscribedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantSubscribedEvent.java
@@ -20,6 +20,7 @@
package org.apache.stratos.messaging.event.tenant;
import java.io.Serializable;
+import java.util.*;
/**
* This event is fired when a tenant is subscribed to a service.
@@ -29,10 +30,12 @@ public class TenantSubscribedEvent extends TenantEvent implements Serializable {
private final int tenantId;
private final String serviceName;
+ private final Set<String> clusterIds;
- public TenantSubscribedEvent(int tenantId, String serviceName) {
+ public TenantSubscribedEvent(int tenantId, String serviceName, Set<String> clusterIds) {
this.tenantId = tenantId;
this.serviceName = serviceName;
+ this.clusterIds = clusterIds;
}
public int getTenantId() {
@@ -42,4 +45,8 @@ public class TenantSubscribedEvent extends TenantEvent implements Serializable {
public String getServiceName() {
return serviceName;
}
+
+ public Set<String> getClusterIds() {
+ return Collections.unmodifiableSet(clusterIds);
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantUnSubscribedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantUnSubscribedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantUnSubscribedEvent.java
index 2262cd4..5cfcfdf 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantUnSubscribedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/tenant/TenantUnSubscribedEvent.java
@@ -20,6 +20,8 @@
package org.apache.stratos.messaging.event.tenant;
import java.io.Serializable;
+import java.util.Collections;
+import java.util.Set;
/**
* This event is fired when a tenant is un-subscribed from a service.
@@ -29,10 +31,12 @@ public class TenantUnSubscribedEvent extends TenantEvent implements Serializable
private final int tenantId;
private final String serviceName;
+ private final Set<String> clusterIds;
- public TenantUnSubscribedEvent(int tenantId, String serviceName) {
+ public TenantUnSubscribedEvent(int tenantId, String serviceName, Set<String> clusterIds) {
this.tenantId = tenantId;
this.serviceName = serviceName;
+ this.clusterIds = clusterIds;
}
public int getTenantId() {
@@ -42,4 +46,8 @@ public class TenantUnSubscribedEvent extends TenantEvent implements Serializable
public String getServiceName() {
return serviceName;
}
+
+ public Set<String> getClusterIds() {
+ return Collections.unmodifiableSet(clusterIds);
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/ClusterMaintenanceModeEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/ClusterMaintenanceModeEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/ClusterMaintenanceModeEvent.java
new file mode 100644
index 0000000..76e5820
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/ClusterMaintenanceModeEvent.java
@@ -0,0 +1,58 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.messaging.event.topology;
+
+import org.apache.stratos.messaging.domain.topology.ClusterStatus;
+
+import java.io.Serializable;
+
+public class ClusterMaintenanceModeEvent extends TopologyEvent implements Serializable {
+
+ private final String serviceName;
+ private final String clusterId;
+ private ClusterStatus status;
+
+ public ClusterMaintenanceModeEvent(String serviceName, String clusterId) {
+ this.serviceName = serviceName;
+ this.clusterId = clusterId;
+ }
+
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ @Override
+ public String toString() {
+ return "ClusterMaintenanceModeEvent [serviceName=" + serviceName + ", clusterStatus=" +
+ status.toString() + "]";
+ }
+
+ public String getClusterId() {
+ return clusterId;
+ }
+
+ public ClusterStatus getStatus() {
+ return status;
+ }
+
+ public void setStatus(ClusterStatus status) {
+ this.status = status;
+ }
+}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/InstanceSpawnedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/InstanceSpawnedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/InstanceSpawnedEvent.java
index f42dda8..3e99a30 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/InstanceSpawnedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/InstanceSpawnedEvent.java
@@ -20,6 +20,7 @@ package org.apache.stratos.messaging.event.topology;
import java.io.Serializable;
+import java.util.Properties;
/**
@@ -36,6 +37,8 @@ public class InstanceSpawnedEvent extends TopologyEvent implements Serializable
private String lbClusterId;
private String memberPublicIp;
private String memberIp;
+ private Properties properties;
+
public InstanceSpawnedEvent(String serviceName, String clusterId, String networkPartitionId, String partitionId, String memberId) {
this.serviceName = serviceName;
@@ -88,5 +91,12 @@ public class InstanceSpawnedEvent extends TopologyEvent implements Serializable
public void setMemberIp(String memberIp) {
this.memberIp = memberIp;
}
-
+
+ public Properties getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Properties properties) {
+ this.properties = properties;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberActivatedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberActivatedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberActivatedEvent.java
index 3cda807..e505537 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberActivatedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberActivatedEvent.java
@@ -20,9 +20,7 @@
package org.apache.stratos.messaging.event.topology;
import java.io.Serializable;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
import org.apache.stratos.messaging.domain.topology.Port;
@@ -38,7 +36,8 @@ public class MemberActivatedEvent extends TopologyEvent implements Serializable
private final String networkPartitionId;
private final String partitionId;
private final String memberId;
- private Map<String, Port> portMap;
+ // Key: Port.proxy
+ private Map<Integer, Port> portMap;
private String memberIp;
public MemberActivatedEvent(String serviceName, String clusterId, String networkPartitionId, String partitionId, String memberId) {
@@ -47,7 +46,7 @@ public class MemberActivatedEvent extends TopologyEvent implements Serializable
this.networkPartitionId = networkPartitionId;
this.partitionId = partitionId;
this.memberId = memberId;
- this.portMap = new HashMap<String, Port>();
+ this.portMap = new HashMap<Integer, Port>();
}
public String getServiceName() {
@@ -69,32 +68,37 @@ public class MemberActivatedEvent extends TopologyEvent implements Serializable
public String getMemberId() {
return memberId;
}
-
+
public Collection<Port> getPorts() {
- return portMap.values();
+ return Collections.unmodifiableCollection(portMap.values());
}
- public void addPort(Port port) {
- this.portMap.put(port.getProtocol(), port);
+ public Port getPort(int proxy) {
+ if(portMap.containsKey(proxy)) {
+ return portMap.get(proxy);
+ }
+ return null;
}
- public void removePort(Port port) {
- this.portMap.remove(port.getProtocol());
+ public void addPort(Port port) {
+ this.portMap.put(port.getProxy(), port);
}
- public void removePort(String portName) {
- this.portMap.remove(portName);
+ public void addPorts(Collection<Port> ports) {
+ for(Port port : ports) {
+ addPort(port);
+ }
}
- public boolean portExists(Port port) {
- return this.portMap.containsKey(port.getProtocol());
+ public void removePort(Port port) {
+ this.portMap.remove(port.getProxy());
}
- public Port getPort(String portName) {
- return this.portMap.get(portName);
+ public boolean portExists(Port port) {
+ return this.portMap.containsKey(port.getProxy());
}
- public String getMemberIp() {
+ public String getMemberIp() {
return memberIp;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberTerminatedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberTerminatedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberTerminatedEvent.java
index 986b309..21aa340 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberTerminatedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberTerminatedEvent.java
@@ -20,6 +20,7 @@
package org.apache.stratos.messaging.event.topology;
import java.io.Serializable;
+import java.util.Properties;
/**
* This event is fired by Cloud Controller when a member is terminated.
@@ -33,6 +34,8 @@ public class
private final String networkPartitionId;
private final String partitionId;
private final String memberId;
+ private Properties properties;
+
public MemberTerminatedEvent(String serviceName, String clusterId, String networkPartitionId, String partitionId, String memberId) {
this.serviceName = serviceName;
@@ -61,4 +64,12 @@ public class
public String getNetworkPartitionId() {
return networkPartitionId;
}
+
+ public Properties getProperties() {
+ return properties;
+ }
+
+ public void setProperties(Properties properties) {
+ this.properties = properties;
+ }
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/ServiceCreatedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/ServiceCreatedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/ServiceCreatedEvent.java
index 846091e..8ed701a 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/ServiceCreatedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/ServiceCreatedEvent.java
@@ -23,10 +23,7 @@ import org.apache.stratos.messaging.domain.topology.Port;
import org.apache.stratos.messaging.domain.topology.ServiceType;
import java.io.Serializable;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
+import java.util.*;
/**
* This event is fired by Cloud Controller when a service is added to a topology.
@@ -37,13 +34,14 @@ public class ServiceCreatedEvent extends TopologyEvent implements Serializable {
private final String serviceName;
private final ServiceType serviceType;
- private final Map<String, Port> portMap;
+ // Key: Port.proxy
+ private final Map<Integer, Port> portMap;
private Properties properties;
public ServiceCreatedEvent(String serviceName, ServiceType serviceType) {
this.serviceName = serviceName;
this.serviceType = serviceType;
- this.portMap = new HashMap<String, Port>();
+ this.portMap = new HashMap<Integer, Port>();
}
public String getServiceName() {
@@ -55,27 +53,32 @@ public class ServiceCreatedEvent extends TopologyEvent implements Serializable {
}
public Collection<Port> getPorts() {
- return portMap.values();
+ return Collections.unmodifiableCollection(portMap.values());
}
- public void addPort(Port port) {
- this.portMap.put(port.getProtocol(), port);
+ public Port getPort(int proxy) {
+ if(portMap.containsKey(proxy)) {
+ return portMap.get(proxy);
+ }
+ return null;
}
- public void removePort(Port port) {
- this.portMap.remove(port.getProtocol());
+ public void addPort(Port port) {
+ this.portMap.put(port.getProxy(), port);
}
- public void removePort(String portName) {
- this.portMap.remove(portName);
+ public void addPorts(Collection<Port> ports) {
+ for(Port port : ports) {
+ addPort(port);
+ }
}
- public boolean portExists(Port port) {
- return this.portMap.containsKey(port.getProtocol());
+ public void removePort(Port port) {
+ this.portMap.remove(port.getProxy());
}
- public Port getPort(String portName) {
- return this.portMap.get(portName);
+ public boolean portExists(Port port) {
+ return this.portMap.containsKey(port.getProxy());
}
public Properties getProperties() {
http://git-wip-us.apache.org/repos/asf/stratos/blob/7b35e29e/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/tenant/SubscriptionDomainsAddedEventListener.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/tenant/SubscriptionDomainsAddedEventListener.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/tenant/SubscriptionDomainsAddedEventListener.java
new file mode 100644
index 0000000..3f169b7
--- /dev/null
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/listener/tenant/SubscriptionDomainsAddedEventListener.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.stratos.messaging.listener.tenant;
+
+import org.apache.stratos.messaging.listener.EventListener;
+
+/**
+ * Tenant subscription domains added event listener.
+ */
+public abstract class SubscriptionDomainsAddedEventListener extends EventListener {
+}