boolean register(String id, String deployedId) { if (check(deployedId, id)) { Set<String> a = get(id); if (a == null) { put(id, Collections.singleton(deployedId)); } else if (!(a instanceof HashSet<?>)) { a = new HashSet<String>(a); a.add(deployedId); put(id, Collections.unmodifiableSet(a)); } return true; } else { return false; } }
void undeploy(AssetDeployment deployment) { for (AssetNode asset : deployment.assets) { for (AssetNode deployed : assets.values()) { if (deployed.iDependOn.contains(asset.id)) { graph.unregister(asset.id, deployed.id); } if (asset.iDependOn.contains(deployed.id)) { graph.unregister(deployed.id, asset.id); } } assets.remove(asset.id); } }
boolean deploy(AssetDeployment deployment) { // Clone the state AssetGraph graphClone = new AssetGraph(graph); HashMap<String, AssetNode> assetsClone = new HashMap<String, AssetNode>(assets); for (AssetNode asset : deployment.assets) { // Check it was not previously deployed if (!assetsClone.keySet().contains(asset.id)) { for (AssetNode deployed : assetsClone.values()) { if (deployed.iDependOn.contains(asset.id)) { if (!graphClone.register(asset.id, deployed.id)) { return false; } } if (asset.iDependOn.contains(deployed.id)) { if (!graphClone.register(deployed.id, asset.id)) { return false; } } } assetsClone.put(asset.id, asset); } else { // log it ? return false; } } // Everything went fine we updated the manager assets = assetsClone; graph = graphClone; return true; }
AssetNode asset = this.assets.get(entry.getKey()); resolved.add(asset.asset); Set<String> dependencies = graph.get(asset.id); if (dependencies != null) { for (String dependency : dependencies) {
boolean deploy(AssetDeployment deployment) { // Clone the state AssetGraph graphClone = new AssetGraph(graph); HashMap<String, AssetNode> assetsClone = new HashMap<String, AssetNode>(assets); for (AssetNode asset : deployment.assets) { // Check it was not previously deployed if (!assetsClone.keySet().contains(asset.id)) { for (AssetNode deployed : assetsClone.values()) { if (deployed.iDependOn.contains(asset.id)) { if (!graphClone.register(asset.id, deployed.id)) { return false; } } if (asset.iDependOn.contains(deployed.id)) { if (!graphClone.register(deployed.id, asset.id)) { return false; } } } assetsClone.put(asset.id, asset); } else { // log it ? return false; } } // Everything went fine we updated the manager assets = assetsClone; graph = graphClone; return true; }
AssetNode asset = this.assets.get(entry.getKey()); resolved.add(asset.asset); Set<String> dependencies = graph.get(asset.id); if (dependencies != null) { for (String dependency : dependencies) {
boolean register(String id, String deployedId) { if (check(deployedId, id)) { Set<String> a = get(id); if (a == null) { put(id, Collections.singleton(deployedId)); } else if (!(a instanceof HashSet<?>)) { a = new HashSet<String>(a); a.add(deployedId); put(id, Collections.unmodifiableSet(a)); } return true; } else { return false; } }
void undeploy(AssetDeployment deployment) { for (AssetNode asset : deployment.assets) { for (AssetNode deployed : assets.values()) { if (deployed.iDependOn.contains(asset.id)) { graph.unregister(asset.id, deployed.id); } if (asset.iDependOn.contains(deployed.id)) { graph.unregister(deployed.id, asset.id); } } assets.remove(asset.id); } }