From hibernate-commits at lists.jboss.org Thu Aug 14 10:20:40 2008 Content-Type: multipart/mixed; boundary="===============8091391713243281936==" MIME-Version: 1.0 From: hibernate-commits at lists.jboss.org To: hibernate-commits at lists.jboss.org Subject: [hibernate-commits] Hibernate SVN: r15065 - in search/trunk/src: java/org/hibernate/search/engine and 1 other directories. Date: Thu, 14 Aug 2008 10:20:40 -0400 Message-ID: --===============8091391713243281936== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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/JBossCache= Person.java search/trunk/src/test/org/hibernate/search/test/id/providedId/ProvidedId= Test.java Log: Apply Navin's work and fix ProvidedIdTest using native Lucene query Modified: search/trunk/src/java/org/hibernate/search/bridge/BridgeFactory.j= ava =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- search/trunk/src/java/org/hibernate/search/bridge/BridgeFactory.java 20= 08-08-14 14:03:09 UTC (rev 15064) +++ search/trunk/src/java/org/hibernate/search/bridge/BridgeFactory.java 20= 08-08-14 14:20:39 UTC (rev 15065) @@ -234,4 +234,14 @@ throw new AssertionFailure( "Unknown Resolution: " + resolution ); } } + + public static TwoWayFieldBridge extractTwoWayType(ClassBridge classBridge= ) { + FieldBridge fb =3D 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 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- 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) @@ -118,7 +118,7 @@ ProvidedId provided =3D clazz.getAnnotation( org.hibernate.search.annot= ations.ProvidedId.class ); if ( provided =3D=3D null ) throw new SearchException( "No document id = in: " + clazz.getName() ); = - idBridge =3D BridgeFactory.extractTwoWayType(provided.bridgeImpl(= )); + idBridge =3D BridgeFactory.extractTwoWayType(provided.bridgeImpl()); idKeywordName =3D provided.name(); } //if composite id, use of (a, b) in ((1,2)TwoWayString2FieldBridgeAdapto= r, (3,4)) fails on most database Modified: search/trunk/src/test/org/hibernate/search/test/id/providedId/JBo= ssCachePerson.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- search/trunk/src/test/org/hibernate/search/test/id/providedId/JBossCach= ePerson.java 2008-08-14 14:03:09 UTC (rev 15064) +++ search/trunk/src/test/org/hibernate/search/test/id/providedId/JBossCach= ePerson.java 2008-08-14 14:20:39 UTC (rev 15065) @@ -1,6 +1,7 @@ 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; @@ -12,7 +13,7 @@ @author Navin Surtani (nsurtani(= a)redhat.com) */ @Entity -(a)ProvidedId +(a)ProvidedId(bridgeImpl =3D @ClassBridge(impl =3D LongBridge.class)) @Indexed public class JBossCachePerson implements Serializable { Modified: search/trunk/src/test/org/hibernate/search/test/id/providedId/Pro= videdIdTest.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- search/trunk/src/test/org/hibernate/search/test/id/providedId/ProvidedI= dTest.java 2008-08-14 14:03:09 UTC (rev 15064) +++ search/trunk/src/test/org/hibernate/search/test/id/providedId/ProvidedI= dTest.java 2008-08-14 14:20:39 UTC (rev 15065) @@ -6,12 +6,15 @@ 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; = /** @@ -25,7 +28,7 @@ }; } = - public void testProvidedId() throws ParseException { + public void testProvidedId() throws Exception { = JBossCachePerson person1 =3D new JBossCachePerson(); person1.setName( "Big Goat" ); @@ -50,15 +53,18 @@ QueryParser parser =3D new QueryParser( "name", new StandardAnalyzer() ); Query luceneQuery =3D parser.parse( "Goat" ); = - FullTextQuery fullTextQuery =3D fullTextSession.createFullTextQuery( luc= eneQuery, 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 =3D fullTextQuery.list(); - + //we know there is only one DP + DirectoryProvider provider =3D fullTextSession.getSearchFactory().getDir= ectoryProviders( JBossCachePerson.class )[0]; + IndexSearcher searcher =3D new IndexSearcher( provider.getDirectory() ); + Hits hits =3D searcher.search( luceneQuery ); + searcher.close(); transaction.commit(); session.close(); = - assertEquals( 2, results.size() ); + assertEquals( 2, hits.length() ); } = = --===============8091391713243281936==--