[teiid-commits] teiid SVN: r1123 - in trunk: embedded/src/main/java/com/metamatrix/dqp/embedded/admin and 8 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Mon Jul 13 18:00:26 EDT 2009


Author: rareddy
Date: 2009-07-13 18:00:25 -0400 (Mon, 13 Jul 2009)
New Revision: 1123

Added:
   trunk/engine/src/main/java/com/metamatrix/dqp/service/ConnectorStatus.java
Modified:
   trunk/client/src/main/java/org/teiid/adminapi/ConnectorBinding.java
   trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/BaseAdmin.java
   trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java
   trunk/engine/src/main/java/com/metamatrix/dqp/service/DataService.java
   trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java
   trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorWrapper.java
   trunk/engine/src/test/java/com/metamatrix/dqp/service/AutoGenDataService.java
   trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/impl/TestConnectorManagerImpl.java
   trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java
   trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorService.java
   trunk/server/src/main/java/com/metamatrix/server/dqp/service/PlatformDataService.java
Log:
TEIID-716: Get the connector status as defined by the connector. ConnectorStatus defines various states available. 

Modified: trunk/client/src/main/java/org/teiid/adminapi/ConnectorBinding.java
===================================================================
--- trunk/client/src/main/java/org/teiid/adminapi/ConnectorBinding.java	2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/client/src/main/java/org/teiid/adminapi/ConnectorBinding.java	2009-07-13 22:00:25 UTC (rev 1123)
@@ -51,6 +51,8 @@
     public static final int STATE_DATA_SOURCE_UNAVAILABLE = 6;
     /**Running, not deployed*/
     public static final int STATE_NOT_DEPLOYED = 7;
+    /** failed to check the status */
+    public static final int STATE_FAILED_TO_CHECK = 8;
     
     /** Password connector property name */
     public static final String PASSWORD = "Password"; //$NON-NLS-1$

Modified: trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/BaseAdmin.java
===================================================================
--- trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/BaseAdmin.java	2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/admin/BaseAdmin.java	2009-07-13 22:00:25 UTC (rev 1123)
@@ -66,6 +66,7 @@
 import com.metamatrix.dqp.embedded.DQPEmbeddedPlugin;
 import com.metamatrix.dqp.service.AuthorizationService;
 import com.metamatrix.dqp.service.ConfigurationService;
+import com.metamatrix.dqp.service.ConnectorStatus;
 import com.metamatrix.dqp.service.DQPServiceNames;
 import com.metamatrix.dqp.service.DataService;
 import com.metamatrix.dqp.service.TransactionService;
@@ -336,18 +337,29 @@
         // Binding state needs to be converted into pool state; until then we use
         // binding state  as pool state.
         try {
-            Boolean status = getDataService().getConnectorBindingState(src.getDeployedName());            
-            if (status == Boolean.TRUE) {
-                binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_OPEN);
-            }
-            else if (status == Boolean.FALSE) {
-                binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_DATA_SOURCE_UNAVAILABLE);
-            }
-            else {
-                binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_DATA_SOURCE_UNAVAILABLE);
-            }            
-        }catch(Exception e) {
-            binding.setState(MMConnectorBinding.STATE_DATA_SOURCE_UNAVAILABLE);            
+        	ConnectorStatus status = getDataService().getConnectorBindingState(src.getDeployedName());
+        	switch(status) {
+        	case OPEN:
+        		binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_OPEN);
+        		break;
+        	case NOT_INITIALIZED:
+        		binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_NOT_INITIALIZED);
+        		break;
+        	case CLOSED:
+        		binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_CLOSED);
+        		break;
+        	case DATA_SOURCE_UNAVAILABLE:
+        		binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_DATA_SOURCE_UNAVAILABLE);
+        		break;
+        	case INIT_FAILED:
+        		binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_INIT_FAILED);
+        		break;
+        	case UNABLE_TO_CHECK:
+        		binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_FAILED_TO_CHECK);
+        		break;
+        	}        	
+        }catch(MetaMatrixComponentException e) {
+            binding.setState(org.teiid.adminapi.ConnectorBinding.STATE_NOT_DEPLOYED);            
         }
         binding.setStateChangedTime(src.getLastChangedDate());
         return binding;       

Modified: trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java
===================================================================
--- trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java	2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/embedded/src/main/java/com/metamatrix/dqp/embedded/services/EmbeddedDataService.java	2009-07-13 22:00:25 UTC (rev 1123)
@@ -59,6 +59,7 @@
 import com.metamatrix.dqp.message.AtomicResultsMessage;
 import com.metamatrix.dqp.message.RequestMessage;
 import com.metamatrix.dqp.service.ConnectorBindingLifeCycleListener;
+import com.metamatrix.dqp.service.ConnectorStatus;
 import com.metamatrix.dqp.service.DQPServiceNames;
 import com.metamatrix.dqp.service.DataService;
 import com.metamatrix.dqp.service.VDBService;
@@ -323,7 +324,7 @@
      * @see com.metamatrix.dqp.service.DataService#getConnectorBindingState(java.lang.String)
      * @since 4.3
      */
-    public Boolean getConnectorBindingState(String deployedConnectorBindingName) 
+    public ConnectorStatus getConnectorBindingState(String deployedConnectorBindingName) 
         throws MetaMatrixComponentException {
         ConnectorBinding binding = getConnectorBinding(deployedConnectorBindingName);
         if (binding != null) {
@@ -331,6 +332,7 @@
             if (mgr != null) {
                 return mgr.getStatus();
             }
+            return ConnectorStatus.CLOSED;
         }
         throw new MetaMatrixComponentException(DQPEmbeddedPlugin.Util.getString("DataService.Unable_to_find_connector", deployedConnectorBindingName)); //$NON-NLS-1$
     } 

Added: trunk/engine/src/main/java/com/metamatrix/dqp/service/ConnectorStatus.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/dqp/service/ConnectorStatus.java	                        (rev 0)
+++ trunk/engine/src/main/java/com/metamatrix/dqp/service/ConnectorStatus.java	2009-07-13 22:00:25 UTC (rev 1123)
@@ -0,0 +1,26 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * See the COPYRIGHT.txt file distributed with this work for information
+ * regarding copyright ownership.  Some portions may be licensed
+ * to Red Hat, Inc. under one or more contributor license agreements.
+ * 
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301 USA.
+ */
+package com.metamatrix.dqp.service;
+
+public enum ConnectorStatus {
+	NOT_INITIALIZED, INIT_FAILED, OPEN, DATA_SOURCE_UNAVAILABLE, CLOSED, UNABLE_TO_CHECK;
+}


Property changes on: trunk/engine/src/main/java/com/metamatrix/dqp/service/ConnectorStatus.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: trunk/engine/src/main/java/com/metamatrix/dqp/service/DataService.java
===================================================================
--- trunk/engine/src/main/java/com/metamatrix/dqp/service/DataService.java	2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/engine/src/main/java/com/metamatrix/dqp/service/DataService.java	2009-07-13 22:00:25 UTC (rev 1123)
@@ -131,11 +131,11 @@
     
     /**
      * Get the State of the connector binding name 
-     * @return {@link com.metamatrix.connector.monitor.AliveStatus}
+     * @return {@link ConnectorStatus}
      * @throws MetaMatrixComponentException
      * @since 4.3
      */
-    Boolean getConnectorBindingState(String connectorBindingName) 
+    ConnectorStatus getConnectorBindingState(String connectorBindingName) 
         throws MetaMatrixComponentException;
     
     /**

Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java	2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorManager.java	2009-07-13 22:00:25 UTC (rev 1123)
@@ -86,6 +86,7 @@
 import com.metamatrix.dqp.message.RequestID;
 import com.metamatrix.dqp.service.BufferService;
 import com.metamatrix.dqp.service.CommandLogMessage;
+import com.metamatrix.dqp.service.ConnectorStatus;
 import com.metamatrix.dqp.service.DQPServiceNames;
 import com.metamatrix.dqp.service.MetadataService;
 import com.metamatrix.dqp.service.TransactionService;
@@ -101,7 +102,8 @@
  */
 public class ConnectorManager implements ApplicationService {
 
-    public static final int DEFAULT_MAX_THREADS = 20;
+    private static final int TIME_BETWEEN_STATUS_CHECKS = 5000;
+	public static final int DEFAULT_MAX_THREADS = 20;
     private static final String DEFAULT_MAX_RESULTSET_CACHE_SIZE = "20"; //$NON-NLS-1$
     private static final String DEFAULT_MAX_RESULTSET_CACHE_AGE = "3600000"; //$NON-NLS-1$
 
@@ -132,6 +134,9 @@
 
     private Properties props;
 	private ClassLoader classloader;
+	private ConnectorStatus previousStatus;
+	private long lastStatusCheck = -1;
+	
     
     public void initialize(Properties props) {
     	this.props = props;
@@ -295,16 +300,23 @@
     /**
      * @see com.metamatrix.dqp.internal.datamgr.ConnectorManager#isAlive()
      */
-    public Boolean getStatus() {
-    	if (this.connector == null) return false;
+    public ConnectorStatus getStatus() {
+    	if (this.connector == null) {
+    		return ConnectorStatus.NOT_INITIALIZED;
+    	}
     	
-        ClassLoader contextloader = Thread.currentThread().getContextClassLoader();
-        try {
-        	Thread.currentThread().setContextClassLoader(classloader);
-            return this.connector.getStatus();
-        } finally {
-        	Thread.currentThread().setContextClassLoader(contextloader);
-        }
+    	// we want to avoid repeated calls to status, as they may be expensive to make. 
+    	if (lastStatusCheck == -1 || (System.currentTimeMillis() - lastStatusCheck >= TIME_BETWEEN_STATUS_CHECKS)) {
+	        ClassLoader contextloader = Thread.currentThread().getContextClassLoader();
+	        try {
+	        	Thread.currentThread().setContextClassLoader(classloader);
+	            this.previousStatus = this.connector.getStatus();
+	            this.lastStatusCheck = System.currentTimeMillis();
+	        } finally {
+	        	Thread.currentThread().setContextClassLoader(contextloader);
+	        }
+    	}
+        return this.previousStatus;
     }
     
     /**

Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorWrapper.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorWrapper.java	2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/datamgr/impl/ConnectorWrapper.java	2009-07-13 22:00:25 UTC (rev 1123)
@@ -35,6 +35,8 @@
 import org.teiid.connector.xa.api.XAConnection;
 import org.teiid.connector.xa.api.XAConnector;
 
+import com.metamatrix.dqp.service.ConnectorStatus;
+
 /**
  * ConnectorWrapper adds default behavior to the wrapped connector.
  */
@@ -94,21 +96,21 @@
 	    return actualConnector.getCapabilities();
 	}
 	
-	public final Boolean getStatus() {
+	public final ConnectorStatus getStatus() {
 		if (supportsSingleIdentity()) {
 			Connection conn = null;
 			try {
 				conn = this.getConnection(null);
-				return conn.isAlive();
+				return conn.isAlive()?ConnectorStatus.OPEN:ConnectorStatus.DATA_SOURCE_UNAVAILABLE;
 			} catch (ConnectorException e) {
-				return Boolean.FALSE;
+				return ConnectorStatus.INIT_FAILED;
 			} finally {
 				if (conn != null) {
 					conn.close();
 				}
 			}
 		}
-		return null;
+		return ConnectorStatus.UNABLE_TO_CHECK;
 	}
 	
 	public Connector getActualConnector() {

Modified: trunk/engine/src/test/java/com/metamatrix/dqp/service/AutoGenDataService.java
===================================================================
--- trunk/engine/src/test/java/com/metamatrix/dqp/service/AutoGenDataService.java	2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/engine/src/test/java/com/metamatrix/dqp/service/AutoGenDataService.java	2009-07-13 22:00:25 UTC (rev 1123)
@@ -198,7 +198,7 @@
      * @see com.metamatrix.dqp.service.DataService#getConnectorBindingState(java.lang.String)
      * @since 4.3
      */
-    public Boolean getConnectorBindingState(String connectorBindingName) throws MetaMatrixComponentException {
+    public ConnectorStatus getConnectorBindingState(String connectorBindingName) throws MetaMatrixComponentException {
         return null;
     }
 

Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/impl/TestConnectorManagerImpl.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/impl/TestConnectorManagerImpl.java	2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/datamgr/impl/TestConnectorManagerImpl.java	2009-07-13 22:00:25 UTC (rev 1123)
@@ -35,7 +35,13 @@
 
 import org.junit.Test;
 import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations.Mock;
+import org.teiid.connector.api.Connection;
+import org.teiid.connector.api.Connector;
+import org.teiid.connector.api.ConnectorException;
+import org.teiid.connector.api.ConnectorIdentity;
 import org.teiid.connector.api.ConnectorPropertyNames;
+import org.teiid.connector.api.ExecutionContext;
 import org.teiid.dqp.internal.cache.ResultSetCache;
 import org.teiid.dqp.internal.datamgr.impl.TestConnectorWorkItem.QueueResultsReceiver;
 import org.teiid.dqp.internal.pooling.connector.FakeSourceConnectionFactory;
@@ -46,6 +52,7 @@
 import com.metamatrix.common.application.exception.ApplicationLifecycleException;
 import com.metamatrix.dqp.message.AtomicRequestMessage;
 import com.metamatrix.dqp.message.AtomicResultsMessage;
+import com.metamatrix.dqp.service.ConnectorStatus;
 import com.metamatrix.dqp.service.DQPServiceNames;
 import com.metamatrix.dqp.service.FakeMetadataService;
 import com.metamatrix.query.optimizer.capabilities.SourceCapabilities;
@@ -205,5 +212,86 @@
         assertNotNull(receiver.getResults().poll(1000, TimeUnit.MILLISECONDS));
         cm.stop();
     }
+
+    @Test public void testConnectorStatus() throws Exception {
+    	ConnectorManager cm = new ConnectorManager();
+    	assertEquals(ConnectorStatus.NOT_INITIALIZED, cm.getStatus());
+    	
+    	Properties props = new Properties();
+    	Connector mockConnector = Mockito.mock(Connector.class);
+    	Connection mockConnection = Mockito.mock(Connection.class);
+    	
+    	Mockito.stub(mockConnector.getConnection((ExecutionContext)Mockito.anyObject())).toReturn(mockConnection);        
+    	
+        final String connectorName = mockConnector.getClass().getName();
+        props.setProperty(ConnectorPropertyNames.CONNECTOR_CLASS, connectorName);
+        cm.setConnector(new ConnectorWrapper(mockConnector)); // to make them same connector
+
+        // no identity can be defined
+        assertEquals(ConnectorStatus.UNABLE_TO_CHECK, cm.getStatus());
+    }
     
+    @Test public void testConnectorStatus_alive() throws Exception {
+    	ConnectorManager cm = new ConnectorManager();
+    	assertEquals(ConnectorStatus.NOT_INITIALIZED, cm.getStatus());
+    	
+    	Properties props = new Properties();
+    	Connector mockConnector = Mockito.mock(Connector.class);
+    	Connection mockConnection = Mockito.mock(Connection.class);
+    	ConnectorIdentity mockIdentity = Mockito.mock(ConnectorIdentity.class);
+    	
+    	Mockito.stub(mockConnector.getConnection((ExecutionContext)Mockito.anyObject())).toReturn(mockConnection);        
+        Mockito.stub(mockConnector.createIdentity(null)).toReturn(mockIdentity);
+    	
+        final String connectorName = mockConnector.getClass().getName();
+        props.setProperty(ConnectorPropertyNames.CONNECTOR_CLASS, connectorName);
+        startConnectorManager(cm, props);        
+        cm.setConnector(new ConnectorWrapper(mockConnector)); // to make them same connector
+
+        // check Open
+        Mockito.stub(mockConnection.isAlive()).toReturn(true);
+        assertEquals(ConnectorStatus.OPEN, cm.getStatus());
+    }
+    
+    @Test public void testConnectorStatus_dead() throws Exception {
+    	ConnectorManager cm = new ConnectorManager();
+    	assertEquals(ConnectorStatus.NOT_INITIALIZED, cm.getStatus());
+    	
+    	Properties props = new Properties();
+    	Connector mockConnector = Mockito.mock(Connector.class);
+    	Connection mockConnection = Mockito.mock(Connection.class);
+    	ConnectorIdentity mockIdentity = Mockito.mock(ConnectorIdentity.class);
+    	
+    	Mockito.stub(mockConnector.getConnection((ExecutionContext)Mockito.anyObject())).toReturn(mockConnection);        
+        Mockito.stub(mockConnector.createIdentity(null)).toReturn(mockIdentity);
+    	
+        final String connectorName = mockConnector.getClass().getName();
+        props.setProperty(ConnectorPropertyNames.CONNECTOR_CLASS, connectorName);
+        startConnectorManager(cm, props);        
+        cm.setConnector(new ConnectorWrapper(mockConnector)); // to make them same connector
+
+        // data source not available
+        Mockito.stub(mockConnection.isAlive()).toReturn(false);
+        assertEquals(ConnectorStatus.DATA_SOURCE_UNAVAILABLE, cm.getStatus());
+    }    
+    
+    @Test public void testConnectorStatus_exception() throws Exception {
+    	ConnectorManager cm = new ConnectorManager();
+    	assertEquals(ConnectorStatus.NOT_INITIALIZED, cm.getStatus());
+    	
+    	Properties props = new Properties();
+    	Connector mockConnector = Mockito.mock(Connector.class);
+    	ConnectorIdentity mockIdentity = Mockito.mock(ConnectorIdentity.class);
+    	
+    	Mockito.stub(mockConnector.getConnection((ExecutionContext)Mockito.anyObject())).toThrow(new ConnectorException());        
+        Mockito.stub(mockConnector.createIdentity(null)).toReturn(mockIdentity);
+    	
+        final String connectorName = mockConnector.getClass().getName();
+        props.setProperty(ConnectorPropertyNames.CONNECTOR_CLASS, connectorName);
+        startConnectorManager(cm, props);        
+        cm.setConnector(new ConnectorWrapper(mockConnector)); // to make them same connector
+
+        // data source not available
+        assertEquals(ConnectorStatus.INIT_FAILED, cm.getStatus());
+    }     
 }
\ No newline at end of file

Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java	2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDataTierManager.java	2009-07-13 22:00:25 UTC (rev 1123)
@@ -50,6 +50,7 @@
 import com.metamatrix.dqp.message.AtomicResultsMessage;
 import com.metamatrix.dqp.message.RequestID;
 import com.metamatrix.dqp.message.RequestMessage;
+import com.metamatrix.dqp.service.ConnectorStatus;
 import com.metamatrix.dqp.service.DataService;
 import com.metamatrix.dqp.service.FakeBufferService;
 import com.metamatrix.dqp.service.FakeVDBService;
@@ -366,7 +367,7 @@
         public void startConnectorBinding(String connectorBindingName) throws ApplicationLifecycleException,ComponentNotFoundException {}
         public void stopConnectorBinding(String connectorBindingName) throws ApplicationLifecycleException,ComponentNotFoundException {}
         public List getConnectorBindings() throws ComponentNotFoundException {return null;}
-        public Boolean getConnectorBindingState(String connectorBindingName) throws MetaMatrixComponentException {return null;}
+        public ConnectorStatus getConnectorBindingState(String connectorBindingName) throws MetaMatrixComponentException {return null;}
         public ConnectorBinding getConnectorBinding(String connectorBindingName) throws MetaMatrixComponentException {return null;}
         public Collection getConnectorBindingStatistics(String connectorBindingName) throws MetaMatrixComponentException {return null;}
         public Collection getConnectionPoolStatistics(String connectorBindingName) throws MetaMatrixComponentException { return null; }

Modified: trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorService.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorService.java	2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/server/src/main/java/com/metamatrix/server/connector/service/ConnectorService.java	2009-07-13 22:00:25 UTC (rev 1123)
@@ -75,6 +75,7 @@
 import com.metamatrix.dqp.message.AtomicRequestMessage;
 import com.metamatrix.dqp.message.AtomicResultsMessage;
 import com.metamatrix.dqp.message.RequestID;
+import com.metamatrix.dqp.service.ConnectorStatus;
 import com.metamatrix.dqp.service.DQPServiceNames;
 import com.metamatrix.platform.service.api.CacheAdmin;
 import com.metamatrix.platform.service.api.ServiceID;
@@ -252,9 +253,9 @@
     public void checkState() throws ServiceStateException {
 
         if (monitoringEnabled && connectorMgr != null) {
-            Boolean status = connectorMgr.getStatus();
+            ConnectorStatus status = connectorMgr.getStatus();
             int state = getCurrentState();
-            if (state == ServiceState.STATE_OPEN && status == Boolean.FALSE) {
+            if (state == ServiceState.STATE_OPEN && status == ConnectorStatus.DATA_SOURCE_UNAVAILABLE) {
                 updateState(ServiceState.STATE_DATA_SOURCE_UNAVAILABLE);
                 
                 logOK("ConnectorService.Change_state_to_data_source_unavailable", connectorMgrName); //$NON-NLS-1$
@@ -262,7 +263,7 @@
                 //TODO: store the exception in the registry
             }
             
-            if (state == ServiceState.STATE_DATA_SOURCE_UNAVAILABLE && status == Boolean.TRUE) {
+            if (state == ServiceState.STATE_DATA_SOURCE_UNAVAILABLE && status == ConnectorStatus.OPEN) {
                 this.updateState(ServiceState.STATE_OPEN);
                 
                 logOK("ConnectorService.Change_state_to_open", connectorMgrName); //$NON-NLS-1$                

Modified: trunk/server/src/main/java/com/metamatrix/server/dqp/service/PlatformDataService.java
===================================================================
--- trunk/server/src/main/java/com/metamatrix/server/dqp/service/PlatformDataService.java	2009-07-13 18:34:07 UTC (rev 1122)
+++ trunk/server/src/main/java/com/metamatrix/server/dqp/service/PlatformDataService.java	2009-07-13 22:00:25 UTC (rev 1123)
@@ -48,6 +48,7 @@
 import com.metamatrix.dqp.message.AtomicRequestMessage;
 import com.metamatrix.dqp.message.AtomicResultsMessage;
 import com.metamatrix.dqp.message.RequestMessage;
+import com.metamatrix.dqp.service.ConnectorStatus;
 import com.metamatrix.dqp.service.DataService;
 import com.metamatrix.platform.util.PlatformProxyHelper;
 import com.metamatrix.query.optimizer.capabilities.SourceCapabilities;
@@ -193,7 +194,7 @@
      * @see com.metamatrix.dqp.service.DataService#getConnectorBindingState(java.lang.String)
      * @since 4.3
      */
-    public Boolean getConnectorBindingState(String connectorBindingName) throws MetaMatrixComponentException {
+    public ConnectorStatus getConnectorBindingState(String connectorBindingName) throws MetaMatrixComponentException {
         throw new UnsupportedOperationException();
     }
 




More information about the teiid-commits mailing list