[teiid-commits] teiid SVN: r4504 - in trunk: build/kits/jboss-as7/modules/org/jboss/teiid/translator/object/main and 13 other directories.

teiid-commits at lists.jboss.org teiid-commits at lists.jboss.org
Tue Oct 2 12:38:14 EDT 2012


Author: shawkins
Date: 2012-10-02 12:38:13 -0400 (Tue, 02 Oct 2012)
New Revision: 4504

Removed:
   trunk/connectors/translator-jpa/src/main/resources/META-INF/MANIFEST.MF
   trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/util/
   trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/BaseObjectTest.java
   trunk/connectors/translator-object/src/test/resources/BasicSearchTest/
Modified:
   trunk/build/assembly/embedded-dist.xml
   trunk/build/kits/jboss-as7/modules/org/jboss/teiid/translator/object/main/module.xml
   trunk/connectors/translator-jpa/pom.xml
   trunk/connectors/translator-object/pom.xml
   trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/ObjectExecution.java
   trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/infinispan/InfinispanBaseExecutionFactory.java
   trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/infinispan/InfinispanConnectionImpl.java
   trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/infinispan/search/LuceneSearch.java
   trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/infinispan/search/SearchByKey.java
   trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/mapcache/MapCacheConnection.java
   trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/mapcache/MapCacheExecutionFactory.java
   trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/search/BasicKeySearchCriteria.java
   trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/search/SearchCriterion.java
   trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/BasicSearchTest.java
   trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/TestObjectExecution.java
   trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/infinispan/TestInfinispanConfigFileKeySearch.java
   trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/infinispan/TestInfinispanJndiILuceneSearch.java
   trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/infinispan/TestInfinispanJndiKeySearch.java
   trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/infinispan/TestInfinispanRemoteJndiKeySearch.java
   trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/mapcache/TestMapCacheKeySearch.java
   trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/search/TestBasicKeySearchCriteria.java
Log:
TEIID-2210 refinements to the object translator.  some projection is necessary.  also adding to embedded

Modified: trunk/build/assembly/embedded-dist.xml
===================================================================
--- trunk/build/assembly/embedded-dist.xml	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/build/assembly/embedded-dist.xml	2012-10-02 16:38:13 UTC (rev 4504)
@@ -89,6 +89,7 @@
             <include>org.jboss.teiid.connectors:translator-olap</include>
             <include>org.jboss.teiid.connectors:translator-hive</include>
             <include>org.jboss.teiid.connectors:translator-jpa</include>
+            <include>org.jboss.teiid.connectors:translator-object</include>
         </includes>
 
         <binaries>        

Modified: trunk/build/kits/jboss-as7/modules/org/jboss/teiid/translator/object/main/module.xml
===================================================================
--- trunk/build/kits/jboss-as7/modules/org/jboss/teiid/translator/object/main/module.xml	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/build/kits/jboss-as7/modules/org/jboss/teiid/translator/object/main/module.xml	2012-10-02 16:38:13 UTC (rev 4504)
@@ -10,6 +10,7 @@
         <module name="javax.resource.api"/>
         <module name="org.jboss.teiid.common-core" />
         <module name="org.jboss.teiid.api" />
+        <module name="org.jboss.teiid" />
         <module name="javax.persistence.api"/>
         <module name="org.hibernate"/>
         <module name="org.infinispan"/>

Modified: trunk/connectors/translator-jpa/pom.xml
===================================================================
--- trunk/connectors/translator-jpa/pom.xml	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-jpa/pom.xml	2012-10-02 16:38:13 UTC (rev 4504)
@@ -52,18 +52,6 @@
     </dependencies>
 
     <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-jar-plugin</artifactId>
-            <configuration>
-              <archive>
-                <manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
-              </archive>
-            </configuration>
-          </plugin>
-        </plugins>
-
         <outputDirectory>target/classes</outputDirectory>
         <resources>
             <resource>

Deleted: trunk/connectors/translator-jpa/src/main/resources/META-INF/MANIFEST.MF
===================================================================
--- trunk/connectors/translator-jpa/src/main/resources/META-INF/MANIFEST.MF	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-jpa/src/main/resources/META-INF/MANIFEST.MF	2012-10-02 16:38:13 UTC (rev 4504)
@@ -1 +0,0 @@
-Dependencies: org.hibernate,org.jboss.teiid.translator.jdbc

Modified: trunk/connectors/translator-object/pom.xml
===================================================================
--- trunk/connectors/translator-object/pom.xml	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/pom.xml	2012-10-02 16:38:13 UTC (rev 4504)
@@ -27,22 +27,28 @@
             <artifactId>teiid-common-core</artifactId>
             <scope>provided</scope>
         </dependency>
+        <!-- TODO: could put teiidscript in api -->
+        <dependency>
+            <groupId>org.jboss.teiid</groupId>
+            <artifactId>teiid-engine</artifactId>
+            <scope>provided</scope>
+        </dependency>
 		<dependency>
 			<groupId>org.jboss.teiid</groupId>
 			<artifactId>teiid-client</artifactId>
 			<type>test-jar</type>
-			<scope>provided</scope>
+			<scope>test</scope>
 		</dependency> 
 		<dependency>
 			<groupId>org.jboss.teiid</groupId>
 			<artifactId>teiid-metadata</artifactId>
-			<scope>provided</scope>
+			<scope>test</scope>
 		</dependency>		 
 		<dependency>
 			<groupId>org.jboss.teiid</groupId>
 			<artifactId>teiid-metadata</artifactId>
 			<type>test-jar</type>
-			<scope>provided</scope>
+			<scope>test</scope>
 		</dependency>		       
         <dependency>
           <groupId>javax.resource</groupId>

Modified: trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/ObjectExecution.java
===================================================================
--- trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/ObjectExecution.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/ObjectExecution.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -27,10 +27,19 @@
 import java.util.Iterator;
 import java.util.List;
 
+import javax.script.CompiledScript;
+import javax.script.ScriptContext;
+import javax.script.ScriptException;
+import javax.script.SimpleScriptContext;
+
+import org.teiid.language.ColumnReference;
+import org.teiid.language.DerivedColumn;
 import org.teiid.language.Select;
 import org.teiid.logging.LogConstants;
 import org.teiid.logging.LogManager;
+import org.teiid.metadata.Column;
 import org.teiid.metadata.RuntimeMetadata;
+import org.teiid.query.eval.TeiidScriptEngine;
 import org.teiid.translator.DataNotAvailableException;
 import org.teiid.translator.ResultSetExecution;
 import org.teiid.translator.TranslatorException;
@@ -40,15 +49,32 @@
  */
 public class ObjectExecution implements ResultSetExecution {
 
+	private static final String OBJECT_NAME = "o"; //$NON-NLS-1$
 	private Select query;
 	private ObjectConnection connection;
-
+	private ArrayList<CompiledScript> projects;
+	private ScriptContext sc = new SimpleScriptContext();
+	private static TeiidScriptEngine scriptEngine = new TeiidScriptEngine();
 	private Iterator<Object> resultsIt = null;
 
 	public ObjectExecution(Select query, RuntimeMetadata metadata,
-			ObjectExecutionFactory factory, ObjectConnection connection) {
+			ObjectExecutionFactory factory, ObjectConnection connection) throws TranslatorException {
 		this.query = query;
 		this.connection = connection;
+		projects = new ArrayList<CompiledScript>(query.getDerivedColumns().size());
+		for (DerivedColumn dc : query.getDerivedColumns()) {
+			Column c = ((ColumnReference) dc.getExpression()).getMetadataObject();
+			String name = getNameInSourceFromColumn(c);
+			if (name.equalsIgnoreCase("this")) { //$NON-NLS-1$
+				projects.add(null);
+			} else {
+				try {
+					projects.add(scriptEngine.compile(OBJECT_NAME + "." + name)); //$NON-NLS-1$
+				} catch (ScriptException e) {
+					throw new TranslatorException(e);
+				}
+			}
+		}
 	}
 
 	@Override
@@ -90,8 +116,20 @@
 			DataNotAvailableException {
 		// create and return one row at a time for your resultset.
 		if (resultsIt.hasNext()) {
-			List<Object> r = new ArrayList<Object>(1);
-			r.add(resultsIt.next());
+			List<Object> r = new ArrayList<Object>(projects.size());
+			Object o = resultsIt.next();
+			sc.setAttribute(OBJECT_NAME, o, ScriptContext.ENGINE_SCOPE);
+			for (CompiledScript cs : this.projects) {
+				if (cs == null) {
+					r.add(o);
+					continue;
+				}
+				try {
+					r.add(cs.eval(sc));
+				} catch (ScriptException e) {
+					throw new TranslatorException(e);
+				}
+			}
 			return r;
 		}
 		return null;
@@ -107,5 +145,13 @@
 	@Override
 	public void cancel() throws TranslatorException {
 	}
+	
+	public static String getNameInSourceFromColumn(Column c) {
+		String name = c.getNameInSource();
+		if (name == null || name.trim().isEmpty()) {
+			return c.getName();
+		}
+		return name;
+	}
 
 }

Modified: trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/infinispan/InfinispanBaseExecutionFactory.java
===================================================================
--- trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/infinispan/InfinispanBaseExecutionFactory.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/infinispan/InfinispanBaseExecutionFactory.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -146,8 +146,8 @@
 		this.configurationFileName = configurationFileName;
 	}
 	
-	public BasicCache<String, Object> getCache() throws TranslatorException {
-		BasicCache<String, Object> cache = null;
+	public BasicCache<Object, Object> getCache() throws TranslatorException {
+		BasicCache<Object, Object> cache = null;
 		BasicCacheContainer container = getCacheContainer();
 		if (getCacheName() != null) {
 			cache = container.getCache(getCacheName());
@@ -188,4 +188,9 @@
 	public boolean supportsOrCriteria() {
 		return isFullTextSearchingSupported();
 	}
+	
+	@Override
+	public boolean supportsCompareCriteriaOrdered() {
+		return isFullTextSearchingSupported();
+	}
 }

Modified: trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/infinispan/InfinispanConnectionImpl.java
===================================================================
--- trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/infinispan/InfinispanConnectionImpl.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/infinispan/InfinispanConnectionImpl.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -95,11 +95,9 @@
 	    return SearchByKey.performSearch(command, this);	
 	}
 	
-	public BasicCache<String, Object> getCache()
+	public BasicCache<Object, Object> getCache()
 			throws TranslatorException {
 		return factory.getCache();
-
 	}
 	
-	
 }

Modified: trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/infinispan/search/LuceneSearch.java
===================================================================
--- trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/infinispan/search/LuceneSearch.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/infinispan/search/LuceneSearch.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -36,6 +36,7 @@
 import org.teiid.logging.LogManager;
 import org.teiid.metadata.Column;
 import org.teiid.translator.TranslatorException;
+import org.teiid.translator.object.ObjectExecution;
 import org.teiid.translator.object.ObjectPlugin;
 import org.teiid.translator.object.infinispan.InfinispanConnectionImpl;
 
@@ -328,7 +329,7 @@
 	private static Query createEqualsQuery(Column column, Object value, boolean and,
 			boolean not, BooleanJunction<BooleanJunction> junction, QueryBuilder queryBuilder) {
 		Query queryKey = queryBuilder.keyword()
-				.onField(getNameInSourceFromColumn(column))
+				.onField(ObjectExecution.getNameInSourceFromColumn(column))
 				// .matching(value.toString() + "*")
 				.matching(value.toString()).createQuery();
 
@@ -346,7 +347,7 @@
 			BooleanJunction<BooleanJunction> junction, QueryBuilder queryBuilder) {
 
 		Query queryKey = queryBuilder.range()
-				.onField(getNameInSourceFromColumn(column))
+				.onField(ObjectExecution.getNameInSourceFromColumn(column))
 				.above(value.toString()).excludeLimit().createQuery();
 		junction.must(queryKey);
 		return queryKey;
@@ -356,7 +357,7 @@
 			BooleanJunction<BooleanJunction> junction, QueryBuilder queryBuilder) {
 
 		Query queryKey = queryBuilder.range()
-				.onField(getNameInSourceFromColumn(column))
+				.onField(ObjectExecution.getNameInSourceFromColumn(column))
 				.below(value.toString()).excludeLimit().createQuery();
 		junction.must(queryKey);
 		return queryKey;
@@ -365,18 +366,10 @@
 	private static Query createLikeQuery(Column column, String value,
 			BooleanJunction<BooleanJunction> junction, QueryBuilder queryBuilder) {
 		Query queryKey = queryBuilder.phrase()
-				.onField(getNameInSourceFromColumn(column)).sentence(value)
+				.onField(ObjectExecution.getNameInSourceFromColumn(column)).sentence(value)
 				.createQuery();
 		junction.should(queryKey);
 		return queryKey;
 	}
 
-	private static String getNameInSourceFromColumn(Column c) {
-		String name = c.getNameInSource();
-		if (name == null || name.trim().equals("")) { //$NON-NLS-1$
-			return c.getName();
-		}
-		return name;
-	}
-
 }

Modified: trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/infinispan/search/SearchByKey.java
===================================================================
--- trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/infinispan/search/SearchByKey.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/infinispan/search/SearchByKey.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -34,6 +34,7 @@
 import org.infinispan.client.hotrod.RemoteCache;
 import org.teiid.language.Select;
 import org.teiid.translator.TranslatorException;
+import org.teiid.translator.object.ObjectPlugin;
 import org.teiid.translator.object.infinispan.InfinispanConnectionImpl;
 import org.teiid.translator.object.search.BasicKeySearchCriteria;
 import org.teiid.translator.object.search.SearchCriterion;
@@ -47,7 +48,7 @@
 	public static List<Object> performSearch(Select command, InfinispanConnectionImpl connection)
 			throws TranslatorException {
 
-		BasicCache<String, Object> cache = connection.getCache();
+		BasicCache<Object, Object> cache = connection.getCache();
 		BasicKeySearchCriteria bksc = BasicKeySearchCriteria.getInstance(
 				connection.getFactory(), command);
 
@@ -55,18 +56,18 @@
 
 	}
 
-	private static List<Object> get(SearchCriterion criterion,
-			BasicCache<String, Object> cache, Class<?> rootClass)
+	public static List<Object> get(SearchCriterion criterion,
+			Map<?, ?> cache, Class<?> rootClass)
 			throws TranslatorException {
 		List<Object> results = null;
 
 		if (criterion.getOperator() == SearchCriterion.Operator.ALL) {
-			Map<String, Object> map = cache;
+			Map<?, ?> map = cache;
 			if (cache instanceof RemoteCache<?, ?>) {
 				RemoteCache<?, ?> rc = (RemoteCache<?, ?>) cache;
-		  		map = (Map<String, Object>) rc.getBulk();
+		  		map = (Map<Object, Object>) rc.getBulk();
 			}
-			Set<String> keys = map.keySet();
+			Set<?> keys = map.keySet();
 			results = new ArrayList<Object>();
 			for (Iterator<?> it = keys.iterator(); it.hasNext();) {
 				Object v = cache.get(it.next());
@@ -87,8 +88,7 @@
 
 			Object value = criterion.getValue();
 
-			Object v = cache.get(value instanceof String ? value : value
-					.toString());
+			Object v = cache.get(value);
 			if (v != null) {
 				addValue(v, results, rootClass);
 			}
@@ -98,8 +98,7 @@
 			for (Iterator<Object> it = parms.iterator(); it.hasNext();) {
 				Object arg = it.next();
 				// the key is only supported in string format
-				Object v = cache.get(arg instanceof String ? arg : arg
-						.toString());
+				Object v = cache.get(arg);
 				if (v != null) {
 					addValue(v, results, rootClass);
 				}
@@ -111,29 +110,40 @@
 
 	}
 
-	private static void addValue(Object value, List<Object> results, Class<?> rootNodeType) {
-		if (value != null && value.getClass().equals(rootNodeType)) {
+	private static void addValue(Object value, List<Object> results, Class<?> rootNodeType) throws TranslatorException {
+		if (value == null) {
+			return;
+		}
+		if (!value.getClass().equals(rootNodeType)) {
+			// the object obtained from the cache has to be of the same root
+			// class type, otherwise, the modeling
+			// structure won't correspond correctly
+			String msg = ObjectPlugin.Util.getString(
+					"MapCacheConnection.unexpectedObjectTypeInCache",
+					new Object[] { value.getClass().getName(),
+							rootNodeType.getName() });
 
-			if (value.getClass().isArray()) {
-				List<Object> listRows = Arrays.asList((Object[]) value);
-				results.addAll(listRows);
-				return;
-			}
+			throw new TranslatorException(msg);			
+		}
+		
+		if (value.getClass().isArray()) {
+			List<Object> listRows = Arrays.asList((Object[]) value);
+			results.addAll(listRows);
+			return;
+		}
 
-			if (value instanceof Collection<?>) {
-				results.addAll((Collection<?>) value);
-				return;
-			}
+		if (value instanceof Collection<?>) {
+			results.addAll((Collection<?>) value);
+			return;
+		}
 
-			if (value instanceof Map<?, ?>) {
-				Map<?, ?> mapRows = (Map<?, ?>) value;
-				results.addAll(mapRows.values());
-				return;
-			}
-
-			results.add(value);
+		if (value instanceof Map<?, ?>) {
+			Map<?, ?> mapRows = (Map<?, ?>) value;
+			results.addAll(mapRows.values());
+			return;
 		}
 
+		results.add(value);
 	}
 
 }

Modified: trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/mapcache/MapCacheConnection.java
===================================================================
--- trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/mapcache/MapCacheConnection.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/mapcache/MapCacheConnection.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -21,12 +21,7 @@
  */
 package org.teiid.translator.object.mapcache;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 
 import javax.resource.ResourceException;
 
@@ -34,9 +29,8 @@
 import org.teiid.resource.spi.BasicConnection;
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.object.ObjectConnection;
-import org.teiid.translator.object.ObjectPlugin;
+import org.teiid.translator.object.infinispan.search.SearchByKey;
 import org.teiid.translator.object.search.BasicKeySearchCriteria;
-import org.teiid.translator.object.search.SearchCriterion;
 
 /**
  * The MapCacheConnection provides simple key searches of the cache.
@@ -74,94 +68,8 @@
 	}
 
 	public List<Object> performSearch(Select command) throws TranslatorException {
-
 		visitor = BasicKeySearchCriteria.getInstance(factory,command);
-
-		return get(visitor.getCriterion(), factory.getCache(), factory.getRootClass());
+		return SearchByKey.get(visitor.getCriterion(), factory.getCache(), factory.getRootClass());
 	}
 
-	private List<Object> get(SearchCriterion criterion, Map<?, ?> cache,
-			Class<?> rootClass) throws TranslatorException {
-		List<Object> results = null;
-		if (criterion.getOperator() == SearchCriterion.Operator.ALL) {
-			results = new ArrayList<Object>();
-			for (Iterator<?> it = cache.keySet().iterator(); it.hasNext();) {
-				Object v = cache.get(it.next());
-				addValue(v, results, rootClass);
-
-			}
-
-			return results;
-		}
-
-		if (criterion.getCriterion() != null) {
-			results = get(criterion.getCriterion(), cache, rootClass);
-		}
-
-		if (results == null) {
-			results = new ArrayList<Object>();
-		}
-
-		if (criterion.getOperator().equals(SearchCriterion.Operator.EQUALS)) {
-
-			Object v = cache.get(criterion.getValue());
-			if (v != null) {
-				addValue(v, results, rootClass);
-			}
-		} else if (criterion.getOperator().equals(SearchCriterion.Operator.IN)) {
-
-			List<?> parms = (List<?>) criterion.getValue();
-			for (Iterator<?> it = parms.iterator(); it.hasNext();) {
-				Object arg = it.next();
-				Object v = cache.get(arg);
-				if (v != null) {
-					addValue(v, results, rootClass);
-				}
-			}
-
-		}
-
-		return results;
-
-	}
-
-	private void addValue(Object value, List<Object> results, Class<?> rootClass)
-			throws TranslatorException {
-		// can only add objects of the same root class in the cache
-		if (value != null) {
-			if (value.getClass().equals(rootClass)) {
-
-				if (value.getClass().isArray()) {
-					List<Object> listRows = Arrays.asList((Object[]) value);
-					results.addAll(listRows);
-					return;
-				}
-
-				if (value instanceof Collection) {
-					results.addAll((Collection<?>) value);
-					return;
-				}
-
-				if (value instanceof Map) {
-					Map<?, ?> mapRows = (Map<?, ?>) value;
-					results.addAll(mapRows.values());
-					return;
-				}
-
-				results.add(value);
-			} else {
-				// the object obtained from the cache has to be of the same root
-				// class type, otherwise, the modeling
-				// structure won't correspond correctly
-				String msg = ObjectPlugin.Util.getString(
-						"MapCacheConnection.unexpectedObjectTypeInCache",
-						new Object[] { value.getClass().getName(),
-								rootClass.getName() });
-
-				throw new TranslatorException(msg);
-			}
-		}
-
-	}
-
 }

Modified: trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/mapcache/MapCacheExecutionFactory.java
===================================================================
--- trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/mapcache/MapCacheExecutionFactory.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/mapcache/MapCacheExecutionFactory.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -66,28 +66,30 @@
 
 	}
 
-    protected synchronized Map<?,?> getCache() throws TranslatorException {
-    	if (this.cache != null) return this.cache;
-    	
-    	Object object = findCacheUsingJNDIName();
-    	
-		if (object instanceof Map<?,?>) {
-		    
-			cache = (Map<?,?>)object;
-			
-            LogManager.logInfo(LogConstants.CTX_CONNECTOR, "=== Using CacheManager (obtained from JNDI ==="); //$NON-NLS-1$
+    protected Map<?,?> getCache() throws TranslatorException {
+    	if (this.cache == null) {
+    		synchronized (this) {
+    			if (this.cache != null) {
+    				return cache;
+    			}
+    	    	Object object = findCacheUsingJNDIName();
+    	    	
+    			if (object instanceof Map<?,?>) {
+    			    
+    				cache = (Map<?,?>)object;
+    				
+    	            LogManager.logInfo(LogConstants.CTX_CONNECTOR, "=== Using CacheManager (obtained from JNDI ==="); //$NON-NLS-1$
 
-		} else {
-			String msg = ObjectPlugin.Util.getString(
-					"MapCacheExecutionFactory.unexpectedCacheType", //$NON-NLS-1$
-					new Object[] { (object == null ? "nullObject" : object.getClass().getName()), "Map" }); //$NON-NLS-1$ //$NON-NLS-2$ 
-			throw new TranslatorException(msg); 
-		}
-    	
-    	return this.cache;
+    			} else {
+    				String msg = ObjectPlugin.Util.getString(
+    						"MapCacheExecutionFactory.unexpectedCacheType", //$NON-NLS-1$
+    						new Object[] { (object == null ? "nullObject" : object.getClass().getName()), "Map" }); //$NON-NLS-1$ //$NON-NLS-2$ 
+    				throw new TranslatorException(msg); 
+    			}
+			}
+    	}
+		return this.cache;
     }
-	
- 
     
 	@Override
 	public ObjectConnection getConnection(ConnectionFactory factory,

Modified: trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/search/BasicKeySearchCriteria.java
===================================================================
--- trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/search/BasicKeySearchCriteria.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/search/BasicKeySearchCriteria.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -133,15 +133,8 @@
 	}
 
 	private void addSearchCriterion(SearchCriterion searchCriteria) {
-		// only searching on primary key is part of the criteria sent for cache
-		// lookup
-		// all other criteria will be used to filter the rows
-		assert (searchCriteria.getTableName() != null);
-
-		assert (searchCriteria.getField() != null);
-
 		if (this.criterion != null) {
-			throw new AssertionError("There should not be more than one predicate against the primary key"); //$NON-NLS-1$
+			throw new TeiidRuntimeException("There should not be more than one predicate against the primary key"); //$NON-NLS-1$
 		}
 
 		this.criterion = searchCriteria;

Modified: trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/search/SearchCriterion.java
===================================================================
--- trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/search/SearchCriterion.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/main/java/org/teiid/translator/object/search/SearchCriterion.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -72,10 +72,6 @@
 		throw new AssertionError();
 	}
 
-	public String getField() {
-		return getNameInSourceFromColumn(this.column);
-	}
-
 	public Object getValue() {
 		return value;
 	}
@@ -123,12 +119,4 @@
 		return this.isAnd;
 	}
 
-	private String getNameInSourceFromColumn(Column c) {
-		String name = c.getNameInSource();
-		if (name == null || name.equals("")) { //$NON-NLS-1$
-			return c.getName();
-		}
-		return name;
-	}
-
 }

Deleted: trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/BaseObjectTest.java
===================================================================
--- trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/BaseObjectTest.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/BaseObjectTest.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -1,217 +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.translator.object;
-
-import static org.junit.Assert.assertEquals;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-import org.teiid.core.util.UnitTestUtil;
-import org.teiid.jdbc.util.ResultSetUtil;
-
-
-/**
- * Base Testing class that's extended to reuse the reading/writing/comparing expected results
- *
- */
-public abstract class BaseObjectTest  {
-	
-    protected static boolean REPLACE_EXPECTED = false;
-    protected static boolean WRITE_ACTUAL_RESULTS_TO_FILE = false;
-    protected static boolean PRINT_RESULTSETS_TO_CONSOLE = false;
-    
-    private static final int MAX_COL_WIDTH = 65;
-    
-	protected static boolean print = false;    
-	
-    public void compareResultSet(ResultSet... rs) throws IOException, SQLException {
-    	
-    	StackTraceElement ste = new Exception().getStackTrace()[1];
-    	String testName = ste.getMethodName();
-    	String className = this.getClass().getName();
-    		//ste.getClassName();
-    	className = className.substring(className.lastIndexOf('.') + 1);
-    	testName = className + "/" + testName; //$NON-NLS-1$
-        compareResultSet(testName, rs);
-    }
-
-	public void compareResultSet(String testName, ResultSet... rs)
-			throws FileNotFoundException, SQLException, IOException {
-		FileOutputStream actualOut = null;
-        BufferedReader expectedIn = null;
-        PrintStream stream = null;
-        try {
-	        if (REPLACE_EXPECTED) {
-	            File actual = new File(UnitTestUtil.getTestDataPath() + "/" +testName+".expected"); //$NON-NLS-1$ //$NON-NLS-2$
-	            actualOut = new FileOutputStream(actual);
-	        } else {
-	            if (WRITE_ACTUAL_RESULTS_TO_FILE) {
-	                File actual = new File(UnitTestUtil.getTestDataPath() + "/" +testName+".actual"); //$NON-NLS-1$ //$NON-NLS-2$
-	                if (!actual.getParentFile().exists()) {
-	                	actual.getParentFile().mkdir();
-	                }
-	                actualOut = new FileOutputStream(actual);
-
-
-	            } else {
-	            	File expected = new File(UnitTestUtil.getTestDataPath() + "/"+testName+".expected"); //$NON-NLS-1$ //$NON-NLS-2$
-	            	expectedIn = new BufferedReader(new FileReader(expected));
-	            }
-
-	            
-	        }
-	        PrintStream defaultStream = null;
-	        if (PRINT_RESULTSETS_TO_CONSOLE) {
-	            defaultStream = new PrintStream(System.out) {
-	                // SYS.out should be protected from being closed.
-	                public void close() {}
-	            };
-	        }
-	        stream = ResultSetUtil.getPrintStream(actualOut, expectedIn, defaultStream);
-	        for (int i = 0; i < rs.length; i++) {
-	        	ResultSetUtil.printResultSet(rs[i], MAX_COL_WIDTH, true, stream);
-	        }
-	        assertEquals("Actual data did not match expected", //$NON-NLS-1$
-                    Collections.EMPTY_LIST,
-                    ResultSetUtil.getUnequalLines(stream));
-        } finally {
-	        if (stream != null) {
-	        	stream.close();
-	        }
-	        if (actualOut != null) {
-	            actualOut.close();
-	        }
-	        if (expectedIn != null) {
-	            expectedIn.close();
-	        }
-        }
-	}
-	
-    public void compareResultSet(List<Object> rs) throws IOException, SQLException {
-    	StackTraceElement ste = new Exception().getStackTrace()[1];
-    	String testName = ste.getMethodName();
-    	String className = ste.getClassName();
-    	className = className.substring(className.lastIndexOf('.') + 1);
-    	testName = className + "/" + testName; //$NON-NLS-1$
-        compareResultSet(testName, rs);
-    }
-
-	
-	public void compareResultSet(String testName, List<Object> rs)
-			throws FileNotFoundException, SQLException, IOException {
-		FileOutputStream actualOut = null;
-		BufferedReader expectedIn = null;
-		PrintStream stream = null;
-		try {
-			if (REPLACE_EXPECTED) {
-				File actual = new File(UnitTestUtil.getTestDataPath()
-						+ "/" + testName + ".expected"); //$NON-NLS-1$ //$NON-NLS-2$
-				actualOut = new FileOutputStream(actual);
-			} else {
-				if (WRITE_ACTUAL_RESULTS_TO_FILE) {
-					File actual = new File(UnitTestUtil.getTestDataPath()
-							+ "/" + testName + ".actual"); //$NON-NLS-1$ //$NON-NLS-2$
-					if (!actual.getParentFile().exists()) {
-						actual.getParentFile().mkdir();
-					}
-					actualOut = new FileOutputStream(actual);
-					
-//					ObjectOutput oo = null;
-//					oo = new ObjectOutputStream(actualOut);
-					
-						for (int i = 0; i < rs.size(); i++) {
-							List<Object> r = (List) rs.get(i);
-							actualOut.write( new String("ROW_" + i).getBytes());
-							for (Iterator it=r.iterator(); it.hasNext();) {
-								Object o = it.next();
-								actualOut.write( o.toString().getBytes());
-								actualOut.write( new String("\t").getBytes());
-							}
-								//ExternalizeUtil.writeList(oo, rs[i]);
-						}
-										
-					return;
-					
-
-				} else {
-					File expected = new File(UnitTestUtil.getTestDataPath()
-							+ "/" + testName + ".expected"); //$NON-NLS-1$ //$NON-NLS-2$
-					expectedIn = new BufferedReader(new FileReader(expected));
-				}
-
-			}
-			PrintStream defaultStream = null;
-			if (PRINT_RESULTSETS_TO_CONSOLE) {
-				defaultStream = new PrintStream(System.out) {
-					// SYS.out should be protected from being closed.
-					public void close() {
-					}
-				};
-			}
-			stream = ResultSetUtil.getPrintStream(actualOut, expectedIn,
-					defaultStream);
-//	        for (int i = 0; i < rs.length; i++) {
-//	        	ResultSetUtil.printResultSet(rs[i], MAX_COL_WIDTH, true, stream);
-//	        }
-			assertEquals(
-					"Actual data did not match expected", //$NON-NLS-1$
-					Collections.EMPTY_LIST,
-					ResultSetUtil.getUnequalLines(stream));
-		} finally {
-			if (stream != null) {
-				stream.close();
-			}
-			if (actualOut != null) {
-				actualOut.close();
-			}
-			if (expectedIn != null) {
-				expectedIn.close();
-			}
-		}
-	}
-	
-	protected void printRow(int rownum, List<?> row) {
-		if (!print) return;
-		if (row == null) {
-			System.out.println("Row " + rownum + " is null");
-			return;
-		}
-		int i = 0;
-		for(Object o:row) {
-			System.out.println("Row " + rownum + " Col " + i + " - " + o.toString());
-			++i;
-		}
-		
-	}
-	
-}

Modified: trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/BasicSearchTest.java
===================================================================
--- trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/BasicSearchTest.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/BasicSearchTest.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -21,6 +21,9 @@
  */
 package org.teiid.translator.object;
 
+import static org.junit.Assert.*;
+
+import java.util.ArrayList;
 import java.util.List;
 
 import org.junit.Test;
@@ -33,71 +36,59 @@
  * @author vhalbert
  *
  */
-
- at SuppressWarnings("nls")
-public abstract class BasicSearchTest extends BaseObjectTest {
+public abstract class BasicSearchTest {
 	
 	@Test public void testQueryGetAllTrades() throws Exception {		
 		Select command = (Select)VDBUtility.TRANSLATION_UTILITY.parseCommand("select * From Trade_Object.Trade as T"); //$NON-NLS-1$		
 		
-		List<Object> rows = performTest(command, TradesCacheSource.NUMTRADES);
+		performTest(command, TradesCacheSource.NUMTRADES);
 		
-		compareResultSet(rows);
-		
 	}		
 	
-	@Test public void testQueryGetAllTradesAndLegs() throws Exception {		
-		Select command = (Select)VDBUtility.TRANSLATION_UTILITY.parseCommand("select T.TradeId, T.Name as TradeName, L.Name as LegName From Trade_Object.Trade as T, Trade_Object.Leg as L Where T.TradeId = L.TradeId"); //$NON-NLS-1$		
+	@Test public void testTradeProjection() throws Exception {		
+		Select command = (Select)VDBUtility.TRANSLATION_UTILITY.parseCommand("select T.TradeId From Trade_Object.Trade as T"); //$NON-NLS-1$		
 		
-		List<Object> rows = performTest(command, TradesCacheSource.NUMTRADES);
+		performTest(command, TradesCacheSource.NUMTRADES);
 		
-		compareResultSet(rows);
-		
 	}		
 	
-	@Test public void testQueryGetAllTradesLegsAndTransactions() throws Exception {		
-
-		Select command = (Select)VDBUtility.TRANSLATION_UTILITY.parseCommand("select T.TradeId, T.Name as TradeName, L.Name as LegName, " + 
-				" N.LineItem " +
-				" From Trade_Object.Trade as T, Trade_Object.Leg as L, Trade_Object.Transaction as N " + 
-				" Where T.TradeId = L.TradeId and L.LegId = N.LegId "); //$NON-NLS-1$
-		
-		List<Object> rows = performTest(command, TradesCacheSource.NUMTRADES);
-		
-		compareResultSet(rows);
-	
-	}		
-
-	
 	@Test public void testQueryGetOneTrade() throws Exception {	
 		Select command = (Select)VDBUtility.TRANSLATION_UTILITY.parseCommand("select T.TradeId, T.Name as TradeName From Trade_Object.Trade as T WHERE T.TradeId = '1'"); //$NON-NLS-1$
 					
-		List<Object> rows = performTest(command, 1);
+		performTest(command, 1);
 		
-		compareResultSet(rows);
+	}	
+	
+	@Test public void testQueryInCriteria() throws Exception {	
+		Select command = (Select)VDBUtility.TRANSLATION_UTILITY.parseCommand("select T.TradeId, T.Name as TradeName From Trade_Object.Trade as T WHERE T.TradeId in ('1', '3')"); //$NON-NLS-1$
+					
+		performTest(command, 2);
 		
 	}	
 	
-	@Test public void testQueryGetOneTradeAndLegs() throws Exception {		
-		Select command = (Select)VDBUtility.TRANSLATION_UTILITY.parseCommand("select T.TradeId, T.Name as TradeName, L.Name as LegName From Trade_Object.Trade as T, Trade_Object.Leg as L Where T.TradeId = L.TradeId and T.TradeId = '1'"); //$NON-NLS-1$		
+	protected List<Object> performTest(Select command, int rowcnt) throws Exception {
+
+		ObjectExecution exec = createExecution(command);
 		
-		List<Object> rows = performTest(command, 1);
+		exec.execute();
 		
-		compareResultSet(rows);
+		List<Object> rows = new ArrayList<Object>();
 		
-	}	
+		int cnt = 0;
+		List<Object> row = exec.next();
 	
-	
-	@Test public void testQueryInCriteria() throws Exception {	
-		Select command = (Select)VDBUtility.TRANSLATION_UTILITY.parseCommand("select T.TradeId, T.Name as TradeName From Trade_Object.Trade as T WHERE T.TradeId in ('1', '3')"); //$NON-NLS-1$
-					
-		List<Object> rows = performTest(command, 2);
+		while (row != null) {
+			rows.add(row);
+			++cnt;
+			row = exec.next();
+		}
 		
-		compareResultSet(rows);
+		assertEquals("Did not get expected number of rows", rowcnt, cnt); //$NON-NLS-1$
 		
-	}	
-	
-	protected abstract List<Object> performTest(Select command, int rowcnt) throws Exception;
+		exec.close();
+		return rows;
+	}
 
+	protected abstract ObjectExecution createExecution(Select command) throws Exception;
   
-}
+}
\ No newline at end of file

Modified: trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/TestObjectExecution.java
===================================================================
--- trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/TestObjectExecution.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/TestObjectExecution.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -21,9 +21,9 @@
  */
 package org.teiid.translator.object;
 
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.when;
+import static org.junit.Assert.*;
+import static org.mockito.Matchers.*;
+import static org.mockito.Mockito.*;
 
 import java.util.List;
 
@@ -64,23 +64,9 @@
 	
 
 	@Test public void testQueryRootObject() throws Exception {
-		execute( createExecution("select * From Trade_Object.Trade"), 3, 1);
+		execute( createExecution("select * From Trade_Object.Trade"), 3, 4);
 	}
 	
-	@Test public void testQueryIncludeLegs() throws Exception {		
-		execute( createExecution("select T.TradeId, T.Name as TradeName, L.Name as LegName From Trade_Object.Trade as T, Trade_Object.Leg as L Where T.TradeId = L.TradeId"), 
-				3, 1);
-
-	}	
-	
-	@Test public void testQueryGetAllTransactions() throws Exception {
-		execute( createExecution("select T.TradeId, T.Name as TradeName, L.Name as LegName, " + 
-				" N.LineItem " +
-				" From Trade_Object.Trade as T, Trade_Object.Leg as L, Trade_Object.Transaction N " + 
-				" Where T.TradeId = L.TradeId and L.LegId = N.LegId"),3, 1);
-	}		
-	
-
 	@Test	public void testAtomicSelects() throws Exception {
 
 		Thread[] threads = new Thread[20];

Modified: trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/infinispan/TestInfinispanConfigFileKeySearch.java
===================================================================
--- trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/infinispan/TestInfinispanConfigFileKeySearch.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/infinispan/TestInfinispanConfigFileKeySearch.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -21,18 +21,14 @@
  */
 package org.teiid.translator.object.infinispan;
 
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.*;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.junit.BeforeClass;
 import org.teiid.language.Select;
 import org.teiid.translator.ExecutionContext;
+import org.teiid.translator.TranslatorException;
 import org.teiid.translator.object.BasicSearchTest;
 import org.teiid.translator.object.ObjectExecution;
-import org.teiid.translator.object.infinispan.search.SearchByKey;
 import org.teiid.translator.object.util.TradesCacheSource;
 import org.teiid.translator.object.util.VDBUtility;
 
@@ -63,31 +59,10 @@
 
 
 	}
-
 	
 	@Override
-	protected List<Object> performTest(Select command, int rowcnt) throws Exception {
-
-		ObjectExecution exec = (ObjectExecution) factory.createExecution(command, context, VDBUtility.RUNTIME_METADATA, null);
-		
-		exec.execute();
-		
-		List<Object> rows = new ArrayList<Object>();
-		
-		int cnt = 0;
-		List<Object> row = exec.next();
-	
-		while (row != null) {
-			rows.add(row);
-			++cnt;
-			row = exec.next();
-		}
-		
-		assertEquals("Did not get expected number of rows", rowcnt, cnt); //$NON-NLS-1$
-		
-		exec.close();
-		return rows;
+	protected ObjectExecution createExecution(Select command) throws TranslatorException {
+		return (ObjectExecution) factory.createExecution(command, context, VDBUtility.RUNTIME_METADATA, null);
 	}
-
 	
 }

Modified: trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/infinispan/TestInfinispanJndiILuceneSearch.java
===================================================================
--- trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/infinispan/TestInfinispanJndiILuceneSearch.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/infinispan/TestInfinispanJndiILuceneSearch.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -21,12 +21,8 @@
  */
 package org.teiid.translator.object.infinispan;
 
-import static org.junit.Assert.*;
 import static org.mockito.Mockito.*;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.infinispan.manager.CacheContainer;
 import org.infinispan.manager.DefaultCacheManager;
 import org.junit.Before;
@@ -78,98 +74,55 @@
     }
 
 	@Override
-	protected List<Object> performTest(Select command, int rowcnt) throws Exception {
-		
-		ObjectExecution exec = (ObjectExecution) factory.createExecution(command, context, VDBUtility.RUNTIME_METADATA, null);
-		
-		exec.execute();
-		
-		List<Object> rows = new ArrayList<Object>();
-		
-		int cnt = 0;
-		List<Object> row = exec.next();
-	
-		while (row != null) {
-			rows.add(row);
-			++cnt;
-			row = exec.next();
-		}
-		
-		assertEquals("Did not get expected number of rows", rowcnt, cnt); //$NON-NLS-1$
-		
-		exec.close();
-		return rows;
+	protected ObjectExecution createExecution(Select command) throws TranslatorException {
+		return (ObjectExecution) factory.createExecution(command, context, VDBUtility.RUNTIME_METADATA, null);
 	}
 	
 	@Test public void testQueryLikeCriteria1() throws Exception {	
 		Select command = (Select)VDBUtility.TRANSLATION_UTILITY.parseCommand("select T.TradeId, T.Name From Trade_Object.Trade as T WHERE T.Name like 'TradeName%'"); //$NON-NLS-1$
 					
-		List<Object> rows = performTest(command, 3);
-		
-		compareResultSet(rows);
-		
+		performTest(command, 3);
 	}	
 	
 	@Test public void testQueryLikeCriteria2() throws Exception {	
 		Select command = (Select)VDBUtility.TRANSLATION_UTILITY.parseCommand("select T.TradeId, T.Name From Trade_Object.Trade as T WHERE T.Name like 'TradeName 2%'"); //$NON-NLS-1$
 					
-		List<Object> rows = performTest(command, 1);
-		
-		compareResultSet(rows);
-		
+		performTest(command, 1);
 	}	
 	
 	@Test public void testQueryCompareEQBoolean() throws Exception {	
 		Select command = (Select)VDBUtility.TRANSLATION_UTILITY.parseCommand("select T.TradeId, T.Name, T.Settled From Trade_Object.Trade as T WHERE T.Settled = 'false'"); //$NON-NLS-1$
 					
-		List<Object> rows = performTest(command, 2);
-		
-		compareResultSet(rows);
-		
+		performTest(command, 2);
 	}	
 	
 	@Test public void testQueryCompareNEBoolean() throws Exception {	
 		Select command = (Select)VDBUtility.TRANSLATION_UTILITY.parseCommand("select T.TradeId, T.Name, T.Settled From Trade_Object.Trade as T WHERE T.Settled <> 'false'"); //$NON-NLS-1$
 					
-		List<Object> rows = performTest(command, 1);
-		
-		compareResultSet(rows);
-		
+		performTest(command, 1);
 	}		
 	
 	@Test public void testQueryRangeBetween() throws Exception {	
 		Select command = (Select)VDBUtility.TRANSLATION_UTILITY.parseCommand("select T.TradeId, T.Name as TradeName From Trade_Object.Trade as T WHERE T.TradeId > '1' and T.TradeId < '3'"); //$NON-NLS-1$
 					
-		List<Object> rows = performTest(command, 1);
-		
-		compareResultSet(rows);
-		
+		performTest(command, 1);
 	}
 
 	@Test public void testQueryRangeAbove() throws Exception {	
 		Select command = (Select)VDBUtility.TRANSLATION_UTILITY.parseCommand("select T.TradeId, T.Name as TradeName From Trade_Object.Trade as T WHERE T.TradeId > '1'"); //$NON-NLS-1$
 					
-		List<Object> rows = performTest(command, 2);
-		
-		compareResultSet(rows);
-		
+		performTest(command, 2);
 	}
 	
 	@Test public void testQueryRangeBelow() throws Exception {	
 		Select command = (Select)VDBUtility.TRANSLATION_UTILITY.parseCommand("select T.TradeId, T.Name as TradeName From Trade_Object.Trade as T WHERE T.TradeId < '2'"); //$NON-NLS-1$
 					
-		List<Object> rows = performTest(command, 1);
-		
-		compareResultSet(rows);
-		
+		performTest(command, 1);
 	}	
 	
 	@Test public void testQueryAnd() throws Exception {	
 		Select command = (Select)VDBUtility.TRANSLATION_UTILITY.parseCommand("select T.TradeId, T.Name as TradeName From Trade_Object.Trade as T WHERE T.TradeId > '1' and T.Settled = 'false' "); //$NON-NLS-1$
 					
-		List<Object> rows = performTest(command, 1);
-		
-		compareResultSet(rows);
-		
+		performTest(command, 1);
 	}	
 }

Modified: trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/infinispan/TestInfinispanJndiKeySearch.java
===================================================================
--- trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/infinispan/TestInfinispanJndiKeySearch.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/infinispan/TestInfinispanJndiKeySearch.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -21,12 +21,8 @@
  */
 package org.teiid.translator.object.infinispan;
 
-import static org.junit.Assert.*;
 import static org.mockito.Mockito.*;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.infinispan.manager.CacheContainer;
 import org.infinispan.manager.DefaultCacheManager;
 import org.junit.Before;
@@ -72,33 +68,11 @@
 		factory.setCacheName(TradesCacheSource.TRADES_CACHE_NAME);
 		factory.setRootClassName(TradesCacheSource.TRADE_CLASS_NAME);
 		factory.start();
-	    
-
     }
-
-	@Override
-	protected List<Object> performTest(Select command, int rowcnt) throws Exception {
-
-		ObjectExecution exec = (ObjectExecution) factory.createExecution(command, context, VDBUtility.RUNTIME_METADATA, null);
-		
-		exec.execute();
-		
-		List<Object> rows = new ArrayList<Object>();
-		
-		int cnt = 0;
-		List<Object> row = exec.next();
 	
-		while (row != null) {
-			rows.add(row);
-			++cnt;
-			row = exec.next();
-		}
-		
-		assertEquals("Did not get expected number of rows", rowcnt, cnt); //$NON-NLS-1$
-		
-		exec.close();
-		return rows;
+	@Override
+	protected ObjectExecution createExecution(Select command) throws TranslatorException {
+		return (ObjectExecution) factory.createExecution(command, context, VDBUtility.RUNTIME_METADATA, null);
 	}
 
-	
 }

Modified: trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/infinispan/TestInfinispanRemoteJndiKeySearch.java
===================================================================
--- trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/infinispan/TestInfinispanRemoteJndiKeySearch.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/infinispan/TestInfinispanRemoteJndiKeySearch.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -21,15 +21,10 @@
  */
 package org.teiid.translator.object.infinispan;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import static org.junit.Assert.*;
+import static org.mockito.Matchers.*;
+import static org.mockito.Mockito.*;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import javax.naming.Context;
 
 import org.infinispan.client.hotrod.RemoteCacheManager;
@@ -88,36 +83,18 @@
     public static void closeConnection() throws Exception {
         RemoteInfinispanTestHelper.releaseServer();
     }
-
-	
-	@Override
-	protected List<Object> performTest(Select command, int rowcnt) throws Exception {
+    
+    @Override
+    protected ObjectExecution createExecution(Select command)
+    		throws Exception {
 	    when(jndi.lookup(JNDI_NAME)).thenReturn(container);
 	    
 	    Object t =  RemoteInfinispanTestHelper.getCacheManager().getCache(TradesCacheSource.TRADES_CACHE_NAME).get("1");
 
 	    assertNotNull(t);
 	    
-		ObjectExecution exec = (ObjectExecution) factory.createExecution(command, context, VDBUtility.RUNTIME_METADATA, null);
-		
-		exec.execute();
-		
-		List<Object> rows = new ArrayList<Object>();
-		
-		int cnt = 0;
-		List<Object> row = exec.next();
-	
-		while (row != null) {
-			rows.add(row);
-			++cnt;
-			row = exec.next();
-		}
-		
-		assertEquals("Did not get expected number of rows", rowcnt, cnt); //$NON-NLS-1$
-		
-		exec.close();
-		return rows;
-	}
+		return (ObjectExecution) factory.createExecution(command, context, VDBUtility.RUNTIME_METADATA, null);
+    }
 
 	
 }

Modified: trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/mapcache/TestMapCacheKeySearch.java
===================================================================
--- trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/mapcache/TestMapCacheKeySearch.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/mapcache/TestMapCacheKeySearch.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -21,14 +21,10 @@
  */
 package org.teiid.translator.object.mapcache;
 
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import static org.mockito.Matchers.*;
+import static org.mockito.Mockito.*;
 
-import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
@@ -46,7 +42,6 @@
 import org.teiid.translator.TranslatorException;
 import org.teiid.translator.object.BasicSearchTest;
 import org.teiid.translator.object.ObjectExecution;
-import org.teiid.translator.object.ObjectExecutionFactory;
 import org.teiid.translator.object.util.TradesCacheSource;
 import org.teiid.translator.object.util.VDBUtility;
 
@@ -96,27 +91,8 @@
     }
 	
 	@Override
-	protected List<Object> performTest(Select command, int rowcnt) throws Exception {
-
-		ObjectExecution exec = (ObjectExecution) factory.createExecution(command, context, VDBUtility.RUNTIME_METADATA, null);
-		
-		exec.execute();
-		
-		List<Object> rows = new ArrayList<Object>();
-		
-		int cnt = 0;
-		List<Object> row = exec.next();
-	
-		while (row != null) {
-			rows.add(row);
-			++cnt;
-			row = exec.next();
-		}
-		
-		assertEquals("Did not get expected number of rows", rowcnt, cnt); //$NON-NLS-1$
-		
-		exec.close();
-		return rows;
+	protected ObjectExecution createExecution(Select command) throws TranslatorException {
+		return (ObjectExecution) factory.createExecution(command, context, VDBUtility.RUNTIME_METADATA, null);
 	}
 
 	@Test public void testGetMetadata() throws Exception {

Modified: trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/search/TestBasicKeySearchCriteria.java
===================================================================
--- trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/search/TestBasicKeySearchCriteria.java	2012-10-02 15:05:22 UTC (rev 4503)
+++ trunk/connectors/translator-object/src/test/java/org/teiid/translator/object/search/TestBasicKeySearchCriteria.java	2012-10-02 16:38:13 UTC (rev 4504)
@@ -138,7 +138,6 @@
 		if (criteria.getOperator() != SearchCriterion.Operator.ALL) {
 		
 			assertNotNull(criteria.getColumn());
-			assertNotNull(criteria.getField());
 			assertNotNull(criteria.getOperator());
 			assertNotNull(criteria.getTableName());
 			assertNotNull(criteria.getRuntimeType());



More information about the teiid-commits mailing list