[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