[teiid-commits] teiid SVN: r2802 - in trunk: client/src/main/java/org/teiid/jdbc and 19 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Thu Dec 23 21:09:30 EST 2010


Author: shawkins
Date: 2010-12-23 21:09:29 -0500 (Thu, 23 Dec 2010)
New Revision: 2802

Added:
   trunk/build/kits/jboss-container/teiid-examples/jca/odbc-ds.xml
Removed:
   trunk/runtime/src/main/java/org/teiid/logging/CommonsLogManagerAdapter.java
   trunk/runtime/src/main/resources/commons-logging.properties
Modified:
   trunk/client/src/main/java/org/teiid/jdbc/PreparedStatementImpl.java
   trunk/client/src/main/java/org/teiid/net/socket/SocketServerConnectionFactory.java
   trunk/client/src/main/java/org/teiid/netty/handler/codec/serialization/CompactObjectOutputStream.java
   trunk/client/src/test/java/org/teiid/jdbc/TestPreparedStatement.java
   trunk/client/src/test/java/org/teiid/netty/handler/codec/serialization/TestObjectDecoderInputStream.java
   trunk/connectors/connector-salesforce/src/main/java/org/teiid/resource/adapter/salesforce/SalesforceConnectionImpl.java
   trunk/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/Util.java
   trunk/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution/visitors/CriteriaVisitor.java
   trunk/connectors/translator-salesforce/src/test/java/org/teiid/translator/salesforce/execution/visitors/TestVisitors.java
   trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml
   trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
   trunk/engine/src/main/java/org/teiid/dqp/internal/process/TransactionServerImpl.java
   trunk/engine/src/main/java/org/teiid/query/resolver/util/ResolverUtil.java
   trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
   trunk/engine/src/test/java/org/teiid/query/resolver/TestResolver.java
   trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java
   trunk/runtime/src/main/java/org/teiid/logging/Log4jListener.java
   trunk/runtime/src/main/java/org/teiid/services/SessionServiceImpl.java
   trunk/runtime/src/main/java/org/teiid/transport/ClientServiceRegistry.java
   trunk/runtime/src/main/java/org/teiid/transport/ClientServiceRegistryImpl.java
   trunk/runtime/src/main/java/org/teiid/transport/ODBCSocketListener.java
   trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties
Log:
forward merge of 7.1.1

Copied: trunk/build/kits/jboss-container/teiid-examples/jca/odbc-ds.xml (from rev 2799, branches/7.1.x/build/kits/jboss-container/teiid-examples/jca/odbc-ds.xml)
===================================================================
--- trunk/build/kits/jboss-container/teiid-examples/jca/odbc-ds.xml	                        (rev 0)
+++ trunk/build/kits/jboss-container/teiid-examples/jca/odbc-ds.xml	2010-12-24 02:09:29 UTC (rev 2802)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<datasources>
+    <!-- Sample data source using JDBC-ODBC bridge to connect to ODBC source  -->
+    <no-tx-datasource>
+        <jndi-name>odbcDS</jndi-name>
+
+        <!-- Create a DSN using ODBC driver manager, and replace {DSN} below with your DSN name -->
+        <connection-url>jdbc:odbc:{DSN}</connection-url>
+        
+        <!-- For DSN less connection URL use the below form to connect to a Excel Sheet
+          <connection-url>jdbc:odbc:Driver={Microsoft Excel Driver (*.xls)};Dbq=c:\ODBC\ExcelData.xls</connection-url>
+        -->
+         
+        <driver-class>sun.jdbc.odbc.JdbcOdbcDriver</driver-class>
+        
+        <transaction-isolation>TRANSACTION_NONE</transaction-isolation>
+        <min-pool-size>1</min-pool-size>
+        <max-pool-size>1</max-pool-size>
+        <idle-timeout-minutes>5</idle-timeout-minutes>
+    </no-tx-datasource>
+
+</datasources> 
\ No newline at end of file

Modified: trunk/client/src/main/java/org/teiid/jdbc/PreparedStatementImpl.java
===================================================================
--- trunk/client/src/main/java/org/teiid/jdbc/PreparedStatementImpl.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/client/src/main/java/org/teiid/jdbc/PreparedStatementImpl.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -695,6 +695,10 @@
 
 	public void setBlob(int parameterIndex, final InputStream inputStream)
 			throws SQLException {
+		if (inputStream == null) {
+			this.setObject(parameterIndex, null);
+			return;
+		}
 		this.setObject(parameterIndex, new BlobImpl(new InputStreamFactory() {
 			@Override
 			public InputStream getInputStream() throws IOException {
@@ -718,6 +722,10 @@
 	}
 
 	public void setClob(int parameterIndex, final Reader reader) throws SQLException {
+		if (reader == null) {
+			this.setObject(parameterIndex, null);
+			return;
+		}
 		this.setObject(parameterIndex, new ClobImpl(new InputStreamFactory() {
 			
 			@Override

Modified: trunk/client/src/main/java/org/teiid/net/socket/SocketServerConnectionFactory.java
===================================================================
--- trunk/client/src/main/java/org/teiid/net/socket/SocketServerConnectionFactory.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/client/src/main/java/org/teiid/net/socket/SocketServerConnectionFactory.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -210,6 +210,7 @@
 								try {
 									logon.assertIdentity(session);
 									logon.ping();
+									log.log(Level.FINER, "issueing ping for session:", session); //$NON-NLS-1$
 								} catch (InvalidSessionException e) {
 								}
 							}
@@ -219,6 +220,7 @@
 								sessionStrings.add(session.getSessionID());
 							}
 							logon.ping(sessionStrings);
+							log.log(Level.FINER, "issueing ping for sessions:", sessionStrings); //$NON-NLS-1$
 						}
 					} catch (Exception e) {
 						log.log(Level.WARNING, "Error performing keep-alive ping", e); //$NON-NLS-1$

Modified: trunk/client/src/main/java/org/teiid/netty/handler/codec/serialization/CompactObjectOutputStream.java
===================================================================
--- trunk/client/src/main/java/org/teiid/netty/handler/codec/serialization/CompactObjectOutputStream.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/client/src/main/java/org/teiid/netty/handler/codec/serialization/CompactObjectOutputStream.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -65,6 +65,7 @@
 import org.teiid.core.TeiidProcessingException;
 import org.teiid.core.TeiidException;
 import org.teiid.core.TeiidRuntimeException;
+import org.teiid.core.types.BaseLob;
 import org.teiid.core.types.BlobImpl;
 import org.teiid.core.types.BlobType;
 import org.teiid.core.types.ClobImpl;
@@ -182,40 +183,63 @@
         
     @Override
     protected Object replaceObject(Object obj) throws IOException {
-    	if (obj instanceof Serializable) {
+    	if (obj instanceof BaseLob) {
+    		try {
+		    	if (obj instanceof SQLXMLImpl) {
+					streams.add(((SQLXMLImpl)obj).getBinaryStream());
+		    		StreamFactoryReference sfr = new SQLXMLImpl();
+		    		references.add(sfr);
+		    		return sfr;
+		    	} else if (obj instanceof ClobImpl) {
+		    		streams.add(new ReaderInputStream(((ClobImpl)obj).getCharacterStream(), Charset.forName(Streamable.ENCODING)));
+		    		StreamFactoryReference sfr = new ClobImpl();
+		    		references.add(sfr);
+		    		return sfr;
+		    	} else if (obj instanceof BlobImpl) {
+		    		streams.add(((Blob)obj).getBinaryStream());
+		    		StreamFactoryReference sfr = new BlobImpl();
+		    		references.add(sfr);
+		    		return sfr;
+		    	}
+    		} catch (SQLException e) {
+    			throw new IOException(e);
+    		}
+    	}
+    	else if (obj instanceof Serializable) {
     		return obj;
     	}
-		try {
-	    	if (obj instanceof Reader) {
-	    		streams.add(new ReaderInputStream((Reader)obj, Charset.forName(Streamable.ENCODING)));
-	    		StreamFactoryReference sfr = new SerializableReader();
-	    		references.add(sfr);
-	    		return sfr;
-	    	} else if (obj instanceof InputStream) {
-	    		streams.add((InputStream)obj);
-	    		StreamFactoryReference sfr = new SerializableInputStream();
-	    		references.add(sfr);
-	    		return sfr;
-	    	} else if (obj instanceof SQLXML) {
-				streams.add(((SQLXML)obj).getBinaryStream());
-	    		StreamFactoryReference sfr = new SQLXMLImpl();
-	    		references.add(sfr);
-	    		return sfr;
-	    	} else if (obj instanceof Clob) {
-	    		//TODO: see if this is a ClobImpl and grab the underlying stream
-	    		streams.add(new ReaderInputStream(((Clob)obj).getCharacterStream(), Charset.forName(Streamable.ENCODING)));
-	    		StreamFactoryReference sfr = new ClobImpl();
-	    		references.add(sfr);
-	    		return sfr;
-	    	} else if (obj instanceof Blob) {
-	    		streams.add(((Blob)obj).getBinaryStream());
-	    		StreamFactoryReference sfr = new BlobImpl();
-	    		references.add(sfr);
-	    		return sfr;
-	    	}
-		} catch (SQLException e) {
-			throw new IOException(e);
-		}
+    	else {
+			try {
+		    	if (obj instanceof Reader) {
+		    		streams.add(new ReaderInputStream((Reader)obj, Charset.forName(Streamable.ENCODING)));
+		    		StreamFactoryReference sfr = new SerializableReader();
+		    		references.add(sfr);
+		    		return sfr;
+		    	} else if (obj instanceof InputStream) {
+		    		streams.add((InputStream)obj);
+		    		StreamFactoryReference sfr = new SerializableInputStream();
+		    		references.add(sfr);
+		    		return sfr;
+		    	} else if (obj instanceof SQLXML) {
+					streams.add(((SQLXML)obj).getBinaryStream());
+		    		StreamFactoryReference sfr = new SQLXMLImpl();
+		    		references.add(sfr);
+		    		return sfr;
+		    	} else if (obj instanceof Clob) {
+		    		streams.add(new ReaderInputStream(((Clob)obj).getCharacterStream(), Charset.forName(Streamable.ENCODING)));
+		    		StreamFactoryReference sfr = new ClobImpl();
+		    		references.add(sfr);
+		    		return sfr;
+		    	} else if (obj instanceof Blob) {
+		    		streams.add(((Blob)obj).getBinaryStream());
+		    		StreamFactoryReference sfr = new BlobImpl();
+		    		references.add(sfr);
+		    		return sfr;
+		    	}
+			} catch (SQLException e) {
+				throw new IOException(e);
+			}
+    	}
     	return super.replaceObject(obj);
     }
     

Modified: trunk/client/src/test/java/org/teiid/jdbc/TestPreparedStatement.java
===================================================================
--- trunk/client/src/test/java/org/teiid/jdbc/TestPreparedStatement.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/client/src/test/java/org/teiid/jdbc/TestPreparedStatement.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -24,6 +24,7 @@
 
 import static org.junit.Assert.*;
 
+import java.sql.Blob;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.util.ArrayList;
@@ -210,6 +211,11 @@
 		assertEquals("MMPreparedStatement.ParameterValuesList does not match", expectedParameterValues, statement.getParameterValuesList()); //$NON-NLS-1$
 	}
 
+	@Test public void testSetBlob() throws Exception {
+		PreparedStatementImpl stmt = getMMPreparedStatement("delete from table where col=?"); //$NON-NLS-1$
+		stmt.setBlob(1, (Blob)null);
+	}	
+	
 	/**
 	 * Test the <code>addBatch()</code> method of <code>MMPreparedStatement</code> 
 	 * using a batch with an empty parameter value list.  The test will verify 

Modified: trunk/client/src/test/java/org/teiid/netty/handler/codec/serialization/TestObjectDecoderInputStream.java
===================================================================
--- trunk/client/src/test/java/org/teiid/netty/handler/codec/serialization/TestObjectDecoderInputStream.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/client/src/test/java/org/teiid/netty/handler/codec/serialization/TestObjectDecoderInputStream.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -28,11 +28,17 @@
 import java.io.DataOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.StringReader;
 import java.net.SocketTimeoutException;
+import java.nio.charset.Charset;
 import java.util.Arrays;
 import java.util.List;
 
 import org.junit.Test;
+import org.teiid.core.types.ClobImpl;
+import org.teiid.core.types.InputStreamFactory;
+import org.teiid.core.types.Streamable;
+import org.teiid.core.util.ReaderInputStream;
 
 import static org.junit.Assert.*;
 
@@ -76,4 +82,23 @@
 		assertEquals(testValue, ObjectDecoderInputStream.getIntFromBytes(baos.toByteArray()));
 	}
 	
+	
+	@Test public void testReplaceObject() throws Exception {
+		ByteArrayOutputStream baos = new ByteArrayOutputStream();
+		ObjectEncoderOutputStream out = new ObjectEncoderOutputStream(new DataOutputStream(baos), 512);
+		
+		ClobImpl clob = new ClobImpl(new InputStreamFactory() {
+			@Override
+			public InputStream getInputStream() throws IOException {
+				return new ReaderInputStream(new StringReader("Clob contents"),  Charset.forName(Streamable.ENCODING)); //$NON-NLS-1$
+			}
+			
+		}, -1);
+		
+		out.writeObject(clob);
+		
+		ObjectDecoderInputStream in = new ObjectDecoderInputStream(new DataInputStream(new ByteArrayInputStream(baos.toByteArray())), Thread.currentThread().getContextClassLoader(), 1024);
+		Object result = in.readObject();
+		assertTrue(result instanceof ClobImpl);
+	}	
 }

Modified: trunk/connectors/connector-salesforce/src/main/java/org/teiid/resource/adapter/salesforce/SalesforceConnectionImpl.java
===================================================================
--- trunk/connectors/connector-salesforce/src/main/java/org/teiid/resource/adapter/salesforce/SalesforceConnectionImpl.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/connectors/connector-salesforce/src/main/java/org/teiid/resource/adapter/salesforce/SalesforceConnectionImpl.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -80,7 +80,7 @@
 			try {
 				return sfSoap.getUserInfo(sh).getUserName();
 			} catch (com.sforce.soap.partner.UnexpectedErrorFault e) {
-				throw new ResourceException(e.getMessage());
+				throw new ResourceException(e);
 			}
 	}
 	
@@ -108,11 +108,11 @@
 				((BindingProvider)sfSoap).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, url.toExternalForm());
 				loginResult = sfSoap.login(username, password);
 			} catch (LoginFault e) {
-				throw new ResourceException(e.getCause().getMessage());
+				throw new ResourceException(e);
 			} catch (InvalidIdFault e) {
-				throw new ResourceException(e.getCause().getMessage());
+				throw new ResourceException(e);
 			} catch (com.sforce.soap.partner.UnexpectedErrorFault e) {
-				throw new ResourceException(e.getCause().getMessage());
+				throw new ResourceException(e);
 			}
 			LogManager.logTrace(LogConstants.CTX_CONNECTOR, "Login was successful for username " + username); //$NON-NLS-1$
 
@@ -130,7 +130,7 @@
 			try {
 				sfSoap.getUserInfo(sh);
 			} catch (com.sforce.soap.partner.UnexpectedErrorFault e) {
-				throw new ResourceException(e.getMessage());
+				throw new ResourceException(e);
 			}
 		}
 	}
@@ -171,17 +171,17 @@
 				qr = sfSoap.query(queryString, sh);
 			}
 		} catch (InvalidFieldFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		} catch (MalformedQueryFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		} catch (com.sforce.soap.partner.InvalidSObjectFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		} catch (InvalidIdFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		} catch (com.sforce.soap.partner.UnexpectedErrorFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		} catch (com.sforce.soap.partner.InvalidQueryLocatorFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		}
 		return qr;
 	}
@@ -192,11 +192,11 @@
 		try {
 			return sfSoap.queryMore(queryLocator, sh);
 		} catch (InvalidFieldFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		} catch (com.sforce.soap.partner.UnexpectedErrorFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		} catch (com.sforce.soap.partner.InvalidQueryLocatorFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		}
 		
 	}
@@ -206,7 +206,7 @@
 		try {
 			results = sfSoap.delete(Arrays.asList(ids), sh);
 		} catch (com.sforce.soap.partner.UnexpectedErrorFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		}
 		
 		boolean allGood = true;
@@ -244,13 +244,13 @@
 		try {
 			result = sfSoap.create(objects, sh);
 		} catch (InvalidFieldFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		} catch (com.sforce.soap.partner.InvalidSObjectFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		} catch (InvalidIdFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		} catch (com.sforce.soap.partner.UnexpectedErrorFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		}
 		return analyzeResult(result);
 	}
@@ -269,13 +269,13 @@
 			try {
 				result = sfSoap.update(params, sh);
 			} catch (InvalidFieldFault e) {
-				throw new ResourceException(e.getMessage(),e);
+				throw new ResourceException(e);
 			} catch (com.sforce.soap.partner.InvalidSObjectFault e) {
-				throw new ResourceException(e.getMessage(),e);
+				throw new ResourceException(e);
 			} catch (InvalidIdFault e) {
-				throw new ResourceException(e.getMessage(),e);
+				throw new ResourceException(e);
 			} catch (com.sforce.soap.partner.UnexpectedErrorFault e) {
-				throw new ResourceException(e.getMessage(),e);
+				throw new ResourceException(e);
 			}
 		return analyzeResult(result);
 	}
@@ -294,9 +294,9 @@
 			try {
 				updated = sfSoap.getUpdated(objectType, startDate, endDate, sh);
 			} catch (com.sforce.soap.partner.InvalidSObjectFault e) {
-				throw new ResourceException(e.getMessage(), e);
+				throw new ResourceException(e);
 			} catch (com.sforce.soap.partner.UnexpectedErrorFault e) {
-				throw new ResourceException(e.getMessage(), e);
+				throw new ResourceException(e);
 			}
 			UpdatedResult result = new UpdatedResult(); 
 			result.setLatestDateCovered(updated.getLatestDateCovered().toGregorianCalendar());
@@ -310,9 +310,9 @@
 			try {
 				deleted = sfSoap.getDeleted(objectName, startCalendar, endCalendar, sh);
 			} catch (com.sforce.soap.partner.InvalidSObjectFault e) {
-				throw new ResourceException(e.getMessage(), e);
+				throw new ResourceException(e);
 			} catch (com.sforce.soap.partner.UnexpectedErrorFault e) {
-				throw new ResourceException(e.getMessage(), e);
+				throw new ResourceException(e);
 			}
 			DeletedResult result = new DeletedResult();
 			result.setLatestDateCovered(deleted.getLatestDateCovered().toGregorianCalendar());
@@ -338,17 +338,18 @@
 			QueryResult result = new QueryResult();
 			result.getRecords().addAll(objects);
 			result.setSize(objects.size());
+			result.setDone(true);
 			return result;			
 		} catch (InvalidFieldFault e) {
-			throw new ResourceException(e.getMessage(),e);
+			throw new ResourceException(e);
 		} catch (MalformedQueryFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		} catch (com.sforce.soap.partner.InvalidSObjectFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		} catch (InvalidIdFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		} catch (com.sforce.soap.partner.UnexpectedErrorFault e) {
-			throw new ResourceException(e.getMessage(),e);
+			throw new ResourceException(e);
 		}
 		
 	}
@@ -357,9 +358,7 @@
 		try {
 			return sfSoap.describeGlobal(sh);
 		} catch (com.sforce.soap.partner.UnexpectedErrorFault e) {
-			ResourceException ce = new ResourceException(e.getCause().getMessage());
-			ce.initCause(e.getCause());
-			throw ce;
+			throw new ResourceException(e);
 		}
 	}
 
@@ -367,9 +366,9 @@
 		try {
 			return sfSoap.describeSObject(objectName, sh);
 		} catch (com.sforce.soap.partner.InvalidSObjectFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		} catch (com.sforce.soap.partner.UnexpectedErrorFault e) {
-			throw new ResourceException(e.getMessage(), e);
+			throw new ResourceException(e);
 		}
 	}
 
@@ -382,4 +381,5 @@
 	public boolean isAlive() {
 		return isValid();
 	}	
+
 }

Modified: trunk/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/Util.java
===================================================================
--- trunk/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/Util.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/Util.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -57,7 +57,7 @@
 	}
 
 	public static SimpleDateFormat getSalesforceDateTimeFormat() {
-			return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); //$NON-NLS-1$
+			return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"); //$NON-NLS-1$
 	}
 	
 	public static SimpleDateFormat getTimeZoneOffsetFormat() {

Modified: trunk/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution/visitors/CriteriaVisitor.java
===================================================================
--- trunk/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution/visitors/CriteriaVisitor.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/connectors/translator-salesforce/src/main/java/org/teiid/translator/salesforce/execution/visitors/CriteriaVisitor.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -23,6 +23,7 @@
 
 import java.sql.Timestamp;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -102,6 +103,9 @@
             addCompareCriteria(criteriaList, criteria);
             boolean isAcceptableID = (Operator.EQ == criteria.getOperator() && isIdColumn(criteria.getLeftExpression()));
             setHasCriteria(true, isAcceptableID);
+            if (isAcceptableID) {
+            	this.idInCriteria = new In(criteria.getLeftExpression(), Arrays.asList(criteria.getRightExpression()), false);
+            }
         } catch (TranslatorException e) {
             exceptions.add(e);
         }

Modified: trunk/connectors/translator-salesforce/src/test/java/org/teiid/translator/salesforce/execution/visitors/TestVisitors.java
===================================================================
--- trunk/connectors/translator-salesforce/src/test/java/org/teiid/translator/salesforce/execution/visitors/TestVisitors.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/connectors/translator-salesforce/src/test/java/org/teiid/translator/salesforce/execution/visitors/TestVisitors.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -25,8 +25,10 @@
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.TimeZone;
 
 import org.junit.Test;
+import org.mockito.Mockito;
 import org.teiid.cdk.api.TranslationUtility;
 import org.teiid.core.types.DataTypeManager;
 import org.teiid.language.Select;
@@ -40,10 +42,12 @@
 import org.teiid.query.metadata.TransformationMetadata;
 import org.teiid.query.unittest.FakeMetadataFactory;
 import org.teiid.query.unittest.RealMetadataFactory;
-import org.teiid.translator.salesforce.execution.visitors.JoinQueryVisitor;
-import org.teiid.translator.salesforce.execution.visitors.SelectVisitor;
+import org.teiid.translator.ExecutionContext;
+import org.teiid.translator.salesforce.Constants;
+import org.teiid.translator.salesforce.SalesforceConnection;
+import org.teiid.translator.salesforce.execution.QueryExecutionImpl;
 
-
+ at SuppressWarnings("nls")
 public class TestVisitors {
 
     public static QueryMetadataInterface exampleSalesforce() { 
@@ -52,9 +56,10 @@
         Schema salesforceModel = RealMetadataFactory.createPhysicalModel("SalesforceModel", store); //$NON-NLS-1$
        
         // Create Account group
-        Table accounTable = RealMetadataFactory.createPhysicalGroup("Account", salesforceModel); //$NON-NLS-1$
-        accounTable.setNameInSource("Account"); //$NON-NLS-1$
-        accounTable.setProperty("Supports Query", Boolean.TRUE.toString()); //$NON-NLS-1$
+        Table accountTable = RealMetadataFactory.createPhysicalGroup("Account", salesforceModel); //$NON-NLS-1$
+        accountTable.setNameInSource("Account"); //$NON-NLS-1$
+        accountTable.setProperty("Supports Query", Boolean.TRUE.toString()); //$NON-NLS-1$
+        accountTable.setProperty(Constants.SUPPORTS_RETRIEVE, Boolean.TRUE.toString());
         // Create Account Columns
         String[] acctNames = new String[] {
             "ID", "Name", "Stuff", "Industry"  //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
@@ -63,7 +68,7 @@
             DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.STRING
         };
         
-        List<Column> acctCols = RealMetadataFactory.createElements(accounTable, acctNames, acctTypes);
+        List<Column> acctCols = RealMetadataFactory.createElements(accountTable, acctNames, acctTypes);
         acctCols.get(2).setNativeType("multipicklist"); //$NON-NLS-1$
         acctCols.get(2).setSearchType(SearchType.Like_Only);
         // Set name in source on each column
@@ -81,16 +86,16 @@
         contactTable.setProperty("Supports Query", Boolean.TRUE.toString()); //$NON-NLS-1$
         // Create Contact Columns
         String[] elemNames = new String[] {
-            "ContactID", "Name", "AccountId"  //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+            "ContactID", "Name", "AccountId", "InitialContact"  //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
         };
         String[] elemTypes = new String[] {  
-            DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.STRING 
+            DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.STRING, DataTypeManager.DefaultDataTypes.TIMESTAMP 
         };
         
         List<Column> contactCols = RealMetadataFactory.createElements(contactTable, elemNames, elemTypes);
         // Set name in source on each column
         String[] contactNameInSource = new String[] {
-           "id", "ContactName", "accountid"  //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+           "id", "ContactName", "accountid", "InitialContact"  //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
         };
         for(int i=0; i<2; i++) {
             Column obj = contactCols.get(i);
@@ -170,5 +175,25 @@
 		visitor.visit(command);
 		assertEquals("SELECT Contact.ContactName FROM Contact WHERE ContactName IN('x','y')", visitor.getQuery().toString().trim()); //$NON-NLS-1$
 	}
+	
+	@Test public void testIDCriteria() throws Exception {
+		Select command = (Select)translationUtility.parseCommand("select id, name from Account where id = 'bar'"); //$NON-NLS-1$
+		SalesforceConnection sfc = Mockito.mock(SalesforceConnection.class);
+		QueryExecutionImpl qei = new QueryExecutionImpl(command, sfc, translationUtility.createRuntimeMetadata(), Mockito.mock(ExecutionContext.class));
+		qei.execute();
+		Mockito.verify(sfc).retrieve("Account.id, Account.AccountName", "Account", Arrays.asList("bar"));
+	}
+	
+	@Test public void testDateTimeFormating() throws Exception {
+		TimeZone.setDefault(TimeZone.getTimeZone("GMT-06:00"));
+		try {
+			Select command = (Select)translationUtility.parseCommand("select name from contacts where initialcontact = {ts'2003-03-11 11:42:10.5'}"); //$NON-NLS-1$
+			SelectVisitor visitor = new SelectVisitor(translationUtility.createRuntimeMetadata());
+			visitor.visit(command);
+			assertEquals("SELECT Contact.ContactName FROM Contact WHERE Contact.InitialContact = 2003-03-11T11:42:10.500-06:00", visitor.getQuery().toString().trim()); //$NON-NLS-1$
+		} finally {
+			TimeZone.setDefault(null);
+		}
+	}
 
 }

Modified: trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml
===================================================================
--- trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/documentation/reference/src/main/docbook/en-US/content/system_schema.xml	2010-12-24 02:09:29 UTC (rev 2802)
@@ -176,7 +176,7 @@
                                     <para>integer</para>
                                 </entry>
                                 <entry>
-                                    <para>Unique ID</para>
+                                    <para>Unique ID (see note below)</para>
                                 </entry>
                             </row>                            
 							<row>
@@ -269,7 +269,7 @@
                                     <para>integer</para>
                                 </entry>
                                 <entry>
-                                    <para>Unique ID</para>
+                                    <para>Unique ID (see note below)</para>
                                 </entry>
                             </row>                             
 						</tbody>
@@ -397,7 +397,7 @@
                                     <para>integer</para>
                                 </entry>
                                 <entry>
-                                    <para>Unique ID</para>
+                                    <para>Unique ID (see note below)</para>
                                 </entry>
                             </row>                             
 							<row>
@@ -915,7 +915,7 @@
                                     <para>integer</para>
                                 </entry>
                                 <entry>
-                                    <para>Unique ID</para>
+                                    <para>Unique ID (see note below)</para>
                                 </entry>
                             </row>                             
 							<row>
@@ -1074,7 +1074,7 @@
                                     <para>integer</para>
                                 </entry>
                                 <entry>
-                                    <para>Unique ID</para>
+                                    <para>Unique ID (see note below)</para>
                                 </entry>
                             </row>                             
 						</tbody>
@@ -1199,7 +1199,7 @@
                                     <para>integer</para>
                                 </entry>
                                 <entry>
-                                    <para>Unique ID</para>
+                                    <para>Unique ID (see note below)</para>
                                 </entry>
                             </row>                             
 							<row>
@@ -1317,7 +1317,7 @@
                                     <para>integer</para>
                                 </entry>
                                 <entry>
-                                    <para>Unique ID</para>
+                                    <para>Unique ID (see note below)</para>
                                 </entry>
                             </row>                             
 							<row>
@@ -1710,7 +1710,7 @@
                                     <para>integer</para>
                                 </entry>
                                 <entry>
-                                    <para>Unique ID</para>
+                                    <para>Unique ID (see note below)</para>
                                 </entry>
                             </row>                             
 							<row>
@@ -1751,6 +1751,12 @@
 				</informaltable>
 			</section>
 		</section>
+        <warning>
+		  <para>OID column is is guranteed to be unique only for given version of the VDB. If the VDB is updated and a different version of
+          the VDB is deployed, these IDs are not guranteed to be unique across both versions of VDB. UID is unique across different versions
+          only if the VDB is generated from Designer and metadata from old models are used(i.e. no re-importing from sources). 
+          UID column in a Dynamic VDB behaves same as OID column.</para>
+	  </warning>
 	</section>
 	<section id="system_procedures">
 		<title>System Procedures</title>

Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/DQPCore.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -472,7 +472,7 @@
     public void terminateSession(String sessionId) {
         // sometimes there will not be any atomic requests pending, in that
         // situation we still need to clear the master request from our map
-        ClientState state = getClientState(sessionId, false);
+        ClientState state = this.clientState.remove(sessionId);
         if (state != null) {
 	        for (RequestID reqId : state.getRequests()) {
 	            try {

Modified: trunk/engine/src/main/java/org/teiid/dqp/internal/process/TransactionServerImpl.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/dqp/internal/process/TransactionServerImpl.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/engine/src/main/java/org/teiid/dqp/internal/process/TransactionServerImpl.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -490,7 +490,7 @@
     }
 
     public void cancelTransactions(String threadId, boolean requestOnly) throws XATransactionException {
-        TransactionContext tc = transactions.getTransactionContext(threadId);
+    	TransactionContext tc = requestOnly?transactions.getTransactionContext(threadId):transactions.removeTransactionContext(threadId);
         
         if (tc == null || tc.getTransactionType() == TransactionContext.Scope.NONE 
         		|| (requestOnly && tc.getTransactionType() != TransactionContext.Scope.REQUEST)) {

Modified: trunk/engine/src/main/java/org/teiid/query/resolver/util/ResolverUtil.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/resolver/util/ResolverUtil.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/engine/src/main/java/org/teiid/query/resolver/util/ResolverUtil.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -324,7 +324,6 @@
 	 *            allowed to be in ORDER BY
 	 * @param metadata
 	 *            QueryMetadataInterface
-	 * @param isSimpleQuery
 	 */
     public static void resolveOrderBy(OrderBy orderBy, QueryCommand command, QueryMetadataInterface metadata)
         throws QueryResolverException, QueryMetadataException, TeiidComponentException {
@@ -336,7 +335,7 @@
         
         if (command instanceof Query) {
         	Query query = (Query)command;
-        	isSimpleQuery = !query.getSelect().isDistinct() && query.getGroupBy() == null;
+        	isSimpleQuery = !query.getSelect().isDistinct() && !query.hasAggregates();
         	if (query.getFrom() != null) {
         		fromClauseGroups = query.getFrom().getGroups();
         	}

Modified: trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/engine/src/test/java/org/teiid/dqp/internal/process/TestDQPCore.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -204,7 +204,10 @@
         }
 
         Future<ResultsMessage> message = core.executeRequest(reqMsg.getExecutionId(), reqMsg);
+        assertNotNull(core.getClientState(String.valueOf(sessionid), false));
         ResultsMessage results = message.get(5000, TimeUnit.MILLISECONDS);
+        core.terminateSession(String.valueOf(sessionid));
+        assertNull(core.getClientState(String.valueOf(sessionid), false));
         if (results.getException() != null) {
         	throw results.getException();
         }

Modified: trunk/engine/src/test/java/org/teiid/query/resolver/TestResolver.java
===================================================================
--- trunk/engine/src/test/java/org/teiid/query/resolver/TestResolver.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/engine/src/test/java/org/teiid/query/resolver/TestResolver.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -3070,6 +3070,10 @@
         assertEquals("A.ret", resolvedQuery.getProjectedSymbols().get(0).getName());
     }
     
+    @Test public void testOrderByAggregatesError() throws Exception {
+    	helpResolveException("select count(*) from pm1.g1 order by e1");
+    }
+    
     @Test public void testWithDuplidateName() {
     	helpResolveException("with x as (TABLE pm1.g1), x as (TABLE pm1.g2) SELECT * from x");
     }

Modified: trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java
===================================================================
--- trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/jboss-integration/src/main/java/org/teiid/jboss/deployers/RuntimeEngineDeployer.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -161,24 +161,30 @@
 				}
     		}
     	}
-    	/*
-    	 * having only a single clientserviceregistry means that the admin and jdbc ports are functionally equivalent.
-    	 * this is an undocuemented feature.  Designer integration relies on this to use the same port
-    	 * for admin and preview logic.
-    	 */
+    	
     	this.csr.registerClientService(ILogon.class, logon, LogConstants.CTX_SECURITY);
-    	this.csr.registerClientService(DQP.class, proxyService(DQP.class, this.dqpCore, LogConstants.CTX_DQP), LogConstants.CTX_DQP);
-    	this.csr.registerClientService(Admin.class, proxyService(Admin.class, admin, LogConstants.CTX_ADMIN_API), LogConstants.CTX_ADMIN_API);
+    	DQP dqpProxy = proxyService(DQP.class, this.dqpCore, LogConstants.CTX_DQP);
+    	this.csr.registerClientService(DQP.class, dqpProxy, LogConstants.CTX_DQP);
+    	Admin adminProxy = proxyService(Admin.class, admin, LogConstants.CTX_ADMIN_API);
+    	this.csr.registerClientService(Admin.class, adminProxy, LogConstants.CTX_ADMIN_API);
     	
+    	ClientServiceRegistryImpl jdbcCsr = new ClientServiceRegistryImpl();
+    	jdbcCsr.registerClientService(ILogon.class, logon, LogConstants.CTX_SECURITY);
+    	jdbcCsr.registerClientService(DQP.class, dqpProxy, LogConstants.CTX_DQP);
+    	
     	if (this.jdbcSocketConfiguration.getEnabled()) {
-	    	this.jdbcSocket = new SocketListener(this.jdbcSocketConfiguration, csr, this.dqpCore.getBufferManager(), offset);
+	    	this.jdbcSocket = new SocketListener(this.jdbcSocketConfiguration, jdbcCsr, this.dqpCore.getBufferManager(), offset);
 	    	LogManager.logInfo(LogConstants.CTX_RUNTIME, IntegrationPlugin.Util.getString("socket_enabled","Teiid JDBC = ",(this.jdbcSocketConfiguration.getSSLConfiguration().isSslEnabled()?"mms://":"mm://")+this.jdbcSocketConfiguration.getHostAddress().getHostName()+":"+(this.jdbcSocketConfiguration.getPortNumber()+offset))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
     	} else {
     		LogManager.logInfo(LogConstants.CTX_RUNTIME, IntegrationPlugin.Util.getString("socket_not_enabled", "jdbc connections")); //$NON-NLS-1$ //$NON-NLS-2$
     	}
     	
+    	ClientServiceRegistryImpl adminCsr = new ClientServiceRegistryImpl(Type.Admin);
+    	adminCsr.registerClientService(ILogon.class, logon, LogConstants.CTX_SECURITY);
+    	adminCsr.registerClientService(Admin.class, adminProxy, LogConstants.CTX_ADMIN_API);
+    	
     	if (this.adminSocketConfiguration.getEnabled()) {
-	    	this.adminSocket = new SocketListener(this.adminSocketConfiguration, csr, this.dqpCore.getBufferManager(), offset);
+	    	this.adminSocket = new SocketListener(this.adminSocketConfiguration, adminCsr, this.dqpCore.getBufferManager(), offset);
 	    	LogManager.logInfo(LogConstants.CTX_RUNTIME, IntegrationPlugin.Util.getString("socket_enabled","Teiid Admin", (this.adminSocketConfiguration.getSSLConfiguration().isSslEnabled()?"mms://":"mm://")+this.adminSocketConfiguration.getHostAddress().getHostName()+":"+(this.adminSocketConfiguration.getPortNumber()+offset))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
     	} else {
     		LogManager.logInfo(LogConstants.CTX_RUNTIME, IntegrationPlugin.Util.getString("socket_not_enabled", "admin connections")); //$NON-NLS-1$ //$NON-NLS-2$
@@ -186,7 +192,7 @@
     	
     	if (this.odbcSocketConfiguration.getEnabled()) {
     		this.vdbRepository.odbcEnabled();
-	    	this.odbcSocket = new ODBCSocketListener(this.odbcSocketConfiguration, csr, this.dqpCore.getBufferManager(), offset);
+	    	this.odbcSocket = new ODBCSocketListener(this.odbcSocketConfiguration, this.dqpCore.getBufferManager(), offset);
 	    	LogManager.logInfo(LogConstants.CTX_RUNTIME, IntegrationPlugin.Util.getString("odbc_enabled","Teiid ODBC - SSL=", (this.odbcSocketConfiguration.getSSLConfiguration().isSslEnabled()?"ON":"OFF")+" Host = "+this.odbcSocketConfiguration.getHostAddress().getHostName()+" Port = "+(this.odbcSocketConfiguration.getPortNumber()+offset))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
     	} else {
     		LogManager.logInfo(LogConstants.CTX_RUNTIME, IntegrationPlugin.Util.getString("odbc_not_enabled")); //$NON-NLS-1$

Deleted: trunk/runtime/src/main/java/org/teiid/logging/CommonsLogManagerAdapter.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/logging/CommonsLogManagerAdapter.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/runtime/src/main/java/org/teiid/logging/CommonsLogManagerAdapter.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -1,128 +0,0 @@
-/*
- * 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 org.teiid.logging;
-
-import org.apache.commons.logging.Log;
-
-
-/**
- * This class is bridge for hooking LogManager into systems that use apache commons logging. In the Teiid
- * JBoss cache/Jboss Transactions use commons logging. This class used in "commons-logging.properties" file.
- */
-public class CommonsLogManagerAdapter implements Log {
-	String context;
-	
-    public CommonsLogManagerAdapter(String context) {
-        this.context = context;
-    }
-	
-	@Override
-	public void debug(Object arg0) {
-		LogManager.log(MessageLevel.DETAIL, this.context, arg0);
-	}
-
-	@Override
-	public void debug(Object arg0, Throwable arg1) {
-		LogManager.log(MessageLevel.DETAIL, this.context, arg1, arg0);
-	}
-
-	@Override
-	public void error(Object arg0) {
-		LogManager.log(MessageLevel.ERROR, this.context, arg0);
-	}
-
-	@Override
-	public void error(Object arg0, Throwable arg1) {
-		LogManager.log(MessageLevel.ERROR, this.context, arg1, arg0);
-	}
-
-	@Override
-	public void fatal(Object arg0) {
-		LogManager.log(MessageLevel.CRITICAL, this.context, arg0);
-	}
-
-	@Override
-	public void fatal(Object arg0, Throwable arg1) {
-		LogManager.log(MessageLevel.CRITICAL, this.context, arg1, arg0);
-	}
-
-	@Override
-	public void info(Object arg0) {
-		LogManager.log(MessageLevel.INFO, this.context, arg0);
-	}
-
-	@Override
-	public void info(Object arg0, Throwable arg1) {
-		LogManager.log(MessageLevel.INFO, this.context, arg1, arg0);
-	}
-
-	@Override
-	public void trace(Object arg0) {
-		LogManager.log(MessageLevel.TRACE, this.context, arg0);
-	}
-
-	@Override
-	public void trace(Object arg0, Throwable arg1) {
-		LogManager.log(MessageLevel.TRACE, this.context, arg1, arg0);
-	}
-
-	@Override
-	public void warn(Object arg0) {
-		LogManager.log(MessageLevel.WARNING, this.context, arg0);
-	}
-
-	@Override
-	public void warn(Object arg0, Throwable arg1) {
-		LogManager.log(MessageLevel.WARNING, this.context, arg1, arg0);
-	}
-	
-	@Override
-	public boolean isDebugEnabled() {
-		return LogManager.isMessageToBeRecorded(this.context, MessageLevel.DETAIL);
-	}
-
-	@Override
-	public boolean isErrorEnabled() {
-		return LogManager.isMessageToBeRecorded(this.context, MessageLevel.ERROR);
-	}
-
-	@Override
-	public boolean isFatalEnabled() {
-		return LogManager.isMessageToBeRecorded(this.context, MessageLevel.CRITICAL);
-	}
-
-	@Override
-	public boolean isInfoEnabled() {
-		return LogManager.isMessageToBeRecorded(this.context, MessageLevel.INFO);
-	}
-
-	@Override
-	public boolean isTraceEnabled() {
-		return LogManager.isMessageToBeRecorded(this.context, MessageLevel.TRACE);
-	}
-
-	@Override
-	public boolean isWarnEnabled() {
-		return LogManager.isMessageToBeRecorded(this.context, MessageLevel.WARNING);
-	}
-}

Modified: trunk/runtime/src/main/java/org/teiid/logging/Log4jListener.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/logging/Log4jListener.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/runtime/src/main/java/org/teiid/logging/Log4jListener.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -71,8 +71,9 @@
     	case MessageLevel.INFO:
     		return Level.INFO;
     	case MessageLevel.DETAIL:
+    		return Level.DEBUG;
     	case MessageLevel.TRACE:
-    		return Level.DEBUG;
+    		return Level.TRACE;
     	case MessageLevel.NONE:
     		return Level.OFF;
     	}

Modified: trunk/runtime/src/main/java/org/teiid/services/SessionServiceImpl.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/services/SessionServiceImpl.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/runtime/src/main/java/org/teiid/services/SessionServiceImpl.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -103,7 +103,7 @@
     				closeSession(info.getSessionId());
     			}
 			} catch (Exception e) {
-				LogManager.logDetail(LogConstants.CTX_SECURITY, e, "error running session monitor, unable to monitor: " + info.getSessionId()); //$NON-NLS-1$
+				LogManager.logDetail(LogConstants.CTX_SECURITY, e, "error running session monitor, unable to monitor:", info.getSessionId()); //$NON-NLS-1$
 			}
 		}
 	}
@@ -192,7 +192,7 @@
         newSession.setLoginContext(loginContext);
         newSession.setSecurityContext(securityContext);
         newSession.setVdb(vdb);
-        LogManager.logDetail(LogConstants.CTX_SECURITY, new Object[] {"Logon successful for \"", userName, "\" - created SessionID \"", "" + newSession.getSessionToken().getSessionID(), "\"" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+        LogManager.logDetail(LogConstants.CTX_SECURITY, new Object[] {"Logon successful for \"", userName, "\" - created SessionID \"", newSession.getSessionToken().getSessionID(), "\"" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
         this.sessionCache.put(newSession.getSessionId(), newSession);
         return newSession;
 	}
@@ -279,6 +279,7 @@
 		SessionMetadata info = getSessionInfo(sessionID);
 		info.setLastPingTime(System.currentTimeMillis());
 		this.sessionCache.put(sessionID, info);
+		LogManager.logDetail(LogConstants.CTX_SECURITY, "Keep-alive ping received for session:", sessionID); //$NON-NLS-1$
 	}
 
 	@Override

Modified: trunk/runtime/src/main/java/org/teiid/transport/ClientServiceRegistry.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/transport/ClientServiceRegistry.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/runtime/src/main/java/org/teiid/transport/ClientServiceRegistry.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -28,6 +28,10 @@
 
 public interface ClientServiceRegistry {
 	
+	public enum Type {
+		ODBC, JDBC, Admin
+	}
+	
 	<T> T getClientService(Class<T> iface) throws ComponentNotFoundException;
 	
 	SecurityHelper getSecurityHelper();

Modified: trunk/runtime/src/main/java/org/teiid/transport/ClientServiceRegistryImpl.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/transport/ClientServiceRegistryImpl.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/runtime/src/main/java/org/teiid/transport/ClientServiceRegistryImpl.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -31,7 +31,7 @@
 
 
 public class ClientServiceRegistryImpl implements ClientServiceRegistry {
-
+	
 	public static class ClientService {
 		private Object instance;
 		private String loggingContext;
@@ -57,6 +57,15 @@
 	
     private HashMap<String, ClientService> clientServices = new HashMap<String, ClientService>();
     private SecurityHelper securityHelper;
+    private Type type = Type.JDBC;
+    
+    public ClientServiceRegistryImpl() {
+    	
+    }
+    
+    public ClientServiceRegistryImpl(Type type) {
+    	this.type = type;
+	}
 
     public <T> T getClientService(Class<T> iface) throws ComponentNotFoundException {
     	ClientService cs = getClientService(iface.getName());
@@ -66,7 +75,7 @@
 	public ClientService getClientService(String iface) throws ComponentNotFoundException {
 		ClientService cs = clientServices.get(iface);
 		if (cs == null) {
-			throw new ComponentNotFoundException(RuntimePlugin.Util.getString("ServerWorkItem.Component_Not_Found", iface)); //$NON-NLS-1$
+			throw new ComponentNotFoundException(RuntimePlugin.Util.getString("ServerWorkItem.Component_Not_Found", type, iface)); //$NON-NLS-1$
 		}
 		return cs;
 	}

Modified: trunk/runtime/src/main/java/org/teiid/transport/ODBCSocketListener.java
===================================================================
--- trunk/runtime/src/main/java/org/teiid/transport/ODBCSocketListener.java	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/runtime/src/main/java/org/teiid/transport/ODBCSocketListener.java	2010-12-24 02:09:29 UTC (rev 2802)
@@ -33,8 +33,9 @@
 public class ODBCSocketListener extends SocketListener {
 	private ODBCServerRemote.AuthenticationType authType = ODBCServerRemote.AuthenticationType.CLEARTEXT;
 	
-	public ODBCSocketListener(SocketConfiguration config, ClientServiceRegistryImpl csr, StorageManager storageManager, int portOffset) {
-		super(config, csr, storageManager, portOffset);
+	public ODBCSocketListener(SocketConfiguration config, StorageManager storageManager, int portOffset) {
+		//the clientserviceregistry isn't actually used by ODBC 
+		super(config, new ClientServiceRegistryImpl(ClientServiceRegistry.Type.ODBC), storageManager, portOffset);
 	}
 
 	@Override

Deleted: trunk/runtime/src/main/resources/commons-logging.properties
===================================================================
--- trunk/runtime/src/main/resources/commons-logging.properties	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/runtime/src/main/resources/commons-logging.properties	2010-12-24 02:09:29 UTC (rev 2802)
@@ -1,2 +0,0 @@
-# overrides the logging in jboss cache and jboss transactions integration code
-org.apache.commons.logging.Log=org.teiid.logging.CommonsLogManagerAdapter
\ No newline at end of file

Modified: trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties
===================================================================
--- trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties	2010-12-23 23:45:44 UTC (rev 2801)
+++ trunk/runtime/src/main/resources/org/teiid/runtime/i18n.properties	2010-12-24 02:09:29 UTC (rev 2802)
@@ -42,16 +42,16 @@
 
 ServerWorkItem.Received_exception_processing_request=Unexpected exception for session {0}
 ServerWorkItem.processing_error=Processing exception ''{0}'' for session {1}.  Exception type {2} thrown from {3}. Enable more detailed logging to see the entire stacktrace.
-ServerWorkItem.Component_Not_Found=Component not found: {0}
+ServerWorkItem.Component_Not_Found=Only {0} connections are allowed on this port.  Component not found: {1}
 
 SocketTransport.1=Bound to address {0} listening on port {1}
-LocalTransportHandler.Transport_shutdown=Tranport has been shutdown.
+LocalTransportHandler.Transport_shutdown=Transport has been shutdown.
 SocketClientInstance.invalid_sessionkey=Invalid session key used during handshake
 SSLAwareChannelHandler.channel_closed=Channel closed
 
 invlaid_vdb_file=Invalid VDB file deployment failed {0}
 redeploying_vdb=Re-deploying VDB {0}
-validity_errors_in_vdb=VDB has validaity errors; failed to deploy - {0}
+validity_errors_in_vdb=VDB has validity errors; failed to deploy - {0}
 vdb_save_failed=Failed to save metadata for VDB {0} 
 vdb_delete_failed=Failed to delete the cached metadata files due to:
 vdb_deployed=VDB "{0}" deployed in {1} state.



More information about the teiid-commits mailing list