[infinispan-commits] Infinispan SVN: r1001 - in trunk/query/src: test/java/org/infinispan/query/blackbox and 1 other directories.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Sun Oct 25 09:26:07 EDT 2009
Author: navssurtani
Date: 2009-10-25 09:26:07 -0400 (Sun, 25 Oct 2009)
New Revision: 1001
Added:
trunk/query/src/test/java/org/infinispan/query/blackbox/MarshalledValueClusteredQueryTest.java
trunk/query/src/test/java/org/infinispan/query/blackbox/MarshalledValueQueryTest.java
Modified:
trunk/query/src/main/java/org/infinispan/query/backend/LocalQueryInterceptor.java
trunk/query/src/main/java/org/infinispan/query/backend/QueryInterceptor.java
trunk/query/src/test/java/org/infinispan/query/blackbox/ClusteredCacheTest.java
trunk/query/src/test/java/org/infinispan/query/blackbox/LocalCacheTest.java
trunk/query/src/test/java/org/infinispan/query/impl/LazyIteratorTest.java
Log:
[ISPN-226] Query module can now take care of MarshalledValues. Tests pass ok.
Modified: trunk/query/src/main/java/org/infinispan/query/backend/LocalQueryInterceptor.java
===================================================================
--- trunk/query/src/main/java/org/infinispan/query/backend/LocalQueryInterceptor.java 2009-10-24 20:33:04 UTC (rev 1000)
+++ trunk/query/src/main/java/org/infinispan/query/backend/LocalQueryInterceptor.java 2009-10-25 13:26:07 UTC (rev 1001)
@@ -28,7 +28,7 @@
@Inject
public void init(SearchFactoryImplementor searchFactory, TransactionManager transactionManager) {
- log.debug("Entered LocalQueryInterceptor.init()");
+ if (log.isDebugEnabled()) log.debug("Entered LocalQueryInterceptor.init()");
// Fields on superclass.
@@ -42,7 +42,7 @@
// This method will get the put() calls on the cache and then send them into Lucene once it's successful.
- log.debug("Entered the LocalQueryInterceptor visitPutKeyValueCommand()");
+ if (log.isDebugEnabled()) log.debug("Entered the LocalQueryInterceptor visitPutKeyValueCommand()");
// do the actual put first.
Object toReturn = invokeNextInterceptor(ctx, command);
@@ -50,9 +50,11 @@
// Since this is going to index if local only, then we must first check to see if the
// context is local.
+ Object value = checkForMarshalledValue(command.getValue());
+
if (ctx.isOriginLocal()) {
- log.debug("Origin is local");
- addToIndexes(command.getValue(), command.getKey().toString());
+ if (log.isDebugEnabled()) log.debug("Origin is local");
+ addToIndexes(value, checkForMarshalledValue(command.getKey()).toString());
}
return toReturn;
@@ -61,16 +63,16 @@
@Override
public Object visitRemoveCommand(InvocationContext ctx, RemoveCommand command) throws Throwable {
- log.debug("Entered the LocalQueryInterceptor visitRemoveCommand()");
+ if (log.isDebugEnabled()) log.debug("Entered the LocalQueryInterceptor visitRemoveCommand()");
// remove the object out of the cache first.
Object valueRemoved = invokeNextInterceptor(ctx, command);
+
// Check to make sure that the context is local as well as successful.
-
if (command.isSuccessful() && ctx.isOriginLocal()) {
log.debug("Origin is local");
- removeFromIndexes(valueRemoved, command.getKey().toString());
+ removeFromIndexes(checkForMarshalledValue(valueRemoved), checkForMarshalledValue(command.getKey()).toString());
}
return valueRemoved;
@@ -80,7 +82,7 @@
@Override
public Object visitReplaceCommand(InvocationContext ctx, ReplaceCommand command) throws Throwable {
- log.debug("Entered the LocalQueryInterceptor visitReplaceCommand()");
+ if (log.isDebugEnabled()) log.debug("Entered the LocalQueryInterceptor visitReplaceCommand()");
Object valueReplaced = invokeNextInterceptor(ctx, command);
@@ -88,12 +90,12 @@
if (valueReplaced != null && ctx.isOriginLocal()) {
- log.debug("Origin is local");
+ if (log.isDebugEnabled()) log.debug("Origin is local");
Object[] parameters = command.getParameters();
- String keyString = command.getKey().toString();
+ String keyString = checkForMarshalledValue(command.getKey()).toString();
- removeFromIndexes(parameters[1], keyString);
- addToIndexes(parameters[2], keyString);
+ removeFromIndexes(checkForMarshalledValue(parameters[1]), keyString);
+ addToIndexes(checkForMarshalledValue(parameters[2]), keyString);
}
return valueReplaced;
@@ -102,7 +104,7 @@
@Override
public Object visitPutMapCommand(InvocationContext ctx, PutMapCommand command) throws Throwable {
- log.debug("Entered LocalQueryInterceptor visitPutMapCommand()");
+ if (log.isDebugEnabled()) log.debug("Entered LocalQueryInterceptor visitPutMapCommand()");
Object mapPut = invokeNextInterceptor(ctx, command);
@@ -110,7 +112,7 @@
if (ctx.isOriginLocal()) {
- log.debug("Origin is local");
+ if (log.isDebugEnabled()) log.debug("Origin is local");
Map<Object, Object> dataMap = command.getMap();
// Loop through all the keys and put those key, value pairings into lucene.
@@ -123,5 +125,4 @@
return mapPut;
}
-
}
Modified: trunk/query/src/main/java/org/infinispan/query/backend/QueryInterceptor.java
===================================================================
--- trunk/query/src/main/java/org/infinispan/query/backend/QueryInterceptor.java 2009-10-24 20:33:04 UTC (rev 1000)
+++ trunk/query/src/main/java/org/infinispan/query/backend/QueryInterceptor.java 2009-10-25 13:26:07 UTC (rev 1001)
@@ -11,6 +11,7 @@
import org.infinispan.context.InvocationContext;
import org.infinispan.factories.annotations.Inject;
import org.infinispan.interceptors.base.CommandInterceptor;
+import org.infinispan.marshall.MarshalledValue;
import javax.transaction.TransactionManager;
import java.util.Map;
@@ -34,7 +35,7 @@
@Inject
public void init(SearchFactoryImplementor searchFactory, TransactionManager transactionManager) {
- log.debug("Entered QueryInterceptor.init()");
+ if (log.isDebugEnabled()) log.debug("Entered QueryInterceptor.init()");
this.searchFactory = searchFactory;
this.transactionManager = transactionManager;
@@ -51,7 +52,7 @@
// do the actual put first.
Object toReturn = invokeNextInterceptor(ctx, command);
- addToIndexes(command.getValue(), command.getKey().toString());
+ addToIndexes(checkForMarshalledValue(command.getValue()), checkForMarshalledValue(command.getKey()).toString());
return toReturn;
}
@@ -59,7 +60,7 @@
@Override
public Object visitRemoveCommand(InvocationContext ctx, RemoveCommand command) throws Throwable {
- log.debug("Entered the searchable core interceptor visitRemoveCommand()");
+ if (log.isDebugEnabled()) log.debug("Entered the searchable core interceptor visitRemoveCommand()");
// remove the object out of the cache first.
Object valueRemoved = invokeNextInterceptor(ctx, command);
@@ -67,7 +68,7 @@
if (log.isDebugEnabled()) log.debug("Transaction Manager is " + transactionManager);
if (command.isSuccessful()) {
- removeFromIndexes(valueRemoved, command.getKey().toString());
+ removeFromIndexes(checkForMarshalledValue(valueRemoved), checkForMarshalledValue(command.getKey()).toString());
}
return valueRemoved;
@@ -77,16 +78,17 @@
@Override
public Object visitReplaceCommand(InvocationContext ctx, ReplaceCommand command) throws Throwable {
- log.debug("Entered the searchable core interceptor visitReplaceCommand()");
+ if (log.isDebugEnabled()) log.debug("Entered the searchable core interceptor visitReplaceCommand()");
+
Object valueReplaced = invokeNextInterceptor(ctx, command);
if (valueReplaced != null) {
Object[] parameters = command.getParameters();
- String keyString = command.getKey().toString();
+ String keyString = checkForMarshalledValue(command.getKey()).toString();
- removeFromIndexes(parameters[1], keyString);
- addToIndexes(parameters[2], keyString);
+ removeFromIndexes(checkForMarshalledValue(parameters[1]), keyString);
+ addToIndexes(checkForMarshalledValue(parameters[2]), keyString);
}
return valueReplaced;
@@ -95,7 +97,7 @@
@Override
public Object visitPutMapCommand(InvocationContext ctx, PutMapCommand command) throws Throwable {
- log.debug("Entered searchable core interceptor visitPutMapCommand()");
+ if (log.isDebugEnabled()) log.debug("Entered searchable core interceptor visitPutMapCommand()");
Object mapPut = invokeNextInterceptor(ctx, command);
@@ -105,7 +107,7 @@
// Loop through all the keys and put those key, value pairings into lucene.
for (Map.Entry entry : dataMap.entrySet()) {
- addToIndexes(entry.getValue(), entry.getKey().toString());
+ addToIndexes(checkForMarshalledValue(entry.getValue()), checkForMarshalledValue(entry.getKey()).toString());
}
return mapPut;
}
@@ -134,4 +136,13 @@
searchFactory.getWorker().performWork(new Work(value, key, WorkType.DELETE), transactionContext);
}
+ // Check to see if a given object is a marshalled value or not.
+ protected Object checkForMarshalledValue(Object o) {
+ if (o instanceof MarshalledValue) {
+ return ((MarshalledValue) o).get();
+ } else {
+ return o;
+ }
+ }
+
}
Modified: trunk/query/src/test/java/org/infinispan/query/blackbox/ClusteredCacheTest.java
===================================================================
--- trunk/query/src/test/java/org/infinispan/query/blackbox/ClusteredCacheTest.java 2009-10-24 20:33:04 UTC (rev 1000)
+++ trunk/query/src/test/java/org/infinispan/query/blackbox/ClusteredCacheTest.java 2009-10-25 13:26:07 UTC (rev 1001)
@@ -15,6 +15,7 @@
import org.infinispan.test.TestingUtil;
import org.infinispan.util.logging.Log;
import org.infinispan.util.logging.LogFactory;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.List;
@@ -53,7 +54,11 @@
cache1 = caches.get(0);
cache2 = caches.get(1);
+ }
+ @BeforeMethod
+ public void setUp(){
+
// We will put objects into cache1 and then try and run the queries on cache2. This would mean that indexLocal
// must be set to false.
@@ -82,6 +87,7 @@
cache1.put(key2, person2);
cache1.put(key3, person3);
+
}
public void testSimple() throws ParseException {
Modified: trunk/query/src/test/java/org/infinispan/query/blackbox/LocalCacheTest.java
===================================================================
--- trunk/query/src/test/java/org/infinispan/query/blackbox/LocalCacheTest.java 2009-10-24 20:33:04 UTC (rev 1000)
+++ trunk/query/src/test/java/org/infinispan/query/blackbox/LocalCacheTest.java 2009-10-25 13:26:07 UTC (rev 1001)
@@ -27,7 +27,7 @@
import java.util.List;
/**
- * @author Navin Surtani (<a href="mailto:nsurtani at redhat.com">nsurtani at redhat.com</a>)
+ * @author Navin Surtani
*/
@Test(groups = "functional")
@@ -52,7 +52,7 @@
protected CacheManager createCacheManager() throws Exception {
Configuration c = new Configuration();
c.setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
- return TestCacheManagerFactory.createCacheManager(c);
+ return TestCacheManagerFactory.createCacheManager(c, true);
}
@@ -86,6 +86,7 @@
cache.put(key1, person1);
cache.put(key2, person2);
cache.put(key3, person3);
+
}
@@ -196,6 +197,7 @@
cacheQuery = new QueryFactory(cache, qh).getQuery(luceneQuery);
found = cacheQuery.list();
+ System.out.println("found is: - " + found);
assert found.size() == 1;
assert found.contains(person2);
assert !found.contains(person3) : "The search should not return person3";
Added: trunk/query/src/test/java/org/infinispan/query/blackbox/MarshalledValueClusteredQueryTest.java
===================================================================
--- trunk/query/src/test/java/org/infinispan/query/blackbox/MarshalledValueClusteredQueryTest.java (rev 0)
+++ trunk/query/src/test/java/org/infinispan/query/blackbox/MarshalledValueClusteredQueryTest.java 2009-10-25 13:26:07 UTC (rev 1001)
@@ -0,0 +1,37 @@
+package org.infinispan.query.blackbox;
+
+import org.testng.annotations.Test;
+import org.infinispan.config.Configuration;
+import org.infinispan.query.test.Person;
+import org.infinispan.Cache;
+
+import java.util.List;
+
+/**
+ * Clustered version of {@link org.infinispan.query.blackbox.MarshalledValueQueryTest}
+ *
+ *
+ * @author Navin Surtani
+ * @since 4.0
+ */
+
+
+ at Test (groups = "functional")
+public class MarshalledValueClusteredQueryTest extends ClusteredCacheTest {
+
+ @Override
+ protected void createCacheManagers(){
+
+ Configuration cacheCfg = new Configuration();
+ cacheCfg.setCacheMode(Configuration.CacheMode.REPL_SYNC);
+ cacheCfg.setFetchInMemoryState(false);
+ cacheCfg.setUseLazyDeserialization(true);
+
+ List<Cache<String, Person>> caches = createClusteredCaches(2, "infinispan-query", cacheCfg);
+
+ cache1 = caches.get(0);
+ cache2 = caches.get(1);
+
+ }
+
+}
Added: trunk/query/src/test/java/org/infinispan/query/blackbox/MarshalledValueQueryTest.java
===================================================================
--- trunk/query/src/test/java/org/infinispan/query/blackbox/MarshalledValueQueryTest.java (rev 0)
+++ trunk/query/src/test/java/org/infinispan/query/blackbox/MarshalledValueQueryTest.java 2009-10-25 13:26:07 UTC (rev 1001)
@@ -0,0 +1,31 @@
+package org.infinispan.query.blackbox;
+
+import org.infinispan.config.Configuration;
+import org.infinispan.manager.CacheManager;
+import org.infinispan.test.fwk.TestCacheManagerFactory;
+import org.infinispan.transaction.lookup.DummyTransactionManagerLookup;
+import org.testng.annotations.Test;
+
+/**
+ *
+ * Test class such that it's possible to run queries on objects with the configuration setUseLazyDeserialization = true
+ *
+ * @author Navin Surtani
+ * @since 4.0
+ */
+
+
+ at Test(groups="functional")
+public class MarshalledValueQueryTest extends LocalCacheTest {
+
+
+ @Override
+ protected CacheManager createCacheManager() throws Exception {
+ Configuration c = new Configuration();
+ c.setTransactionManagerLookupClass(DummyTransactionManagerLookup.class.getName());
+ c.setUseLazyDeserialization(true);
+ return TestCacheManagerFactory.createCacheManager(c, true);
+ }
+
+}
+
Modified: trunk/query/src/test/java/org/infinispan/query/impl/LazyIteratorTest.java
===================================================================
--- trunk/query/src/test/java/org/infinispan/query/impl/LazyIteratorTest.java 2009-10-24 20:33:04 UTC (rev 1000)
+++ trunk/query/src/test/java/org/infinispan/query/impl/LazyIteratorTest.java 2009-10-25 13:26:07 UTC (rev 1001)
@@ -120,9 +120,6 @@
public EntityInfo answer() throws Throwable {
int index = (Integer) getCurrentArguments()[0];
String keyString = keyList.get(index);
-
- System.out.println("The key for index parameter " + index + " is " + keyString);
-
return new EntityInfo(Person.class, keyString, null);
}
}).anyTimes();
More information about the infinispan-commits
mailing list