[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