}
private void restoreBindingSets(Resource sbm, Map<String, Configuration> originalBindingSets) throws Exception {
ResourceType sbsResourceType = getResourceType(SERVICE_BINDING_SET_SERVICE_NAME, getPluginName());
ResourceFactoryManager resourceFactory = PluginContainer.getInstance().getResourceFactoryManager();
ConfigurationManager configurationManager = PluginContainer.getInstance().getConfigurationManager();
for(Resource sbs : getResources(sbsResourceType)) {
Configuration config = configurationManager.loadResourceConfiguration(sbs.getId());
String name = config.getSimpleValue("name", null);
Configuration originalConfiguration = originalBindingSets.get(name);
if(originalConfiguration != null) {
updateResourceConfiguration(sbs, originalConfiguration);
originalBindingSets.remove(name);
} else {
//this binding set wasn't there originally
resourceFactory.executeDeleteResourceImmediately(new DeleteResourceRequest(0, sbs.getId()));
}
}
//originalBindingSets now only contain binding sets that existed originally but aren't anymore
for(Configuration sbs : originalBindingSets.values()) {
String name = sbs.getSimpleValue("name", null);
CreateResourceRequest request = new CreateResourceRequest();
request.setPluginName(getPluginName());
request.setParentResourceId(sbm.getId());
request.setResourceName(name);
request.setResourceTypeName(SERVICE_BINDING_SET_SERVICE_NAME);
request.setResourceConfiguration(sbs);
resourceFactory.executeCreateResourceImmediately(request);
}
}