[teiid-commits] teiid SVN: r607 - in trunk/server/src: test/java/com/metamatrix/admin/server and 1 other directory.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Thu Mar 19 22:37:03 EDT 2009
Author: shawkins
Date: 2009-03-19 22:37:03 -0400 (Thu, 19 Mar 2009)
New Revision: 607
Modified:
trunk/server/src/main/java/com/metamatrix/admin/server/ServerConfigAdminImpl.java
trunk/server/src/test/java/com/metamatrix/admin/server/TestServerConfigAdminImpl.java
Log:
TEIID-432 fix for bad exception when deassigning a connector binding
Modified: trunk/server/src/main/java/com/metamatrix/admin/server/ServerConfigAdminImpl.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/admin/server/ServerConfigAdminImpl.java 2009-03-19 22:26:17 UTC (rev 606)
+++ trunk/server/src/main/java/com/metamatrix/admin/server/ServerConfigAdminImpl.java 2009-03-20 02:37:03 UTC (rev 607)
@@ -29,6 +29,7 @@
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -1583,22 +1584,20 @@
}
-
-
-
- private ConnectorBinding getConnectorBindingByName(String name) throws ConfigurationException, ServiceException {
+ private ConnectorBinding getConnectorBindingByName(String name) throws ConfigurationException, ServiceException, AdminProcessingException {
Configuration nextStartupConfig = getConfigurationServiceProxy().getNextStartupConfiguration();
ConnectorBinding cb = nextStartupConfig.getConnectorBinding(name);
+ if (cb == null) {
+ throw new AdminProcessingException(AdminServerPlugin.Util.getString("ServerConfigAdminImpl.Connector_Binding_not_found_in_Configuration", name)); //$NON-NLS-1$
+ }
return cb;
}
- protected List getConnectorBindingsByName(String[] bindingNames) throws ConfigurationException, ServiceException {
- List bindingList = new ArrayList(bindingNames.length);
+ protected List<ConnectorBinding> getConnectorBindingsByName(String[] bindingNames) throws ConfigurationException, ServiceException, AdminProcessingException {
+ List<ConnectorBinding> bindingList = new ArrayList<ConnectorBinding>(bindingNames.length);
- Configuration nextStartupConfig = getConfigurationServiceProxy().getNextStartupConfiguration();
for(int i=0; i<bindingNames.length; i++) {
- ConnectorBinding cb = nextStartupConfig.getConnectorBinding(bindingNames[i]);
- bindingList.add(cb);
+ bindingList.add(getConnectorBindingByName(bindingNames[i]));
}
return bindingList;
}
@@ -1720,61 +1719,55 @@
String modelName) throws AdminException {
try {
- List bindingList = getConnectorBindingsByName(connectorBindingNames);
- if (!bindingList.isEmpty()) {
+ List<ConnectorBinding> connectorList = getConnectorBindingsByName(connectorBindingNames);
- Collection colVdbs = getVirtualDatabases();
- if (colVdbs != null) {
- for (Iterator iter = colVdbs.iterator(); iter.hasNext();) {
- VirtualDatabase vdb = (VirtualDatabase)iter.next();
+ Collection colVdbs = getVirtualDatabases();
+ if (colVdbs == null) {
+ return;
+ }
+ for (Iterator iter = colVdbs.iterator(); iter.hasNext();) {
+ VirtualDatabase vdb = (VirtualDatabase)iter.next();
- if (vdb.getName().equals(vdbName) && vdb.getVirtualDatabaseID().getVersion().equals(vdbVersion)) {
- VirtualDatabaseID vdbId = (VirtualDatabaseID)vdb.getID();
- Collection models = getModels(vdbId);
+ if (vdb.getName().equals(vdbName) && vdb.getVirtualDatabaseID().getVersion().equals(vdbVersion)) {
+ VirtualDatabaseID vdbId = (VirtualDatabaseID)vdb.getID();
+ Collection models = getModels(vdbId);
- if (models != null) {
- HashMap map = new HashMap(models.size());
- Iterator modelIter = models.iterator();
- while (modelIter.hasNext()) {
- Model model = (Model)modelIter.next();
-
- if (model.getName().equals(modelName)) {
- if (model.getConnectorBindingNames().size() > 0) {
-
- // load all the existing bindings
- Set bindingSet = new HashSet(model.getConnectorBindingNames().size());
- bindingSet.addAll(model.getConnectorBindingNames());
-
- // remove the bindings passed in to be removed
- List toBeRemovedBindings = getConnectorBindingsByName(connectorBindingNames);
- Iterator toBeRemovedBindingsIter = toBeRemovedBindings.iterator();
- while(toBeRemovedBindingsIter.hasNext()) {
- ConnectorBinding toBeRemovedBinding = (ConnectorBinding)toBeRemovedBindingsIter.next();
- bindingSet.remove(toBeRemovedBinding.getRoutingUUID());
- }
-
- // convert the set to a list for the map
- List bindings = new ArrayList(model.getConnectorBindingNames().size());
- bindings.addAll(bindingSet);
- map.put(model.getName(), bindings);
- }
- } else {
- //put the original name in the map, because the user is not changing this
- map.put(model.getName(), model.getConnectorBindingNames());
- }
- }
-
- setConnectorBindingNames(vdbId, map);
-
+ if (models != null) {
+ HashMap map = new HashMap(models.size());
+ Iterator modelIter = models.iterator();
+ while (modelIter.hasNext()) {
+ Model model = (Model)modelIter.next();
+
+ if (model.getName().equals(modelName)) {
+ if (model.getConnectorBindingNames().size() > 0) {
+
+ // load all the existing bindings
+ Set bindingSet = new HashSet(model.getConnectorBindingNames().size());
+ bindingSet.addAll(model.getConnectorBindingNames());
+
+ // remove the bindings passed in to be removed
+ for (ConnectorBinding binding : connectorList) {
+ bindingSet.remove(binding.getRoutingUUID());
+ }
+
+ // convert the set to a list for the map
+ List bindings = new ArrayList(model.getConnectorBindingNames().size());
+ bindings.addAll(bindingSet);
+ map.put(model.getName(), bindings);
+ }
+ } else {
+ //put the original name in the map, because the user is not changing this
+ map.put(model.getName(), model.getConnectorBindingNames());
}
- setVDBState(vdbId, VDB.ACTIVE);
- // done
- break;
}
+
+ setConnectorBindingNames(vdbId, map);
+
}
+ setVDBState(vdbId, VDB.ACTIVE);
+ // done
+ break;
}
- } else {
- throw new AdminProcessingException(AdminServerPlugin.Util.getString("ServerConfigAdminImpl.Connector_Binding_not_found_in_Configuration")); //$NON-NLS-1$
}
} catch (VirtualDatabaseException e) {
throw new AdminComponentException(e);
Modified: trunk/server/src/test/java/com/metamatrix/admin/server/TestServerConfigAdminImpl.java
===================================================================
--- trunk/server/src/test/java/com/metamatrix/admin/server/TestServerConfigAdminImpl.java 2009-03-19 22:26:17 UTC (rev 606)
+++ trunk/server/src/test/java/com/metamatrix/admin/server/TestServerConfigAdminImpl.java 2009-03-20 02:37:03 UTC (rev 607)
@@ -30,6 +30,7 @@
import junit.framework.TestCase;
import com.metamatrix.admin.api.exception.AdminException;
+import com.metamatrix.admin.api.exception.AdminProcessingException;
import com.metamatrix.admin.api.objects.Host;
import com.metamatrix.core.util.ObjectConverterUtil;
import com.metamatrix.core.util.UnitTestUtil;
@@ -297,6 +298,22 @@
// Check results - expect to have no bindings
expectedBindingNames = new HashSet();
helpCheckBindings(model,expectedBindingNames);
+ }
+
+ public void testDeassignNonexistantBinding() throws Exception {
+ // The FakeConfiguration has 3 connectors available, connectorBinding1, 2 and 3.
+
+ // Assign multiple connector bindings, connectorBinding1 , 2 and 3
+ String[] bindings = new String[] {"connectorBinding1", "connectorBinding2", "connectorBinding3"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+
+ admin.assignBindingsToModel(bindings,VDB_NAME2,VERSION1,PHYSICAL_MODEL_NAME2);
+
+ String[] debindings = new String[] {"connectorBindingx"}; //$NON-NLS-1$
+ try {
+ admin.deassignBindingsFromModel(debindings,VDB_NAME2,VERSION1,PHYSICAL_MODEL_NAME2);
+ } catch (AdminProcessingException e) {
+ assertEquals("Connector Binding connectorBindingx not found in Configuration", e.getMessage()); //$NON-NLS-1$
+ }
}
public void testAddAuthenticationProvider() throws Exception {
More information about the teiid-commits
mailing list