Java Mailing List Archive

http://www.gg3721.com/

Home » Hibernate Commits List »

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

hibernate-commits

2008-07-04


Author LoginPost Reply
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)
@@(protected) @@
     </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)
@@(protected) @@
// $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
*/
+@(protected)")
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 {@(protected))}
+   */
+  @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 {@(protected))}
+   */
+  @Deprecated  
 public void onPostRemoveCollection(PostCollectionRemoveEvent event) {
   processCollectionEvent( event );
 }

+  /**
+   * @deprecated As of release 3.1.0, replaced by {@(protected))}
+   */
+  @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)
@@(protected) @@
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;
@@(protected) @@
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.
@@(protected) @@
//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;

@@(protected) @@
 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)
@@(protected) @@
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
@@(protected) @@
#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

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