You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by is...@apache.org on 2014/09/16 08:01:19 UTC
git commit: adding validations
Repository: stratos
Updated Branches:
refs/heads/4.0.0-grouping 8526e913e -> e39473dd7
adding validations
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/e39473dd
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/e39473dd
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/e39473dd
Branch: refs/heads/4.0.0-grouping
Commit: e39473dd79f048e3f97d10b9295a41f09e5840de
Parents: 8526e91
Author: Isuru Haththotuwa <is...@apache.org>
Authored: Tue Sep 16 11:30:57 2014 +0530
Committer: Isuru Haththotuwa <is...@apache.org>
Committed: Tue Sep 16 11:30:57 2014 +0530
----------------------------------------------------------------------
.../parser/DefaultApplicationParser.java | 10 ++-
.../impl/CloudControllerServiceImpl.java | 2 +-
.../cloud/controller/pojo/GroupDataHolder.java | 67 --------------------
.../controller/topology/TopologyBuilder.java | 7 +-
.../ApplicationCreatedMessageProcessor.java | 2 +-
5 files changed, 16 insertions(+), 72 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/e39473dd/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/DefaultApplicationParser.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/DefaultApplicationParser.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/DefaultApplicationParser.java
index 80cf4ae..8ea89be 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/DefaultApplicationParser.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/application/parser/DefaultApplicationParser.java
@@ -226,7 +226,10 @@ public class DefaultApplicationParser implements ApplicationParser {
for (GroupContext groupCtxt : groupCtxts) {
Group group = getGroup(clusters, groupCtxt, subscribableInformation, definedGroupCtxts);
- groupNameToGroup.put(group.getName(), group);
+ if(groupNameToGroup.put(group.getName(), group) != null) {
+ // Application Definition has same Group multiple times at the top-level
+ throw new ApplicationDefinitionException("Group [ " + group.getName() + " ] appears twice in the Application Definition's top level");
+ }
}
//Set<GroupContext> topLevelGroupContexts = getTopLevelGroupContexts(groupNameToGroup);
@@ -429,7 +432,10 @@ public class DefaultApplicationParser implements ApplicationParser {
Cluster cluster = getCluster(subscribableCtxt, subscribableInfoCtxt, cartridge);
clusters.add(cluster);
- clusterIdMap.put(subscribableCtxt.getType(), cluster.getClusterId());
+ if (clusterIdMap.put(subscribableCtxt.getType(), cluster.getClusterId()) != null) {
+ // Application Definition has same cartridge multiple times at the top-level
+ throw new ApplicationDefinitionException("Cartridge [ " + subscribableCtxt.getType() + " ] appears twice in the Application Definition's top level");
+ }
}
return new ClusterDataHolder(clusterIdMap, clusters);
http://git-wip-us.apache.org/repos/asf/stratos/blob/e39473dd/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
index 2a1c52c..34664b0 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
@@ -1403,7 +1403,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
ApplicationParser applicationParser = new DefaultApplicationParser();
ApplicationDataHolder applicationDataHolder = applicationParser.parse(applicationContext);
- TopologyBuilder.handleApplicationDepolyed(applicationDataHolder);
+ TopologyBuilder.handleApplicationDeployed(applicationDataHolder);
}
private List<ConfigCompositeApplication> restoreConfigCompositeApplication () {
http://git-wip-us.apache.org/repos/asf/stratos/blob/e39473dd/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/GroupDataHolder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/GroupDataHolder.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/GroupDataHolder.java
deleted file mode 100644
index 534814f..0000000
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/GroupDataHolder.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * 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.cloud.controller.pojo;
-
-import org.apache.stratos.messaging.domain.topology.Group;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class GroupDataHolder {
-
- // Sub Group Map, key = Group.name
- private Map<String, Group> groupMap;
- // Cluster Data Holder
- private ClusterDataHolder clusterDataHolder;
- // nested Group Data
- private GroupDataHolder groupDataHolder;
-
- public GroupDataHolder () {
- this.groupMap = new HashMap<String, Group>();
- }
-
- public void addGroup (Group group) {
- groupMap.put(group.getName(), group);
- }
-
- public void addGroups (Map<String, Group> groupNameToGroup) {
- groupMap.putAll(groupNameToGroup);
- }
-
- public Map<String, Group> getGroupMap() {
- return groupMap;
- }
-
- public ClusterDataHolder getClusterDataHolder() {
- return clusterDataHolder;
- }
-
- public GroupDataHolder getGroupDataHolder() {
- return groupDataHolder;
- }
-
- public void setGroupDataHolder(GroupDataHolder groupDataHolder) {
- this.groupDataHolder = groupDataHolder;
- }
-
- public void setClusterDataHolder(ClusterDataHolder clusterDataHolder) {
- this.clusterDataHolder = clusterDataHolder;
- }
-}
http://git-wip-us.apache.org/repos/asf/stratos/blob/e39473dd/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
index 4420b0b..2b827be 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/topology/TopologyBuilder.java
@@ -613,12 +613,17 @@ public class TopologyBuilder {
}
}
- public static void handleApplicationDepolyed (ApplicationDataHolder applicationDataHolder) {
+ public static void handleApplicationDeployed(ApplicationDataHolder applicationDataHolder) {
Topology topology = TopologyManager.getTopology();
try {
TopologyManager.acquireWriteLock();
+ if (topology.applicationExists(applicationDataHolder.getApplication().getId())) {
+ log.warn("Application with id [ " + applicationDataHolder.getApplication().getId() + " ] already exists in Topology");
+ return;
+ }
+
for (Cluster cluster : applicationDataHolder.getClusters()) {
String cartridgeType = cluster.getServiceName();
topology.getService(cartridgeType).addCluster(cluster);
http://git-wip-us.apache.org/repos/asf/stratos/blob/e39473dd/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationCreatedMessageProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationCreatedMessageProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationCreatedMessageProcessor.java
index 7018077..6f86839 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationCreatedMessageProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ApplicationCreatedMessageProcessor.java
@@ -67,7 +67,7 @@ public class ApplicationCreatedMessageProcessor extends MessageProcessor {
// check if an Application with same name exists in topology
if (topology.applicationExists(appCreatedEvent.getApplication().getId())) {
- log.error("Application with id [ " + appCreatedEvent.getApplication().getId() + " ] already exists in Topology");
+ log.warn("Application with id [ " + appCreatedEvent.getApplication().getId() + " ] already exists in Topology");
return false;
}