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

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Fri Jul 4 12:01:28 EDT 2008


Author: hardy.ferentschik
Date: 2008-07-04 12:01:28 -0400 (Fri, 04 Jul 2008)
New Revision: 14876

Modified:
   search/trunk/ivy/ivyconf.xml
   search/trunk/src/java/org/hibernate/search/event/FullTextIndexCollectionEventListener.java
   search/trunk/src/java/org/hibernate/search/event/FullTextIndexEventListener.java
   search/trunk/src/test/log4j.properties
Log:
HSEARCH-209:
* Moved FullTextIndexCollectionEventListener code back into super class and deprecated methods. However, I think we could also savely remove this class.
* Added chainsaw logger to log4j
* Reverted ivyconf back to using the release version for local publish

Modified: search/trunk/ivy/ivyconf.xml
===================================================================
--- search/trunk/ivy/ivyconf.xml	2008-07-04 15:54:55 UTC (rev 14875)
+++ search/trunk/ivy/ivyconf.xml	2008-07-04 16:01:28 UTC (rev 14876)
@@ -9,8 +9,8 @@
         </chain>
         <chain name="rep-hibernate" returnFirst="true" latest="latest-revision">
             <filesystem name="local">
-                <ivy pattern="../[module]/target/hibernate-[module]/ivy.xml"/>
-                <artifact pattern="../[module]/target/hibernate-[module]/[artifact].[ext]"/>
+				<ivy pattern="../[module]/target/[revision]/ivy.xml"/>
+                <artifact pattern="../[module]/target/[revision]/[artifact].[ext]"/>
             </filesystem>
             <filesystem name="hudson-local">
                 <ivy pattern="../../[module]/trunk/target/hibernate-[module]/ivy.xml"/>

Modified: search/trunk/src/java/org/hibernate/search/event/FullTextIndexCollectionEventListener.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/event/FullTextIndexCollectionEventListener.java	2008-07-04 15:54:55 UTC (rev 14875)
+++ search/trunk/src/java/org/hibernate/search/event/FullTextIndexCollectionEventListener.java	2008-07-04 16:01:28 UTC (rev 14876)
@@ -1,71 +1,42 @@
 // $Id:$
 package org.hibernate.search.event;
 
-import java.io.Serializable;
-
-import org.hibernate.event.PostCollectionRecreateEventListener;
-import org.hibernate.event.PostCollectionRemoveEventListener;
-import org.hibernate.event.PostCollectionUpdateEventListener;
 import org.hibernate.event.PostCollectionRecreateEvent;
+import org.hibernate.event.PostCollectionRecreateEventListener;
 import org.hibernate.event.PostCollectionRemoveEvent;
+import org.hibernate.event.PostCollectionRemoveEventListener;
 import org.hibernate.event.PostCollectionUpdateEvent;
-import org.hibernate.event.AbstractCollectionEvent;
-import org.hibernate.search.backend.WorkType;
-import org.hibernate.engine.EntityEntry;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.hibernate.event.PostCollectionUpdateEventListener;
 
 /**
- * Support collection event listening (starts from hibernate core 3.2.6)
- * FIXME deprecate as soon as we target Core 3.3 and merge back into the superclass
- *
  * @author Emmanuel Bernard
  */
+ at SuppressWarnings("serial")
 public class FullTextIndexCollectionEventListener extends FullTextIndexEventListener
 		implements PostCollectionRecreateEventListener,
 		PostCollectionRemoveEventListener,
 		PostCollectionUpdateEventListener {
-	private final Logger log = LoggerFactory.getLogger( FullTextIndexCollectionEventListener.class );
 
+	/**
+	 * @deprecated As of release 3.1.0, replaced by {@link FullTextIndexEventListener#onPostRecreateCollection(PostCollectionRecreateEvent)}
+	 */
+	@Deprecated 	
 	public void onPostRecreateCollection(PostCollectionRecreateEvent event) {
 		processCollectionEvent( event );
 	}
 
-	private void processCollectionEvent(AbstractCollectionEvent event) {
-		Object entity = event.getAffectedOwnerOrNull();
-		if ( entity == null ) {
-			//Hibernate cannot determine every single time the owner especially incase detached objects are involved
-			// or property-ref is used
-			//Should log really but we don't know if we're interested in this collection for indexing
-			return;
-		}
-		if ( used && searchFactoryImplementor.getDocumentBuilders().containsKey( entity.getClass() ) ) {
-			Serializable id = getId( entity, event );
-			if (id == null) {
-				log.warn(
-						"Unable to reindex entity on collection change, id cannot be extracted: {}",
-						event.getAffectedOwnerEntityName()
-				);
-				return;
-			}
-			processWork( entity, id, WorkType.COLLECTION, event );
-		}
-	}
-
-	private Serializable getId(Object entity, AbstractCollectionEvent event) {
-		Serializable id = event.getAffectedOwnerIdOrNull();
-		if ( id == null ) {
-			//most likely this recovery is unnecessary since Hibernate Core probably try that 
-			EntityEntry entityEntry = event.getSession().getPersistenceContext().getEntry( entity );
-			id = entityEntry == null ? null : entityEntry.getId();
-		}
-		return id;
-	}
-
+	/**
+	 * @deprecated As of release 3.1.0, replaced by {@link FullTextIndexEventListener#onPostRemoveCollection(PostCollectionRemoveEvent)}
+	 */
+	@Deprecated 	
 	public void onPostRemoveCollection(PostCollectionRemoveEvent event) {
 		processCollectionEvent( event );
 	}
 
+	/**
+	 * @deprecated As of release 3.1.0, replaced by {@link FullTextIndexEventListener#onPostUpdateCollection(PostCollectionUpdateEvent)}
+	 */
+	@Deprecated 	
 	public void onPostUpdateCollection(PostCollectionUpdateEvent event) {
 		processCollectionEvent( event );
 	}

Modified: search/trunk/src/java/org/hibernate/search/event/FullTextIndexEventListener.java
===================================================================
--- search/trunk/src/java/org/hibernate/search/event/FullTextIndexEventListener.java	2008-07-04 15:54:55 UTC (rev 14875)
+++ search/trunk/src/java/org/hibernate/search/event/FullTextIndexEventListener.java	2008-07-04 16:01:28 UTC (rev 14876)
@@ -4,8 +4,16 @@
 import java.io.Serializable;
 
 import org.hibernate.cfg.Configuration;
+import org.hibernate.engine.EntityEntry;
+import org.hibernate.event.AbstractCollectionEvent;
 import org.hibernate.event.AbstractEvent;
 import org.hibernate.event.Initializable;
+import org.hibernate.event.PostCollectionRecreateEvent;
+import org.hibernate.event.PostCollectionRecreateEventListener;
+import org.hibernate.event.PostCollectionRemoveEvent;
+import org.hibernate.event.PostCollectionRemoveEventListener;
+import org.hibernate.event.PostCollectionUpdateEvent;
+import org.hibernate.event.PostCollectionUpdateEventListener;
 import org.hibernate.event.PostDeleteEvent;
 import org.hibernate.event.PostDeleteEventListener;
 import org.hibernate.event.PostInsertEvent;
@@ -18,6 +26,8 @@
 import org.hibernate.search.engine.DocumentBuilder;
 import org.hibernate.search.engine.SearchFactoryImplementor;
 import org.hibernate.search.impl.SearchFactoryImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * This listener supports setting a parent directory for all generated index files.
@@ -30,9 +40,13 @@
 //TODO work on sharing the same indexWriters and readers across a single post operation...
 //TODO implement and use a LockableDirectoryProvider that wraps a DP to handle the lock inside the LDP
 @SuppressWarnings("serial")
-public class FullTextIndexEventListener implements PostDeleteEventListener, PostInsertEventListener,
-		PostUpdateEventListener, Initializable, Destructible {
+public class FullTextIndexEventListener implements PostDeleteEventListener,
+		PostInsertEventListener, PostUpdateEventListener,
+		PostCollectionRecreateEventListener, PostCollectionRemoveEventListener,
+		PostCollectionUpdateEventListener, Initializable, Destructible {
 
+	private static final Logger log = LoggerFactory.getLogger(FullTextIndexEventListener.class);
+	
 	protected boolean used;
 	protected SearchFactoryImplementor searchFactoryImplementor;
 
@@ -89,4 +103,47 @@
 	public void cleanup() {
 		searchFactoryImplementor.close();
 	}
+	
+	public void onPostRecreateCollection(PostCollectionRecreateEvent event) {
+		processCollectionEvent( event );
+	}
+	
+	public void onPostRemoveCollection(PostCollectionRemoveEvent event) {
+		processCollectionEvent( event );
+	}
+
+	public void onPostUpdateCollection(PostCollectionUpdateEvent event) {
+		processCollectionEvent( event );
+	}
+	
+	protected void processCollectionEvent(AbstractCollectionEvent event) {
+		Object entity = event.getAffectedOwnerOrNull();
+		if ( entity == null ) {
+			//Hibernate cannot determine every single time the owner especially in case detached objects are involved
+			// or property-ref is used
+			//Should log really but we don't know if we're interested in this collection for indexing
+			return;
+		}
+		if ( used && searchFactoryImplementor.getDocumentBuilders().containsKey( entity.getClass() ) ) {
+			Serializable id = getId( entity, event );
+			if (id == null) {
+				log.warn(
+						"Unable to reindex entity on collection change, id cannot be extracted: {}",
+						event.getAffectedOwnerEntityName()
+				);
+				return;
+			}
+			processWork( entity, id, WorkType.COLLECTION, event );
+		}
+	}
+
+	private Serializable getId(Object entity, AbstractCollectionEvent event) {
+		Serializable id = event.getAffectedOwnerIdOrNull();
+		if ( id == null ) {
+			//most likely this recovery is unnecessary since Hibernate Core probably try that 
+			EntityEntry entityEntry = event.getSession().getPersistenceContext().getEntry( entity );
+			id = entityEntry == null ? null : entityEntry.getId();
+		}
+		return id;
+	}
 }

Modified: search/trunk/src/test/log4j.properties
===================================================================
--- search/trunk/src/test/log4j.properties	2008-07-04 15:54:55 UTC (rev 14875)
+++ search/trunk/src/test/log4j.properties	2008-07-04 16:01:28 UTC (rev 14876)
@@ -5,11 +5,17 @@
 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
+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
 
+### direct messages to socket - chainsaw ###
+log4j.appender.socket=org.apache.log4j.net.SocketAppender
+log4j.appender.socket.remoteHost=localhost
+log4j.appender.socket.port=4560
+log4j.appender.socket.locationInfo=true
+
 ### set log levels - for more verbose logging change 'info' to 'debug' ###
 
 log4j.rootLogger=warn, stdout
@@ -45,4 +51,4 @@
 #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
+#log4j.logger.org.hibernate.cfg.Ejb3Column=info




More information about the hibernate-commits mailing list