[hibernate-commits] Hibernate SVN: r11152 - in branches/HAN_SPLIT/HibernateExt/search: src/java/org/hibernate/search and 5 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Mon Feb 5 12:59:24 EST 2007


Author: epbernard
Date: 2007-02-05 12:59:24 -0500 (Mon, 05 Feb 2007)
New Revision: 11152

Added:
   branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/SearchException.java
   branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/Version.java
   branches/HAN_SPLIT/HibernateExt/search/src/test/hibernate.properties
   branches/HAN_SPLIT/HibernateExt/search/src/test/log4j.properties
Modified:
   branches/HAN_SPLIT/HibernateExt/search/readme.txt
   branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/SearchFactory.java
   branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/backend/WorkerFactory.java
   branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/backend/Workspace.java
   branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/backend/impl/LuceneWorker.java
   branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/engine/DocumentBuilder.java
   branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/store/DirectoryProviderFactory.java
Log:
Adjust Search to avoid too much HCore dependencies

Modified: branches/HAN_SPLIT/HibernateExt/search/readme.txt
===================================================================
--- branches/HAN_SPLIT/HibernateExt/search/readme.txt	2007-02-05 15:42:16 UTC (rev 11151)
+++ branches/HAN_SPLIT/HibernateExt/search/readme.txt	2007-02-05 17:59:24 UTC (rev 11152)
@@ -1,29 +1,20 @@
-Hibernate Annotations
+Hibernate Search
 ==================================================
-Version: 3.2.1.GA, 8.12.2006
+Version: 3.2.2.beta, xx.02.2007
 
-THIS RELEASE OF HIBERNATE ANNOTATIONS REQUIRES HIBERNATE CORE 3.2.0.GA (and above) AND DOES NOT 
-WORK WITH HIBERNATE 3.1.x OR ANY OLDER VERSION OF HIBERNATE.
-
-
 Description
 -----------
 
-The EJB3 specification recognizes the interest and the success of
-the transparent object/relational mapping paradigm. The EJB3 specification
-standardizes the basic APIs and the metadata needed for any object/relational
-persistence mechanism.
+Full text search engines like Apache Lucene(tm) are a very powerful technology to
+bring free text/efficient queries to applications. If suffers several mismatches
+when dealing with a object domain model (keeping the index up to date, mismatch
+between the index structure and the domain model, ...)
+Hibernate Search indexes your domain model thanks to a few annotations, takes
+care of the index synchronization, bringa you back managed objects from free text
+queries.
+Hibernate Search is using Apache Lucene(tm) under the cover.
 
-Hibernate EntityManager implements the programming interfaces and lifecycle rules
-as defined by the EJB3 persistence specification. Together with Hibernate Annotations
-this wrapper implements a complete (and standalone) EJB3 persistence solution on
-top of the mature Hibernate core. You may use a combination of all three together,
-annotations without EJB3 programming interfaces and lifecycle, or even pure native
-Hibernate, depending on the business and technical needs of your project. You can
-at all times fall back to Hibernate native APIs, or if required, even to native
-JDBC and SQL.
 
-
 Instructions
 ------------
 
@@ -36,7 +27,6 @@
 Latest Documentation:
 
    http://hibernate.org
-   http://annotations.hibernate.org
 
 Bug Reports:
 
@@ -45,7 +35,7 @@
 
 Free Technical Support:
 
-   http://forum.hibernate.org
+   http://forum.hibernate.org (http://forum.hibernate.org/viewforum.php?f=9)
 
 
 Notes

Added: branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/SearchException.java
===================================================================
--- branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/SearchException.java	                        (rev 0)
+++ branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/SearchException.java	2007-02-05 17:59:24 UTC (rev 11152)
@@ -0,0 +1,26 @@
+//$Id: $
+package org.hibernate.search;
+
+/**
+ * Root of all search specific exceptions
+ *
+ * @author Emmanuel Bernard
+ */
+public class SearchException extends RuntimeException {
+
+	public SearchException() {
+		super();
+	}
+
+	public SearchException(String message) {
+		super( message );
+	}
+
+	public SearchException(String message, Throwable cause) {
+		super( message, cause );
+	}
+
+	public SearchException(Throwable cause) {
+		super( cause );
+	}
+}
\ No newline at end of file

Modified: branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/SearchFactory.java
===================================================================
--- branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/SearchFactory.java	2007-02-05 15:42:16 UTC (rev 11151)
+++ branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/SearchFactory.java	2007-02-05 17:59:24 UTC (rev 11152)
@@ -1,29 +1,27 @@
 //$Id: $
 package org.hibernate.search;
 
-import java.util.Map;
 import java.util.HashMap;
-import java.util.WeakHashMap;
 import java.util.Iterator;
+import java.util.Map;
 import java.util.Set;
+import java.util.WeakHashMap;
 import java.util.concurrent.locks.ReentrantLock;
 
+import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.analysis.standard.StandardAnalyzer;
+import org.hibernate.annotations.common.reflection.ReflectionManager;
+import org.hibernate.annotations.common.reflection.XClass;
+import org.hibernate.annotations.common.reflection.java.JavaReflectionManager;
+import org.hibernate.cfg.Configuration;
+import org.hibernate.mapping.PersistentClass;
+import org.hibernate.search.annotations.Indexed;
+import org.hibernate.search.backend.Worker;
+import org.hibernate.search.backend.WorkerFactory;
+import org.hibernate.search.engine.DocumentBuilder;
 import org.hibernate.search.store.DirectoryProvider;
 import org.hibernate.search.store.DirectoryProviderFactory;
-import org.hibernate.search.Environment;
-import org.hibernate.search.engine.DocumentBuilder;
-import org.hibernate.search.backend.WorkerFactory;
-import org.hibernate.search.backend.Worker;
-import org.hibernate.search.annotations.Indexed;
-import org.hibernate.cfg.Configuration;
-import org.hibernate.cfg.AnnotationConfiguration;
-import org.hibernate.annotations.common.reflection.ReflectionManager;
-import org.hibernate.annotations.common.reflection.XClass;
 import org.hibernate.util.ReflectHelper;
-import org.hibernate.HibernateException;
-import org.hibernate.mapping.PersistentClass;
-import org.apache.lucene.analysis.standard.StandardAnalyzer;
-import org.apache.lucene.analysis.Analyzer;
 
 /**
  * @author Emmanuel Bernard
@@ -32,6 +30,7 @@
 	private static ThreadLocal<WeakHashMap<Configuration, SearchFactory>> contexts =
 			new ThreadLocal<WeakHashMap<Configuration, SearchFactory>>();
 	static {
+		Version.touch();
 		contexts.set( new WeakHashMap<Configuration, SearchFactory>(2) );
 	}
 	private Map<Class, DocumentBuilder<Object>> documentBuilders = new HashMap<Class, DocumentBuilder<Object>>();
@@ -42,7 +41,7 @@
 
 	public SearchFactory(Configuration cfg) {
 		//yuk
-		ReflectionManager reflectionManager = ( (AnnotationConfiguration) cfg ).createExtendedMappings().getReflectionManager();
+		ReflectionManager reflectionManager = getReflectionManager( cfg );
 
 		Class analyzerClass;
 		String analyzerClassName = cfg.getProperty( Environment.ANALYZER_CLASS );
@@ -51,7 +50,7 @@
 				analyzerClass = ReflectHelper.classForName( analyzerClassName );
 			}
 			catch (Exception e) {
-				throw new HibernateException(
+				throw new SearchException(
 						"Lucene analyzer class '" + analyzerClassName + "' defined in property '" + Environment.ANALYZER_CLASS + "' could not be found.",
 						e
 				);
@@ -66,12 +65,12 @@
 			analyzer = (Analyzer) analyzerClass.newInstance();
 		}
 		catch (ClassCastException e) {
-			throw new HibernateException(
+			throw new SearchException(
 					"Lucene analyzer does not implement " + Analyzer.class.getName() + ": " + analyzerClassName
 			);
 		}
 		catch (Exception e) {
-			throw new HibernateException( "Failed to instantiate lucene analyzer with type " + analyzerClassName );
+			throw new SearchException( "Failed to instantiate lucene analyzer with type " + analyzerClassName );
 		}
 
 		Iterator iter = cfg.getClassMappings();
@@ -135,4 +134,21 @@
 	public Worker getWorker() {
 		return worker;
 	}
+
+	//not happy about having it as a helper class but I don't want cfg to be associated with the SearchFactory
+	public static ReflectionManager getReflectionManager(Configuration cfg) {
+		ReflectionManager reflectionManager;
+		try {
+			//TODO introduce a ReflectionManagerHolder interface to avoid reflection
+			//I want to avoid hard link between HAN and Validator for usch a simple need
+			//reuse the existing reflectionManager one when possible
+			reflectionManager =
+					(ReflectionManager) cfg.getClass().getMethod( "getReflectionManager" ).invoke( cfg );
+
+		}
+		catch (Exception e) {
+			reflectionManager = new JavaReflectionManager();
+		}
+		return reflectionManager;
+	}
 }

Added: branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/Version.java
===================================================================
--- branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/Version.java	                        (rev 0)
+++ branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/Version.java	2007-02-05 17:59:24 UTC (rev 11152)
@@ -0,0 +1,20 @@
+//$Id: $
+package org.hibernate.search;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class Version {
+	public static final String VERSION = "3.2.2.beta1";
+	private static Log log = LogFactory.getLog( Version.class );
+
+	static {
+		log.info( "Hibernate Search " + VERSION );
+	}
+
+	public static void touch() {
+	}
+}
\ No newline at end of file

Modified: branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/backend/WorkerFactory.java
===================================================================
--- branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/backend/WorkerFactory.java	2007-02-05 15:42:16 UTC (rev 11151)
+++ branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/backend/WorkerFactory.java	2007-02-05 17:59:24 UTC (rev 11152)
@@ -11,9 +11,9 @@
 import org.hibernate.search.SearchFactory;
 import org.hibernate.search.store.DirectoryProvider;
 import org.hibernate.search.Environment;
+import org.hibernate.search.SearchException;
 import org.hibernate.util.StringHelper;
 import org.hibernate.util.ReflectHelper;
-import org.hibernate.AnnotationException;
 
 /**
  * @author Emmanuel Bernard
@@ -58,13 +58,13 @@
 				worker = (Worker) workerClass.newInstance();
 			}
 			catch (ClassNotFoundException e) {
-				throw new AnnotationException("Unable to find worker class: " + impl, e );
+				throw new SearchException("Unable to find worker class: " + impl, e );
 			}
 			catch (IllegalAccessException e) {
-				throw new AnnotationException("Unable to instanciate worker class: " + impl, e );
+				throw new SearchException("Unable to instanciate worker class: " + impl, e );
 			}
 			catch (InstantiationException e) {
-				throw new AnnotationException("Unable to instanciate worker class: " + impl, e );
+				throw new SearchException("Unable to instanciate worker class: " + impl, e );
 			}
 		}
 		worker.initialize( props, searchFactory );

Modified: branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/backend/Workspace.java
===================================================================
--- branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/backend/Workspace.java	2007-02-05 15:42:16 UTC (rev 11151)
+++ branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/backend/Workspace.java	2007-02-05 17:59:24 UTC (rev 11152)
@@ -12,11 +12,11 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriter;
-import org.hibernate.HibernateException;
-import org.hibernate.AssertionFailure;
 import org.hibernate.search.engine.DocumentBuilder;
 import org.hibernate.search.SearchFactory;
+import org.hibernate.search.SearchException;
 import org.hibernate.search.store.DirectoryProvider;
+import org.hibernate.annotations.common.AssertionFailure;
 
 /**
  * Lucene workspace
@@ -60,7 +60,7 @@
 			readers.put( provider, reader );
 		}
 		catch (IOException e) {
-			cleanUp( new HibernateException( "Unable to open IndexReader for " + entity, e ) );
+			cleanUp( new SearchException( "Unable to open IndexReader for " + entity, e ) );
 		}
 		return reader;
 	}
@@ -74,7 +74,7 @@
 				reader.close();
 			}
 			catch (IOException e) {
-				throw new HibernateException( "Exception while closing IndexReader", e );
+				throw new SearchException( "Exception while closing IndexReader", e );
 			}
 			readers.remove( provider );
 		}
@@ -88,7 +88,7 @@
 			writers.put( provider, writer );
 		}
 		catch (IOException e) {
-			cleanUp( new HibernateException( "Unable to open IndexWriter for " + entity, e ) );
+			cleanUp( new SearchException( "Unable to open IndexWriter for " + entity, e ) );
 		}
 		return writer;
 	}
@@ -103,9 +103,9 @@
 		}
 	}
 
-	private void cleanUp(HibernateException originalException) {
+	private void cleanUp(SearchException originalException) {
 		//release all readers and writers, then release locks
-		HibernateException raisedException = originalException;
+		SearchException raisedException = originalException;
 		for ( IndexReader reader : readers.values() ) {
 			try {
 				reader.close();
@@ -115,7 +115,7 @@
 					log.error( "Subsequent Exception while closing IndexReader", e );
 				}
 				else {
-					raisedException = new HibernateException( "Exception while closing IndexReader", e );
+					raisedException = new SearchException( "Exception while closing IndexReader", e );
 				}
 			}
 		}
@@ -128,7 +128,7 @@
 					log.error( "Subsequent Exception while closing IndexWriter", e );
 				}
 				else {
-					raisedException = new HibernateException( "Exception while closing IndexWriter", e );
+					raisedException = new SearchException( "Exception while closing IndexWriter", e );
 				}
 			}
 		}

Modified: branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/backend/impl/LuceneWorker.java
===================================================================
--- branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/backend/impl/LuceneWorker.java	2007-02-05 15:42:16 UTC (rev 11151)
+++ branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/backend/impl/LuceneWorker.java	2007-02-05 17:59:24 UTC (rev 11152)
@@ -11,14 +11,14 @@
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.index.TermDocs;
-import org.hibernate.AssertionFailure;
-import org.hibernate.HibernateException;
+import org.hibernate.annotations.common.AssertionFailure;
 import org.hibernate.search.engine.DocumentBuilder;
 import org.hibernate.search.backend.Workspace;
 import org.hibernate.search.backend.DeleteWork;
 import org.hibernate.search.backend.AddWork;
 import org.hibernate.search.backend.UpdateWork;
 import org.hibernate.search.backend.Work;
+import org.hibernate.search.SearchException;
 
 /**
  * Stateless implementation that perform a work
@@ -63,7 +63,7 @@
 			writer.addDocument( document );
 		}
 		catch (IOException e) {
-			throw new HibernateException( "Unable to add to Lucene index: " + entity + "#" + id, e );
+			throw new SearchException( "Unable to add to Lucene index: " + entity + "#" + id, e );
 		}
 	}
 
@@ -102,7 +102,7 @@
 			}
 		}
 		catch (Exception e) {
-			throw new HibernateException( "Unable to remove from Lucene index: " + entity + "#" + id, e );
+			throw new SearchException( "Unable to remove from Lucene index: " + entity + "#" + id, e );
 		}
 		finally {
 			if (termDocs != null) try {

Modified: branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/engine/DocumentBuilder.java
===================================================================
--- branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/engine/DocumentBuilder.java	2007-02-05 15:42:16 UTC (rev 11151)
+++ branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/engine/DocumentBuilder.java	2007-02-05 17:59:24 UTC (rev 11152)
@@ -13,9 +13,14 @@
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.index.Term;
-import org.hibernate.AssertionFailure;
-import org.hibernate.HibernateException;
-import org.hibernate.cfg.annotations.Version;
+import org.hibernate.annotations.common.reflection.ReflectionManager;
+import org.hibernate.annotations.common.reflection.XAnnotatedElement;
+import org.hibernate.annotations.common.reflection.XClass;
+import org.hibernate.annotations.common.reflection.XMember;
+import org.hibernate.annotations.common.reflection.XProperty;
+import org.hibernate.annotations.common.AssertionFailure;
+import org.hibernate.search.SearchFactory;
+import org.hibernate.search.SearchException;
 import org.hibernate.search.annotations.Boost;
 import org.hibernate.search.annotations.DocumentId;
 import org.hibernate.search.annotations.Index;
@@ -28,12 +33,6 @@
 import org.hibernate.search.bridge.TwoWayFieldBridge;
 import org.hibernate.search.store.DirectoryProvider;
 import org.hibernate.search.util.BinderHelper;
-import org.hibernate.search.SearchFactory;
-import org.hibernate.annotations.common.reflection.ReflectionManager;
-import org.hibernate.annotations.common.reflection.XAnnotatedElement;
-import org.hibernate.annotations.common.reflection.XClass;
-import org.hibernate.annotations.common.reflection.XMember;
-import org.hibernate.annotations.common.reflection.XProperty;
 import org.hibernate.util.ReflectHelper;
 
 /**
@@ -45,11 +44,6 @@
  * @author Richard Hallier
  */
 public class DocumentBuilder<T> {
-
-	static {
-		Version.touch(); //touch version
-	}
-
 	private final List<XMember> keywordGetters = new ArrayList<XMember>();
 	private final List<String> keywordNames = new ArrayList<String>();
 	private final List<FieldBridge> keywordBridges = new ArrayList<FieldBridge>();
@@ -100,7 +94,7 @@
 		}
 
 		if ( idKeywordName == null ) {
-			throw new HibernateException( "No document id for: " + clazz.getName() );
+			throw new SearchException( "No document id for: " + clazz.getName() );
 		}
 	}
 
@@ -116,7 +110,7 @@
 					idBridge = (TwoWayFieldBridge) fieldBridge;
 				}
 				else {
-					throw new HibernateException(
+					throw new SearchException(
 							"Bridge for document id does not implement IdFieldBridge: " + member.getName() );
 				}
 			}
@@ -156,7 +150,7 @@
 				idBridge = (TwoWayFieldBridge) fieldBridge;
 			}
 			else {
-				throw new HibernateException(
+				throw new SearchException(
 						"Bridge for document id does not implement IdFieldBridge: " + member.getName() );
 			}
 			idBoost = getBoost( member );
@@ -301,13 +295,13 @@
 			return ReflectHelper.classForName( className );
 		}
 		catch (ClassNotFoundException e) {
-			throw new HibernateException( "Unable to load indexed class: " + className, e );
+			throw new SearchException( "Unable to load indexed class: " + className, e );
 		}
 	}
 
 	public static Serializable getDocumentId(SearchFactory searchFactory, Class clazz, Document document) {
 		DocumentBuilder builder = searchFactory.getDocumentBuilders().get( clazz );
-		if ( builder == null ) throw new HibernateException( "No Lucene configuration set up for: " + clazz.getName() );
+		if ( builder == null ) throw new SearchException( "No Lucene configuration set up for: " + clazz.getName() );
 		return (Serializable) builder.getIdBridge().get( builder.getIdKeywordName(), document );
 	}
 

Modified: branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/store/DirectoryProviderFactory.java
===================================================================
--- branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/store/DirectoryProviderFactory.java	2007-02-05 15:42:16 UTC (rev 11151)
+++ branches/HAN_SPLIT/HibernateExt/search/src/java/org/hibernate/search/store/DirectoryProviderFactory.java	2007-02-05 17:59:24 UTC (rev 11152)
@@ -7,7 +7,6 @@
 import java.util.Properties;
 
 import org.hibernate.HibernateException;
-import org.hibernate.cfg.AnnotationConfiguration;
 import org.hibernate.cfg.Configuration;
 import org.hibernate.search.annotations.Indexed;
 import org.hibernate.search.SearchFactory;
@@ -99,8 +98,7 @@
 
 	private static String getDirectoryProviderName(XClass clazz, Configuration cfg) {
 		//yuk
-		ReflectionManager reflectionManager =
-				( (AnnotationConfiguration) cfg ).createExtendedMappings().getReflectionManager();
+		ReflectionManager reflectionManager = SearchFactory.getReflectionManager(cfg);
 		//get the most specialized (ie subclass > superclass) non default index name
 		//if none extract the name from the most generic (superclass > subclass) @Indexed class in the hierarchy
 		//FIXME I'm inclined to get rid of the default value

Added: branches/HAN_SPLIT/HibernateExt/search/src/test/hibernate.properties
===================================================================
--- branches/HAN_SPLIT/HibernateExt/search/src/test/hibernate.properties	                        (rev 0)
+++ branches/HAN_SPLIT/HibernateExt/search/src/test/hibernate.properties	2007-02-05 17:59:24 UTC (rev 11152)
@@ -0,0 +1,472 @@
+######################
+### Query Language ###
+######################
+
+## define query language constants / function names
+
+hibernate.query.substitutions true 1, false 0, yes 'Y', no 'N'
+
+
+## select the classic query parser
+
+#hibernate.query.factory_class org.hibernate.hql.classic.ClassicQueryTranslatorFactory
+
+hibernate.format_sql true
+
+
+
+#################
+### Platforms ###
+#################
+
+## JNDI Datasource
+
+#hibernate.connection.datasource jdbc/test
+#hibernate.connection.username db2
+#hibernate.connection.password db2
+
+
+## HypersonicSQL
+
+hibernate.dialect org.hibernate.dialect.HSQLDialect
+hibernate.connection.driver_class org.hsqldb.jdbcDriver
+hibernate.connection.username sa
+hibernate.connection.password
+hibernate.connection.url jdbc:hsqldb:hsql://localhost
+hibernate.connection.url jdbc:hsqldb:test
+hibernate.connection.url jdbc:hsqldb:.
+
+
+## MySQL
+
+#hibernate.dialect org.hibernate.dialect.MySQLDialect
+#hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect
+#hibernate.dialect org.hibernate.dialect.MySQLMyISAMDialect
+#hibernate.connection.driver_class com.mysql.jdbc.Driver
+#hibernate.connection.url jdbc:mysql:///test
+#hibernate.connection.username emmanuel
+#hibernate.connection.password
+
+
+## Oracle
+
+#hibernate.dialect org.hibernate.dialect.OracleDialect
+#hibernate.dialect org.hibernate.dialect.Oracle9Dialect
+#hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver
+#hibernate.connection.username ora
+#hibernate.connection.password ora
+#hibernate.connection.url jdbc:oracle:thin:@localhost:1521:test
+
+
+## PostgreSQL
+
+#hibernate.dialect org.hibernate.dialect.PostgreSQLDialect
+#hibernate.connection.driver_class org.postgresql.Driver
+#hibernate.connection.url jdbc:postgresql:annotations
+#hibernate.connection.username postgres
+#hibernate.connection.password hibernate
+#hibernate.query.substitutions yes 'Y', no 'N'
+
+
+## DB2
+
+#hibernate.dialect org.hibernate.dialect.DB2Dialect
+#hibernate.connection.driver_class COM.ibm.db2.jdbc.app.DB2Driver
+#hibernate.connection.url jdbc:db2:test
+#hibernate.connection.username db2
+#hibernate.connection.password db2
+
+## TimesTen (not supported yet)
+
+#hibernate.dialect org.hibernate.dialect.TimesTenDialect
+#hibernate.connection.driver_class com.timesten.jdbc.TimesTenDriver
+#hibernate.connection.url jdbc:timesten:direct:test
+#hibernate.connection.username
+#hibernate.connection.password 
+
+## DB2/400
+
+#hibernate.dialect org.hibernate.dialect.DB2400Dialect
+#hibernate.connection.username user
+#hibernate.connection.password password
+
+## Native driver
+#hibernate.connection.driver_class COM.ibm.db2.jdbc.app.DB2Driver
+#hibernate.connection.url jdbc:db2://systemname
+
+## Toolbox driver
+#hibernate.connection.driver_class com.ibm.as400.access.AS400JDBCDriver
+#hibernate.connection.url jdbc:as400://systemname
+
+
+## Derby (Not supported!)
+
+#hibernate.dialect org.hibernate.dialect.DerbyDialect
+#hibernate.connection.driver_class org.apache.derby.jdbc.EmbeddedDriver
+#hibernate.connection.username
+#hibernate.connection.password
+#hibernate.connection.url jdbc:derby:/test;create=true
+
+
+## Sybase
+
+#hibernate.dialect org.hibernate.dialect.SybaseDialect
+#hibernate.connection.driver_class com.sybase.jdbc2.jdbc.SybDriver
+#hibernate.connection.username sa
+#hibernate.connection.password sasasa
+#hibernate.connection.url jdbc:sybase:Tds:co3061835-a:5000/tempdb
+
+
+## Mckoi SQL
+
+#hibernate.dialect org.hibernate.dialect.MckoiDialect
+#hibernate.connection.driver_class com.mckoi.JDBCDriver
+#hibernate.connection.url jdbc:mckoi:///
+#hibernate.connection.url jdbc:mckoi:local://C:/mckoi1.00/db.conf
+#hibernate.connection.username admin
+#hibernate.connection.password nimda
+
+
+## SAP DB
+
+#hibernate.dialect org.hibernate.dialect.SAPDBDialect
+#hibernate.connection.driver_class com.sap.dbtech.jdbc.DriverSapDB
+#hibernate.connection.url jdbc:sapdb://localhost/TST
+#hibernate.connection.username TEST
+#hibernate.connection.password TEST
+#hibernate.query.substitutions yes 'Y', no 'N'
+
+
+## MS SQL Server
+
+#hibernate.dialect org.hibernate.dialect.SQLServerDialect
+#hibernate.connection.username sa
+#hibernate.connection.password sa
+
+## JSQL Driver
+#hibernate.connection.driver_class com.jnetdirect.jsql.JSQLDriver
+#hibernate.connection.url jdbc:JSQLConnect://1E1/test
+
+## JTURBO Driver
+#hibernate.connection.driver_class com.newatlanta.jturbo.driver.Driver
+#hibernate.connection.url jdbc:JTurbo://1E1:1433/test
+
+## WebLogic Driver
+#hibernate.connection.driver_class weblogic.jdbc.mssqlserver4.Driver
+#hibernate.connection.url jdbc:weblogic:mssqlserver4:1E1:1433
+
+## Microsoft Driver (not recommended!)
+#hibernate.connection.driver_class com.microsoft.jdbc.sqlserver.SQLServerDriver
+#hibernate.connection.url jdbc:microsoft:sqlserver://1E1;DatabaseName=test;SelectMethod=cursor
+
+## jTDS (since version 0.9)
+#hibernate.connection.driver_class net.sourceforge.jtds.jdbc.Driver
+#hibernate.connection.url jdbc:jtds:sqlserver://1E1/test
+
+## Interbase
+
+#hibernate.dialect org.hibernate.dialect.InterbaseDialect
+#hibernate.connection.username sysdba
+#hibernate.connection.password masterkey
+
+## DO NOT specify hibernate.connection.sqlDialect
+
+## InterClient
+
+#hibernate.connection.driver_class interbase.interclient.Driver
+#hibernate.connection.url jdbc:interbase://localhost:3060/C:/firebird/test.gdb
+
+## Pure Java
+
+#hibernate.connection.driver_class org.firebirdsql.jdbc.FBDriver
+#hibernate.connection.url jdbc:firebirdsql:localhost/3050:/firebird/test.gdb
+
+
+## Pointbase
+
+#hibernate.dialect org.hibernate.dialect.PointbaseDialect
+#hibernate.connection.driver_class com.pointbase.jdbc.jdbcUniversalDriver
+#hibernate.connection.url jdbc:pointbase:embedded:sample
+#hibernate.connection.username PBPUBLIC
+#hibernate.connection.password PBPUBLIC
+
+
+
+#################################
+### Hibernate Connection Pool ###
+#################################
+
+hibernate.connection.pool_size 1
+
+
+
+###########################
+### C3P0 Connection Pool###
+###########################
+
+#hibernate.c3p0.max_size 2
+#hibernate.c3p0.min_size 2
+#hibernate.c3p0.timeout 5000
+#hibernate.c3p0.max_statements 100
+#hibernate.c3p0.idle_test_period 3000
+#hibernate.c3p0.acquire_increment 2
+#hibernate.c3p0.validate false
+
+
+
+##############################
+### Proxool Connection Pool###
+##############################
+
+## Properties for external configuration of Proxool
+
+hibernate.proxool.pool_alias pool1
+
+## Only need one of the following
+
+#hibernate.proxool.existing_pool true
+#hibernate.proxool.xml proxool.xml
+#hibernate.proxool.properties proxool.properties
+
+
+
+#################################
+### Plugin ConnectionProvider ###
+#################################
+
+## use a custom ConnectionProvider (if not set, Hibernate will choose a built-in ConnectionProvider using hueristics)
+
+#hibernate.connection.provider_class org.hibernate.connection.DriverManagerConnectionProvider
+#hibernate.connection.provider_class org.hibernate.connection.DatasourceConnectionProvider
+#hibernate.connection.provider_class org.hibernate.connection.C3P0ConnectionProvider
+#hibernate.connection.provider_class org.hibernate.connection.DBCPConnectionProvider
+#hibernate.connection.provider_class org.hibernate.connection.ProxoolConnectionProvider
+
+
+
+#######################
+### Transaction API ###
+#######################
+
+## Enable automatic flush during the JTA beforeCompletion() callback
+## (This setting is relevant with or without the Transaction API)
+
+#hibernate.transaction.flush_before_completion
+
+
+## Enable automatic session close at the end of transaction
+## (This setting is relevant with or without the Transaction API)
+
+#hibernate.transaction.auto_close_session
+
+
+## the Transaction API abstracts application code from the underlying JTA or JDBC transactions
+
+#hibernate.transaction.factory_class org.hibernate.transaction.JTATransactionFactory
+#hibernate.transaction.factory_class org.hibernate.transaction.JDBCTransactionFactory
+
+
+## to use JTATransactionFactory, Hibernate must be able to locate the UserTransaction in JNDI
+## default is java:comp/UserTransaction
+## you do NOT need this setting if you specify hibernate.transaction.manager_lookup_class
+
+#jta.UserTransaction jta/usertransaction
+#jta.UserTransaction javax.transaction.UserTransaction
+#jta.UserTransaction UserTransaction
+
+
+## to use the second-level cache with JTA, Hibernate must be able to obtain the JTA TransactionManager
+
+#hibernate.transaction.manager_lookup_class org.hibernate.transaction.JBossTransactionManagerLookup
+#hibernate.transaction.manager_lookup_class org.hibernate.transaction.WeblogicTransactionManagerLookup
+#hibernate.transaction.manager_lookup_class org.hibernate.transaction.WebSphereTransactionManagerLookup
+#hibernate.transaction.manager_lookup_class org.hibernate.transaction.OrionTransactionManagerLookup
+#hibernate.transaction.manager_lookup_class org.hibernate.transaction.ResinTransactionManagerLookup
+
+
+
+##############################
+### Miscellaneous Settings ###
+##############################
+
+## print all generated SQL to the console
+
+#hibernate.show_sql true
+
+
+## add comments to the generated SQL
+
+#hibernate.use_sql_comments true
+
+
+## generate statistics
+
+#hibernate.generate_statistics true
+
+
+## auto schema export
+
+#hibernate.hbm2ddl.auto create-drop
+#hibernate.hbm2ddl.auto create
+#hibernate.hbm2ddl.auto update
+
+
+## specify a default schema and catalog for unqualified tablenames
+
+#hibernate.default_schema test
+#hibernate.default_catalog test
+
+
+## enable ordering of SQL UPDATEs by primary key
+
+hibernate.order_updates true
+
+
+## set the maximum depth of the outer join fetch tree
+
+hibernate.max_fetch_depth 1
+
+
+## set the default batch size for batch fetching
+
+hibernate.default_batch_fetch_size 100
+
+
+## rollback generated identifier values of deleted entities to default values
+
+#hibernate.use_identifer_rollback true
+
+
+## enable CGLIB reflection optimizer (enabled by default)
+
+#hibernate.cglib.use_reflection_optimizer false
+
+
+
+#####################
+### JDBC Settings ###
+#####################
+
+## specify a JDBC isolation level
+
+#hibernate.connection.isolation 4
+
+
+## enable JDBC autocommit (not recommended!)
+
+#hibernate.connection.autocommit true
+
+
+## set the JDBC fetch size
+
+#hibernate.jdbc.fetch_size 25
+
+
+## set the maximum JDBC 2 batch size (a nonzero value enables batching)
+
+#hibernate.jdbc.batch_size 0
+
+
+## enable batch updates even for versioned data
+
+hibernate.jdbc.batch_versioned_data true
+
+
+## enable use of JDBC 2 scrollable ResultSets (specifying a Dialect will cause Hibernate to use a sensible default)
+
+#hibernate.jdbc.use_scrollable_resultset true
+
+
+## use streams when writing binary types to / from JDBC
+
+hibernate.jdbc.use_streams_for_binary true
+
+
+## use JDBC 3 PreparedStatement.getGeneratedKeys() to get the identifier of an inserted row
+
+#hibernate.jdbc.use_get_generated_keys false
+
+
+## choose a custom JDBC batcher
+
+# hibernate.jdbc.factory_class
+
+
+## enable JDBC result set column alias caching 
+## (minor performance enhancement for broken JDBC drivers)
+
+# hibernate.jdbc.wrap_result_sets
+
+
+## choose a custom SQL exception converter
+
+#hibernate.jdbc.sql_exception_converter
+
+
+
+##########################
+### Second-level Cache ###
+##########################
+
+## optimize chache for minimal "puts" instead of minimal "gets" (good for clustered cache)
+
+#hibernate.cache.use_minimal_puts true
+
+
+## set a prefix for cache region names
+
+hibernate.cache.region_prefix hibernate.test
+
+
+## disable the second-level cache
+
+#hibernate.cache.use_second_level_cache false
+
+
+## enable the query cache
+
+hibernate.cache.use_query_cache true
+
+
+## store the second-level cache entries in a more human-friendly format
+
+#hibernate.cache.use_structured_entries true
+
+
+## choose a cache implementation
+
+#hibernate.cache.provider_class org.hibernate.cache.EhCacheProvider
+#hibernate.cache.provider_class org.hibernate.cache.EmptyCacheProvider
+hibernate.cache.provider_class org.hibernate.cache.HashtableCacheProvider
+#hibernate.cache.provider_class org.hibernate.cache.TreeCacheProvider
+#hibernate.cache.provider_class org.hibernate.cache.OSCacheProvider
+#hibernate.cache.provider_class org.hibernate.cache.SwarmCacheProvider
+
+
+## choose a custom query cache implementation
+
+#hibernate.cache.query_cache_factory
+
+
+
+############
+### JNDI ###
+############
+
+## specify a JNDI name for the SessionFactory
+
+#hibernate.session_factory_name hibernate/session_factory
+
+
+## Hibernate uses JNDI to bind a name to a SessionFactory and to look up the JTA UserTransaction;
+## if hibernate.jndi.* are not specified, Hibernate will use the default InitialContext() which
+## is the best approach in an application server
+
+#file system
+#hibernate.jndi.class com.sun.jndi.fscontext.RefFSContextFactory
+#hibernate.jndi.url file:/
+
+#WebSphere
+#hibernate.jndi.class com.ibm.websphere.naming.WsnInitialContextFactory
+#hibernate.jndi.url iiop://localhost:900/
+

Added: branches/HAN_SPLIT/HibernateExt/search/src/test/log4j.properties
===================================================================
--- branches/HAN_SPLIT/HibernateExt/search/src/test/log4j.properties	                        (rev 0)
+++ branches/HAN_SPLIT/HibernateExt/search/src/test/log4j.properties	2007-02-05 17:59:24 UTC (rev 11152)
@@ -0,0 +1,44 @@
+### direct log messages to stdout ###
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.Target=System.out
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+
+### direct messages to file hibernate.log ###
+#log4j.appender.file=org.apache.log4j.FileAppender
+#log4j.appender.file.File=hibernate.log
+#log4j.appender.file.layout=org.apache.log4j.PatternLayout
+#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
+
+### set log levels - for more verbose logging change 'info' to 'debug' ###
+
+log4j.rootLogger=warn, stdout
+
+log4j.logger.org.hibernate=info
+
+
+### log just the SQL
+log4j.logger.org.hibernate.SQL=debug
+
+#log4j.logger.org.hibernate.engine.CascadingAction=debug
+
+### log JDBC bind parameters ###
+#log4j.logger.org.hibernate.type=debug
+
+### log schema export/update ###
+log4j.logger.org.hibernate.tool.hbm2ddl=debug
+
+### log cache activity ###
+#log4j.logger.org.hibernate.cache=debug
+
+### enable the following line if you want to track down connection ###
+### leakages when using DriverManagerConnectionProvider ###
+#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
+
+### annotation logs
+#log4j.logger.org.hibernate.annotation=info
+#log4j.logger.org.hibernate.cfg=info
+#log4j.logger.org.hibernate.cfg.SettingsFactory=info
+#log4j.logger.org.hibernate.cfg.AnnotationBinder=info
+#log4j.logger.org.hibernate.cfg.AnnotationConfiguration=info
+#log4j.logger.org.hibernate.cfg.Ejb3Column=info
\ No newline at end of file




More information about the hibernate-commits mailing list