Java Mailing List Archive

http://www.gg3721.com/

Home » Hibernate Commits List »

[hibernate-commits] Hibernate SVN: r15065 - in search/trunk/src:
 java/org/hibernate/search/engine and 1 other directories.

hibernate-commits

2008-08-14


Author LoginPost Reply
Author: epbernard
Date: 2008-08-14 10:20:39 -0400 (Thu, 14 Aug 2008)
New Revision: 15065

Modified:
 search/trunk/src/java/org/hibernate/search/bridge/BridgeFactory.java
 search/trunk/src/java/org/hibernate/search/engine/DocumentBuilder.java
 search/trunk/src/test/org/hibernate/search/test/id/providedId/JBossCachePerson.java
 search/trunk/src/test/org/hibernate/search/test/id/providedId/ProvidedIdTest.java
Log:
Apply Navin's work and fix ProvidedIdTest using native Lucene query

Modified: search/trunk/src/java/org/hibernate/search/bridge/BridgeFactory.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/bridge/BridgeFactory.java  2008-08-14 14:03:09 UTC (rev 15064)
+++ search/trunk/src/java/org/hibernate/search/bridge/BridgeFactory.java  2008-08-14 14:20:39 UTC (rev 15065)
@@(protected) @@
       throw new AssertionFailure( "Unknown Resolution: " + resolution );
   }
 }
+
+  public static TwoWayFieldBridge extractTwoWayType(ClassBridge classBridge) {
+    FieldBridge fb = extractType( classBridge );
+    if ( fb instanceof TwoWayFieldBridge ) {
+      return ( TwoWayFieldBridge ) fb;
+    }
+    else {
+      throw new SearchException( "ClassBridge passed in is not an instance of " + TwoWayFieldBridge.class.getSimpleName() );
+    }
+  }
}

Modified: search/trunk/src/java/org/hibernate/search/engine/DocumentBuilder.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/engine/DocumentBuilder.java  2008-08-14 14:03:09 UTC (rev 15064)
+++ search/trunk/src/java/org/hibernate/search/engine/DocumentBuilder.java  2008-08-14 14:20:39 UTC (rev 15065)
@@(protected) @@
     ProvidedId provided = clazz.getAnnotation( org.hibernate.search.annotations.ProvidedId.class );
     if ( provided == null ) throw new SearchException( "No document id in: " + clazz.getName() );

-      idBridge = BridgeFactory.extractTwoWayType(provided.bridgeImpl());
+      idBridge = BridgeFactory.extractTwoWayType(provided.bridgeImpl());
     idKeywordName = provided.name();
   }
   //if composite id, use of (a, b) in ((1,2)TwoWayString2FieldBridgeAdaptor, (3,4)) fails on most database

Modified: search/trunk/src/test/org/hibernate/search/test/id/providedId/JBossCachePerson.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/id/providedId/JBossCachePerson.java  2008-08-14 14:03:09 UTC (rev 15064)
+++ search/trunk/src/test/org/hibernate/search/test/id/providedId/JBossCachePerson.java  2008-08-14 14:20:39 UTC (rev 15065)
@@(protected) @@
package org.hibernate.search.test.id.providedId;

import org.hibernate.search.annotations.*;
+import org.hibernate.search.bridge.builtin.LongBridge;

import javax.persistence.Entity;
import javax.persistence.Id;
@@(protected) @@
@author Navin Surtani (<a href="mailto:nsurtani@redhat.com">nsurtani@(protected)>)
*/
@Entity
-@(protected)
+@(protected)))
@Indexed
public class JBossCachePerson implements Serializable
{

Modified: search/trunk/src/test/org/hibernate/search/test/id/providedId/ProvidedIdTest.java
===================================================================
--- search/trunk/src/test/org/hibernate/search/test/id/providedId/ProvidedIdTest.java  2008-08-14 14:03:09 UTC (rev 15064)
+++ search/trunk/src/test/org/hibernate/search/test/id/providedId/ProvidedIdTest.java  2008-08-14 14:20:39 UTC (rev 15065)
@@(protected) @@
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.Query;
+import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.search.Hits;

import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.search.FullTextQuery;
import org.hibernate.search.FullTextSession;
import org.hibernate.search.Search;
+import org.hibernate.search.store.DirectoryProvider;
import org.hibernate.search.test.SearchTestCase;

/**
@@(protected) @@
   };
 }

-  public void testProvidedId() throws ParseException {
+  public void testProvidedId() throws Exception {

   JBossCachePerson person1 = new JBossCachePerson();
   person1.setName( "Big Goat" );
@@(protected) @@
   QueryParser parser = new QueryParser( "name", new StandardAnalyzer() );
   Query luceneQuery = parser.parse( "Goat" );

-    FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery( luceneQuery, JBossCachePerson.class );
+    //we cannot use FTQuery because @ProvidedId does not provide the getter id and Hibernate Hsearch Query extension
+    //needs it. So we use plain Lucene

-
-    List results = fullTextQuery.list();
-
+    //we know there is only one DP
+    DirectoryProvider provider = fullTextSession.getSearchFactory().getDirectoryProviders( JBossCachePerson.class )[0];
+    IndexSearcher searcher = new IndexSearcher( provider.getDirectory() );
+    Hits hits = searcher.search( luceneQuery );
+    searcher.close();
   transaction.commit();
   session.close();

-    assertEquals( 2, results.size() );
+    assertEquals( 2, hits.length() );
 }



_______________________________________________
hibernate-commits mailing list
hibernate-commits@(protected)
https://lists.jboss.org/mailman/listinfo/hibernate-commits
©2008 gg3721.com - Jax Systems, LLC, U.S.A.