Fixing the update cartridge group
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/b6e8ef50 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/b6e8ef50 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/b6e8ef50 Branch: refs/heads/master Commit: b6e8ef509aa31b67e19404b46aabb36b40227d23 Parents: 0a25877 Author: Vishanth <[email protected]> Authored: Thu May 14 15:33:18 2015 +0530 Committer: Vishanth <[email protected]> Committed: Thu May 14 15:33:18 2015 +0530 ---------------------------------------------------------------------- .../rest/endpoint/api/StratosApiV41Utils.java | 52 ++++++++++++++------ 1 file changed, 36 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/b6e8ef50/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java index 14b16fd..012b1b3 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java @@ -1112,36 +1112,56 @@ public class StratosApiV41Utils { findCartridgesInServiceGroup(serviceGroupToBeUpdated, cartridgesBeforeUpdating); findCartridgesInGroupBean(cartridgeGroup, cartridgesAfterUpdating); + List<String> cartridgesToRemove = new ArrayList<String>(); + List<String> cartridgesToAdd = new ArrayList<String>(); - List<String> cartridgesToRemove = cartridgesBeforeUpdating; - List<String> cartridgesToAdd = cartridgesAfterUpdating; + if (cartridgesBeforeUpdating != null) { + if (!cartridgesBeforeUpdating.isEmpty()) { + cartridgesToRemove.addAll(cartridgesBeforeUpdating); + } + } - if ((cartridgesBeforeUpdating != null) || (!cartridgesBeforeUpdating.isEmpty()) || - (cartridgesAfterUpdating != null) || (!cartridgesAfterUpdating.isEmpty())) { + if (cartridgesAfterUpdating != null) { + if (!cartridgesAfterUpdating.isEmpty()) { + cartridgesToAdd.addAll(cartridgesAfterUpdating); + } + } - for (String before : cartridgesBeforeUpdating) { - for (String after : cartridgesAfterUpdating) { - if (before.equals(after)) { - cartridgesToRemove.remove(after); - cartridgesToAdd.remove(after); + if ((cartridgesBeforeUpdating != null) && (cartridgesAfterUpdating != null)) { + if ((!cartridgesBeforeUpdating.isEmpty()) && (!cartridgesAfterUpdating.isEmpty())) { + for (String before : cartridgesBeforeUpdating) { + for (String after : cartridgesAfterUpdating) { + if (before.toLowerCase().equals(after.toLowerCase())) { + if (cartridgesToRemove.contains(after)) { + cartridgesToRemove.remove(after); + } + if (cartridgesToAdd.contains(after)) { + cartridgesToAdd.remove(after); + } + } } } } } // Add cartridge group elements to SM cache - done after cartridge group has been updated - if (cartridgesToAdd != null || !cartridgesToAdd.isEmpty()) { - smServiceClient.addUsedCartridgesInCartridgeGroups(cartridgeGroup.getName(), - cartridgesToAdd.toArray(new String[cartridgesToRemove.size()])); + if (cartridgesToAdd != null) { + if (!cartridgesToAdd.isEmpty()) { + { + smServiceClient.addUsedCartridgesInCartridgeGroups(cartridgeGroup.getName(), + cartridgesToAdd.toArray(new String[cartridgesToRemove.size()])); + } + } } // Remove cartridge group elements from SM cache - done after cartridge group has been updated - if (cartridgesToRemove != null || !cartridgesToRemove.isEmpty()) { - smServiceClient.removeUsedCartridgesInCartridgeGroups(cartridgeGroup.getName(), - cartridgesToRemove.toArray(new String[cartridgesToRemove.size()])); + if (cartridgesToRemove != null) { + if (!cartridgesToRemove.isEmpty()) { + smServiceClient.removeUsedCartridgesInCartridgeGroups(cartridgeGroup.getName(), + cartridgesToRemove.toArray(new String[cartridgesToRemove.size()])); + } } } - } catch (RemoteException e) { String message = String.format("Could not update cartridge group: [group-name] %s,", cartridgeGroup.getName());
