knguyen     2005/11/10 11:31:38 CET

  Modified files:
    core/src/conf/metadata jahia.xml 
    core/src/java/org/jahia/content ContentMetadataFacade.java 
                                    ContentObject.java 
    core/src/java/org/jahia/engines/metadata Metadata_Engine.java 
    core/src/java/org/jahia/engines/shared Category_Field.java 
    core/src/java/org/jahia/services/fields ContentField.java 
    core/src/java/org/jahia/services/importexport 
                                                  ImportHandler.java 
    core/src/java/org/jahia/services/metadata MetadataAdvice.java 
                                              MetadataBaseService.java 
                                              MetadataService.java 
    core/src/java/org/jahia/services/search 
                                            JahiaSearchBaseService.java 
    core/src/webapp/WEB-INF/etc/spring 
                                       applicationcontext-metadata.xml 
  Added files:
    core/src/java/org/jahia/services/metadata 
                                              MetadataEventListener.java 
  Log:
  - improving metadata listeners
  
  Revision  Changes    Path
  1.5       +3 -3      jahia/core/src/conf/metadata/jahia.xml
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/conf/metadata/jahia.xml.diff?r1=1.4&r2=1.5&f=h
  1.10      +0 -3      
jahia/core/src/java/org/jahia/content/ContentMetadataFacade.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/content/ContentMetadataFacade.java.diff?r1=1.9&r2=1.10&f=h
  1.26      +0 -37     jahia/core/src/java/org/jahia/content/ContentObject.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/content/ContentObject.java.diff?r1=1.25&r2=1.26&f=h
  1.9       +0 -5      
jahia/core/src/java/org/jahia/engines/metadata/Metadata_Engine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/metadata/Metadata_Engine.java.diff?r1=1.8&r2=1.9&f=h
  1.7       +1 -1      
jahia/core/src/java/org/jahia/engines/shared/Category_Field.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/shared/Category_Field.java.diff?r1=1.6&r2=1.7&f=h
  1.38      +22 -0     
jahia/core/src/java/org/jahia/services/fields/ContentField.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/fields/ContentField.java.diff?r1=1.37&r2=1.38&f=h
  1.41      +2 -2      
jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java.diff?r1=1.40&r2=1.41&f=h
  1.11      +8 -504    
jahia/core/src/java/org/jahia/services/metadata/MetadataAdvice.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/metadata/MetadataAdvice.java.diff?r1=1.10&r2=1.11&f=h
  1.11      +12 -49    
jahia/core/src/java/org/jahia/services/metadata/MetadataBaseService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/metadata/MetadataBaseService.java.diff?r1=1.10&r2=1.11&f=h
  1.1       +402 -0    
jahia/core/src/java/org/jahia/services/metadata/MetadataEventListener.java (new)
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/metadata/MetadataEventListener.java?rev=1.1&content-type=text/plain
  1.6       +0 -19     
jahia/core/src/java/org/jahia/services/metadata/MetadataService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/metadata/MetadataService.java.diff?r1=1.5&r2=1.6&f=h
  1.28      +2 -3      
jahia/core/src/java/org/jahia/services/search/JahiaSearchBaseService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/search/JahiaSearchBaseService.java.diff?r1=1.27&r2=1.28&f=h
  1.19      +0 -26     
jahia/core/src/webapp/WEB-INF/etc/spring/applicationcontext-metadata.xml
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/webapp/WEB-INF/etc/spring/applicationcontext-metadata.xml.diff?r1=1.18&r2=1.19&f=h
  
  
  
  Index: jahia.xml
  ===================================================================
  RCS file: /home/cvs/repository/jahia/core/src/conf/metadata/jahia.xml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- jahia.xml 4 Nov 2005 18:40:30 -0000       1.4
  +++ jahia.xml 10 Nov 2005 10:31:35 -0000      1.5
  @@ -52,12 +52,12 @@
         <name>url</name>
         <value>@URL@</value>
       </parameter>
  -
  +     
       <parameter>
         <name>defaultAutoCommit</name>
  -      <value>false</value>
  +      <value>true</value>
       </parameter>
  -        
  +                             
     </ResourceParams>
   
   </Context>
  
  
  
  Index: ContentMetadataFacade.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/content/ContentMetadataFacade.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- ContentMetadataFacade.java        3 Nov 2005 13:22:21 -0000       1.9
  +++ ContentMetadataFacade.java        10 Nov 2005 10:31:35 -0000      1.10
  @@ -694,9 +694,6 @@
                   // save the field
                   ServicesRegistry.getInstance().getJahiaFieldService().
                       saveField(field, contentObject.getAclID(), jParams);
  -                // must create a metadata relashion ship
  -                
contentObject.addMetadata(ContentField.getField(field.getID()),
  -                                             jParams.getUser());
                   int fieldPos = fieldOrder.indexOf(fieldDef.getName());
                   logger.debug("JahiaContainer.fieldsStructureCheck : Field " +
                                field.getDefinition().getName() +
  
  
  
  Index: ContentObject.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/content/ContentObject.java,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- ContentObject.java        9 Nov 2005 11:02:41 -0000       1.25
  +++ ContentObject.java        10 Nov 2005 10:31:35 -0000      1.26
  @@ -1413,16 +1413,6 @@
       }
   
       /**
  -     * Create a "metadata" strutural relationship with this one
  -     *
  -     * @throws JahiaException
  -     */
  -    public void addMetadata(JahiaObject metadata, JahiaUser user)
  -    throws JahiaException {
  -        addMetadata(this, metadata, user);
  -    }
  -
  -    /**
        * Return an Array of ContentField that have a core "metadata" strutural 
relationship
        * with the given objectKey. @see StructuralRelationship.METADATA_LINK
        *
  @@ -1459,33 +1449,6 @@
                   new Integer(metadataObjectKey.getIdInType()));
       }
   
  -    /**
  -     * Create a "metadata" strutural relationship with this one
  -     *
  -     * @param obj
  -     * @throws JahiaException
  -     */
  -    public static void addMetadata(JahiaObject obj, JahiaObject metadata,
  -                                   JahiaUser user)
  -    throws JahiaException {
  -        if ( obj.getObjectKey().equals(metadata.getObjectKey()) ){
  -            return;
  -        }
  -        Date now = new Date();
  -       ObjectLink.createLink (metadata.getObjectKey(),
  -                             obj.getObjectKey(),
  -                             StructuralRelationship.METADATA_LINK,
  -                             1,
  -                             now,
  -                             user.getUserKey(),
  -                             now,
  -                             user.getUserKey(),
  -                             new HashMap (),
  -                             new HashMap (),
  -                             new HashMap ());
  -    }
  -
  -
       public void addPickerObject(ProcessingContext jParams, ContentObject 
object) {
           if (this.getClass() == object.getClass()) {
               Date now = new Date();
  
  
  
  Index: Metadata_Engine.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/metadata/Metadata_Engine.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- Metadata_Engine.java      3 Nov 2005 13:22:23 -0000       1.8
  +++ Metadata_Engine.java      10 Nov 2005 10:31:36 -0000      1.9
  @@ -507,11 +507,6 @@
                               ServicesRegistry.getInstance 
().getJahiaFieldService ().
                                       saveField (field, contentObject.getAclID 
(),
                                               jParams);
  -                            // must create a metadata relashion ship
  -                            contentObject.addMetadata(
  -                                 ContentField.getField(field.getID()),
  -                                 jParams.getUser());
  -
                           }
                           engineMap.put (ENGINE_NAME + "." + "theField", 
field);
                           EngineToolBox.getInstance().processFieldTypes 
(field, theContainer, ENGINE_NAME, jParams, mode, engineMap);
  
  
  
  Index: Category_Field.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/shared/Category_Field.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Category_Field.java       3 Nov 2005 13:22:23 -0000       1.6
  +++ Category_Field.java       10 Nov 2005 10:31:36 -0000      1.7
  @@ -501,7 +501,7 @@
   
       private ObjectKey findCategoryTargetObjectKey(JahiaField theField) 
throws JahiaException {
           ObjectKey objectKey = null;
  -        boolean isMetadataField = 
ServicesRegistry.getInstance().getMetadataService().isMetadataField(theField);
  +        boolean isMetadataField = theField.getIsMetadata();
           if (isMetadataField) {
               JahiaObject ownerObject = 
ContentObject.getContentObjectFromMetadata(new 
ContentFieldKey(theField.getID()));
               if (ownerObject != null) {
  
  
  
  Index: ContentField.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/fields/ContentField.java,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- ContentField.java 9 Nov 2005 11:02:42 -0000       1.37
  +++ ContentField.java 10 Nov 2005 10:31:36 -0000      1.38
  @@ -2053,4 +2053,26 @@
           }
           return super.checkAccess(user, permission);
       }
  +
  +    public String getPagePathString(ProcessingContext context,
  +                                    boolean ignoreMetadata) {
  +        String pagePath = "";
  +        ContentPage contentPage = null;
  +        try {
  +            if ( this.isMetadata() ){
  +                ContentObject contentObject = 
getContentObjectFromMetadata(this.getObjectKey());
  +                if ( contentObject != null ){
  +                    pagePath = 
contentObject.getPagePathString(context,ignoreMetadata);
  +                }
  +            } else {
  +                contentPage = this.getPage();
  +                if ( contentPage != null ){
  +                    pagePath = 
contentPage.getPagePathString(context,ignoreMetadata);
  +                }
  +            }
  +        } catch ( Throwable t ){
  +            logger.debug("Exception occured getting pagePath for 
contentObject " + this.getObjectKey(),t);
  +        }
  +        return pagePath;
  +    }
   }
  
  
  
  Index: ImportHandler.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java,v
  retrieving revision 1.40
  retrieving revision 1.41
  diff -u -r1.40 -r1.41
  --- ImportHandler.java        9 Nov 2005 09:34:12 -0000       1.40
  +++ ImportHandler.java        10 Nov 2005 10:31:36 -0000      1.41
  @@ -825,9 +825,9 @@
                   String metadataName = jcd.getName();
                   String value;
                   if (CoreMetadataConstant.CREATION_DATE.equals(metadataName)) 
{
  -                    value = attr.getValue(ImportExportService.JCR_URI, 
"created");
  +                    value = attr.getValue("jcr:created");
                   } else if 
(CoreMetadataConstant.LAST_MODIFICATION_DATE.equals(metadataName)) {
  -                    value = attr.getValue(ImportExportService.JCR_URI, 
"lastModified");
  +                    value = attr.getValue("jcr:lastModified");
                   } else if 
(CoreMetadataConstant.PAGE_PATH.equals(metadataName)) {
                       value = object.getPagePathString(jParams,true);          
  
                   } else {
  
  
  
  Index: MetadataEventListener.java
  ====================================================================
  package org.jahia.services.metadata;
  
  import org.jahia.data.events.JahiaEventListenerInterface;
  import org.jahia.data.events.JahiaEvent;
  import org.jahia.data.fields.LoadFlags;
  import org.jahia.content.events.ContentActivationEvent;
  import org.jahia.content.events.ContentUndoStagingEvent;
  import org.jahia.content.events.ContentObjectDeleteEvent;
  import org.jahia.content.events.ContentObjectRestoreVersionEvent;
  import org.jahia.content.ContentMetadataFacade;
  import org.jahia.content.ContentObject;
  import org.jahia.content.ObjectKey;
  import org.jahia.services.fields.ContentField;
  import org.jahia.services.sites.JahiaSite;
  import org.jahia.services.workflow.WorkflowEvent;
  import org.jahia.services.usermanager.JahiaUser;
  import org.jahia.services.version.StateModificationContext;
  import org.jahia.services.timebasedpublishing.RetentionRuleEvent;
  import org.jahia.registries.ServicesRegistry;
  import org.jahia.params.ProcessingContext;
  
  import java.util.Iterator;
  import java.util.Set;
  import java.util.HashSet;
  
  /**
   * Created by IntelliJ IDEA.
   * User: hollis
   * Date: 8 nov. 2005
   * Time: 10:00:48
   * To change this template use File | Settings | File Templates.
   */
  public class MetadataEventListener implements JahiaEventListenerInterface {
  
      private static org.apache.log4j.Logger logger =
              org.apache.log4j.Logger.getLogger(MetadataEventListener.class);
  
      private boolean isMetadata = false;
  
      public MetadataEventListener(){
      }
  
      public boolean isMetadata() {
          return isMetadata;
      }
  
      public void setMetadata(boolean metadata) {
          isMetadata = metadata;
      }
  
      public void beforeServicesLoad(JahiaEvent je) {
          return;
      }
  
      public void afterServicesLoad(JahiaEvent je) {
          return;
      }
  
      /**
       * Event fired before WorkflowService.activate(...)
       *
       * @param theEvent ContentActivationEvent
       */
      public void beforeGroupActivation (ContentActivationEvent theEvent){
          return;
      }
  
      public void beforeStagingContentIsDeleted(JahiaEvent je ){
          return;
      }
  
      /**
       * Event fired when a template is updated
       * @param theEvent contains the currently edited template
       */
      public void templateUpdated(JahiaEvent theEvent){
          return;
      }
  
      /**
       * JahiaEvent(JahiaSaveVersion,ProcessingContext,ContentField)
       *
       * @param je
       */
      public void beforeFieldActivation(JahiaEvent je) {
          ContentField cf = (ContentField) je.getObject();
          if (cf != null) {
              try {
                  if ( cf.isMetadata() ){
                      setMetadata(true);
                      return;
                  }
                  // take care to create all metadatas
                  try {
                      JahiaSite site = ServicesRegistry.getInstance().
                              getJahiaSitesService().getSite(cf.
                              getSiteID());
  
                      // try to create all missing metadata
                      ContentMetadataFacade cmf =
                              new ContentMetadataFacade(cf.getObjectKey(),
                                      LoadFlags.ALL,
                                      je.getProcessingContext(),
                                      true, false);
                  } catch (Throwable t) {
                      logger.debug(
                              "Exception loading metadata for content object " +
                                      cf.getObjectKey(), t);
                  }
              } catch (Throwable t) {
                  logger.debug(t);
              }
          }
      }
  
      public void fieldAdded(JahiaEvent je) {
          return;
      }
  
      public void fieldUpdated(JahiaEvent je) {
          return;
      }
  
      public void fieldDeleted(JahiaEvent je) {
          return;
      }
  
      /**
       * JahiaEvent(JahiaSaveVersion,ProcessingContext,JahiaContainer)
       *
       * @param je
       */
      public void beforeContainerActivation(JahiaEvent je) {
          return;
      }
  
      public void addContainerEngineBeforeSave(JahiaEvent je) {
          return;
      }
  
      public void addContainerEngineAfterInit(JahiaEvent je) {
          return;
      }
  
      public void updateContainerEngineBeforeSave(JahiaEvent je) {
          return;
      }
  
      public void updateContainerEngineAfterInit(JahiaEvent je) {
          return;
      }
  
      public void containerAdded(JahiaEvent je) {
          return;
      }
  
      public void containerUpdated(JahiaEvent je) {
          return;
      }
  
      public void containerDeleted(JahiaEvent je) {
          return;
      }
  
      public void pageAdded(JahiaEvent je) {
          return;
      }
  
      public void pageLoaded(JahiaEvent je) {
          return;
      }
  
      public void pagePropertiesSet(JahiaEvent je) {
          return;
      }
  
      public void containerListPropertiesSet(JahiaEvent je) {
          return;
      }
  
      public void rightsSet(JahiaEvent je) {
          return;
      }
  
      public void userLoggedIn(JahiaEvent je) {
          return;
      }
  
      public void userLoggedOut(JahiaEvent je) {
          return;
      }
  
      /**
       * Event fired after the Metadata_Engine has been initialized ( engineMap 
init )
       * and before processing last and current engine request.
       * The Event source object is the calling Metadata_Engine, the event 
object is a
       * ContentMetadataFacade instance.
       *
       * @param theEvent JahiaEvent
       */
      public void metadataEngineAfterInit(JahiaEvent theEvent) {
          return;
      }
  
      /**
       * Event fired before the Metadata_Engine start to save the metadata 
fields for
       * the current content metadata facade
       * The Event source object is the calling Metadata_Engine, the event 
object is a
       * ContentMetadataFacade instance.
       *
       * @param theEvent JahiaEvent
       */
      public void metadataEngineBeforeSave(JahiaEvent theEvent) {
          return;
      }
  
      /**
       * Event fired after the Metadata_Engine has saved the metadata fields for
       * the current content object
       * The Event source object is the calling Metadata_Engine, the event 
object is
       * the ObjectKey instance of the content object.
       *
       * @param theEvent JahiaEvent
       */
      public void metadataEngineAfterSave(JahiaEvent theEvent) {
          return;
      }
  
      /**
       * Event fired once a content object has been first created ( stored in 
persistence )
       * The Event source object is the JahiaUser
       * The Object is the ContentObject created.
       *
       * @param theEvent JahiaEvent
       */
      public void contentObjectCreated(JahiaEvent theEvent) {
          try {
  
              ContentObject co = (ContentObject) theEvent.getObject();
              if (co == null) {
                  return;
              }
              if ( co instanceof ContentField && 
((ContentField)co).isMetadata() ){
                  setMetadata(true);
                  return;
              }
  
              ProcessingContext jParams = theEvent.getProcessingContext();
              if (jParams != null) {
                  // ensure to create metadata for this content object
                  ContentMetadataFacade metadataFacade = new
                          ContentMetadataFacade(co.getObjectKey(),
                          LoadFlags.ALL,
                          jParams,
                          true,
                          true);
              }
  
          } catch (Throwable t) {
              logger.debug("Exception processing event contentActivation ", t);
          }
  
      }
  
      /**
       * Event fired once a content object has been updated ( changes stored in 
persistence )
       *
       * @param theEvent JahiaEvent
       */
      public void contentObjectUpdated(JahiaEvent theEvent) {
          try {
  
              ContentObject co = (ContentObject) theEvent.getObject();
              if (co == null) {
                  return;
              }
              if ( co instanceof ContentField && 
((ContentField)co).isMetadata() ){
                  setMetadata(true);
                  return;
              }
          } catch (Throwable t) {
              logger.debug("Exception processing event contentActivation ", t);
          }
      }
  
      public void fileManagerAclChanged(JahiaEvent theEvent) {
          return;
      }
  
      public void objectChanged(WorkflowEvent theEvent) {
          handleObjectChanged(theEvent);
      }
  
      public void contentObjectUndoStaging (ContentUndoStagingEvent theEvent) {
          handleObjectChanged(theEvent);
      }
  
      protected void handleObjectChanged(JahiaEvent theEvent){
          try {
              ContentObject co = (ContentObject) theEvent.getObject();
              if (co != null &&
                      co instanceof ContentField && 
((ContentField)co).isMetadata() ){
                  setMetadata(true);
                  return;
              }
  
              JahiaUser user = null;
              if ( theEvent instanceof WorkflowEvent ){
                  user = ((WorkflowEvent)theEvent).getUser();
              } else {
                  user = theEvent.getProcessingContext().getUser();
              }
  
              // check if the content object still exist
              try {
                  ContentObject sourceObject = (ContentObject) 
theEvent.getObject();
                  if (sourceObject.getEntryStates().size() == 0) {
                      // doesn't exist anymore, so remove all metadata
                      Iterator iterator = 
sourceObject.getMetadatas().iterator();
                      ContentField contentField = null;
                      Set languageCodes = new HashSet();
                      languageCodes.add(ContentObject.SHARED_LANGUAGE);
                      while (iterator.hasNext()) {
                          contentField = (ContentField) iterator.next();
                          try {
                              StateModificationContext smc
                                      = new 
StateModificationContext(contentField.getObjectKey(),
                                      languageCodes);
                              contentField.markLanguageForDeletion(user,
                                      ContentObject.SHARED_LANGUAGE,
                                      smc);
                          } catch (Throwable t) {
                              logger.debug(t);
                          }
                      }
                      return;
                  }
              } catch (Throwable t) {
                  logger.debug(t);
              }
          } catch (Throwable t) {
              logger.debug("Exception processing event contentActivation ", t);
          }
      }
  
      public void contentActivation(ContentActivationEvent theEvent) {
          try {
              ObjectKey objectKey = (ObjectKey) theEvent.getObject();
              if (objectKey != null) {
                  // check is this content object is not a metadata
  
                  ContentObject co = 
ContentObject.getContentObjectInstance(objectKey);
                  if (co instanceof ContentField && 
((ContentField)co).isMetadata() ) {
                      setMetadata(true);
                      return;
                  }
                  try {
                      /*
                      // try to create all missing metadata
                      ContentMetadataFacade cmf =
                        new ContentMetadataFacade(objectKey,
                                                LoadFlags.ALL,
                                                theEvent.getParams(),
                                                true,false);
                       */
                  } catch (Throwable t) {
                      logger.debug("Exception loading metadata for content 
object " + objectKey);
                  }
              }
          } catch (Throwable t) {
              logger.debug("Exception processing event contentActivation ", t);
          }
      }
  
      /**
       * Event fired to notifying a retention rule' state change
       *
       * @param theEvent
       */
      public void timeBasedPublishingEvent( RetentionRuleEvent theEvent ){
          return;
      }
  
      /**
       * Event fired on content object delete
       *
       * @param theEvent JahiaEvent
       */
      public void contentObjectDelete (ContentObjectDeleteEvent theEvent){
          handleObjectChanged(theEvent);
      }
  
      /**
       * Event fired on content object restore version
       *
       * @param theEvent JahiaEvent
       */
      public void contentObjectRestoreVersion (ContentObjectRestoreVersionEvent 
theEvent){
          handleObjectChanged(theEvent);
      }
  
  }
  
  
  
  Index: MetadataAdvice.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/metadata/MetadataAdvice.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- MetadataAdvice.java       3 Nov 2005 13:22:27 -0000       1.10
  +++ MetadataAdvice.java       10 Nov 2005 10:31:37 -0000      1.11
  @@ -2,36 +2,17 @@
   
   import java.lang.reflect.InvocationTargetException;
   import java.lang.reflect.Method;
  +import java.lang.reflect.Proxy;
   import java.util.ArrayList;
   import java.util.HashMap;
  -import java.util.HashSet;
   import java.util.Iterator;
  -import java.util.Set;
   
   import org.aopalliance.intercept.MethodInterceptor;
   import org.aopalliance.intercept.MethodInvocation;
  -import org.jahia.content.*;
  -import org.jahia.content.events.ContentActivationEvent;
  -import org.jahia.content.events.ContentUndoStagingEvent;
  -import org.jahia.content.events.ContentObjectDeleteEvent;
  -import org.jahia.content.events.ContentObjectRestoreVersionEvent;
   import org.jahia.data.events.JahiaEvent;
   import org.jahia.data.events.JahiaEventListenerInterface;
   import org.jahia.data.events.JahiaEventListener;
  -import org.jahia.data.fields.JahiaFieldDefinition;
  -import org.jahia.data.fields.LoadFlags;
   import org.jahia.exceptions.JahiaException;
  -import org.jahia.params.ProcessingContext;
  -import org.jahia.registries.ServicesRegistry;
  -import org.jahia.services.fields.ContentField;
  -import org.jahia.services.sites.JahiaSite;
  -import org.jahia.services.version.StateModificationContext;
  -import org.jahia.services.workflow.WorkflowEvent;
  -import org.jahia.services.containers.ContentContainer;
  -import org.jahia.services.containers.ContentContainerList;
  -import org.jahia.services.usermanager.JahiaUser;
  -import org.jahia.services.timebasedpublishing.RetentionRuleEvent;
  -import org.jahia.services.pages.ContentPage;
   
   
   /**
  @@ -44,17 +25,13 @@
    * @version 1.0
    */
   
  -public class MetadataAdvice implements JahiaEventListenerInterface, 
MethodInterceptor {
  +public class MetadataAdvice extends JahiaEventListener implements 
MethodInterceptor {
   
       private static org.apache.log4j.Logger logger =
               org.apache.log4j.Logger.getLogger(MetadataAdvice.class);
   
       protected HashMap listenersMap = new HashMap();
   
  -    protected HashMap eventWorkflowMappings = new HashMap();
  -
  -    protected HashMap eventOnMetadata = new HashMap();
  -
       public HashMap getListenersMap() {
           checkProxy();
           return this.listenersMap;
  @@ -64,22 +41,10 @@
           this.listenersMap = listenersMap;
       }
   
  -    public HashMap getEventWorkflowMappings() {
  -        checkProxy();
  -        return this.eventWorkflowMappings;
  -    }
  -
  -    public void setEventWorkflowMappings(HashMap eventWorkflowMappings) {
  -        this.eventWorkflowMappings = eventWorkflowMappings;
  -    }
  -
       private void checkProxy() {
           if (this.listenersMap == null) {
               this.listenersMap = new HashMap();
           }
  -        if (this.eventWorkflowMappings == null) {
  -            this.eventWorkflowMappings = new HashMap();
  -        }
       }
   
       public Object invoke(MethodInvocation invocation) throws Throwable {
  @@ -92,12 +57,11 @@
               Object[] args = invocation.getArguments();
   
               JahiaEvent event = (JahiaEvent) args[0];
  -            // invoke this listener first
  -            invokeListener(this, methodName, event);
  +            MetadataEventListener eventListener = new 
MetadataEventListener();
   
  -            boolean eventOnMetadata = 
this.eventOnMetadata.containsKey(String.valueOf(event.getEventTime()));
  -
  -            if (!eventOnMetadata) {
  +            // invoke this listener first
  +            invokeListener(eventListener, methodName, event);
  +            if (!eventListener.isMetadata()) {
                   event = (JahiaEvent) args[0];
                   // then invoke registered listener
                   Iterator iterator = listeners.iterator();
  @@ -106,474 +70,12 @@
                       listener = (JahiaEventListenerInterface) iterator.next();
                       invokeListener(listener, methodName, event);
                   }
  -
  -                /* It is not very efficient to activate metadata here
  -                // post listener invocation
  -                if (methodName.equals("contentActivation")) {
  -                    this.activateMetadata((ContentActivationEvent) event);
  -                }*/
  -            } else {
  -                // do not progagate event , when it happened on a Metadata 
content
  -                
this.eventOnMetadata.remove(String.valueOf(event.getEventTime()));
               }
           }
           Object rval = invocation.proceed();
           return rval;
       }
   
  -    public void beforeServicesLoad(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void afterServicesLoad(JahiaEvent je) {
  -        return;
  -    }
  -
  -    /**
  -     * Event fired before WorkflowService.activate(...)
  -     *
  -     * @param theEvent ContentActivationEvent
  -     */
  -    public void beforeGroupActivation (ContentActivationEvent theEvent){
  -        return;
  -    }
  -
  -    public void beforeStagingContentIsDeleted(JahiaEvent je ){
  -        return;
  -    }
  -
  -    /**
  -     * Event fired when a template is updated
  -     * @param theEvent contains the currently edited template
  -     */
  -    public void templateUpdated(JahiaEvent theEvent){
  -        return;
  -    }
  -
  -    /**
  -     * JahiaEvent(JahiaSaveVersion,ProcessingContext,ContentField)
  -     *
  -     * @param je
  -     */
  -    public void beforeFieldActivation(JahiaEvent je) {
  -        ContentField cf = (ContentField) je.getObject();
  -        if (cf != null) {
  -            try {
  -                // check is this content object is not a metadata
  -                ContentDefinition contentDef = 
ContentDefinition.getContentDefinitionInstance(cf.
  -                        getDefinitionKey(null));
  -                if (contentDef instanceof JahiaFieldDefinition &&
  -                        (((JahiaFieldDefinition) 
contentDef).getIsMetadata())) {
  -                    
this.eventOnMetadata.put(String.valueOf(je.getEventTime()), Boolean.TRUE);
  -                } else {
  -                    // take care to create all metadatas
  -                    try {
  -                        JahiaSite site = ServicesRegistry.getInstance().
  -                                getJahiaSitesService().getSite(cf.
  -                                getSiteID());
  -
  -                        // try to create all missing metadata
  -                        ContentMetadataFacade cmf =
  -                                new ContentMetadataFacade(cf.getObjectKey(),
  -                                        LoadFlags.ALL,
  -                                        je.getProcessingContext(),
  -                                        true, false);
  -                    } catch (Throwable t) {
  -                        logger.debug(
  -                                "Exception loading metadata for content 
object " +
  -                                        cf.getObjectKey(), t);
  -                    }
  -                }
  -            } catch (Throwable t) {
  -                logger.debug(t);
  -            }
  -        }
  -    }
  -
  -    public void fieldAdded(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void fieldUpdated(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void fieldDeleted(JahiaEvent je) {
  -        return;
  -    }
  -
  -    /**
  -     * JahiaEvent(JahiaSaveVersion,ProcessingContext,JahiaContainer)
  -     *
  -     * @param je
  -     */
  -    public void beforeContainerActivation(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void addContainerEngineBeforeSave(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void addContainerEngineAfterInit(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void updateContainerEngineBeforeSave(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void updateContainerEngineAfterInit(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void containerAdded(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void containerUpdated(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void containerDeleted(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void pageAdded(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void pageLoaded(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void pagePropertiesSet(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void containerListPropertiesSet(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void rightsSet(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void userLoggedIn(JahiaEvent je) {
  -        return;
  -    }
  -
  -    public void userLoggedOut(JahiaEvent je) {
  -        return;
  -    }
  -
  -    /**
  -     * Event fired after the Metadata_Engine has been initialized ( 
engineMap init )
  -     * and before processing last and current engine request.
  -     * The Event source object is the calling Metadata_Engine, the event 
object is a
  -     * ContentMetadataFacade instance.
  -     *
  -     * @param theEvent JahiaEvent
  -     */
  -    public void metadataEngineAfterInit(JahiaEvent theEvent) {
  -        return;
  -    }
  -
  -    /**
  -     * Event fired before the Metadata_Engine start to save the metadata 
fields for
  -     * the current content metadata facade
  -     * The Event source object is the calling Metadata_Engine, the event 
object is a
  -     * ContentMetadataFacade instance.
  -     *
  -     * @param theEvent JahiaEvent
  -     */
  -    public void metadataEngineBeforeSave(JahiaEvent theEvent) {
  -        return;
  -    }
  -
  -    /**
  -     * Event fired after the Metadata_Engine has saved the metadata fields 
for
  -     * the current content object
  -     * The Event source object is the calling Metadata_Engine, the event 
object is
  -     * the ObjectKey instance of the content object.
  -     *
  -     * @param theEvent JahiaEvent
  -     */
  -    public void metadataEngineAfterSave(JahiaEvent theEvent) {
  -        return;
  -    }
  -
  -    /**
  -     * Event fired once a content object has been first created ( stored in 
persistence )
  -     * The Event source object is the JahiaUser
  -     * The Object is the ContentObject created.
  -     *
  -     * @param theEvent JahiaEvent
  -     */
  -    public void contentObjectCreated(JahiaEvent theEvent) {
  -        try {
  -
  -            ContentObject co = (ContentObject) theEvent.getObject();
  -            if (co == null) {
  -                return;
  -            }
  -            ObjectKey objectKey = co.getObjectKey();
  -            if (objectKey != null) {
  -                // check is this content object is not a metadata
  -                ContentDefinition contentDef = ContentDefinition.
  -                        getContentDefinitionInstance(co.
  -                                getDefinitionKey(null));
  -                if (contentDef instanceof JahiaFieldDefinition &&
  -                        (((JahiaFieldDefinition) 
contentDef).getIsMetadata())) {
  -                    this.eventOnMetadata.put(String.valueOf(theEvent.
  -                            getEventTime()), Boolean.TRUE);
  -                    return;
  -                }
  -            }
  -
  -            ProcessingContext jParams = theEvent.getProcessingContext();
  -            if (jParams != null) {
  -                // ensure to create metadata for this content object
  -                ContentMetadataFacade metadataFacade = new
  -                        ContentMetadataFacade(co.getObjectKey(),
  -                        LoadFlags.ALL,
  -                        jParams,
  -                        true,
  -                        true);
  -            }
  -
  -        } catch (Throwable t) {
  -            logger.debug("Exception processing event contentActivation ", t);
  -        }
  -
  -    }
  -
  -    /**
  -     * Event fired once a content object has been updated ( changes stored 
in persistence )
  -     *
  -     * @param theEvent JahiaEvent
  -     */
  -    public void contentObjectUpdated(JahiaEvent theEvent) {
  -        try {
  -
  -            ContentObject co = (ContentObject) theEvent.getObject();
  -            if (co == null) {
  -                return;
  -            }
  -            ObjectKey objectKey = co.getObjectKey();
  -            if (objectKey != null) {
  -                // check is this content object is not a metadata
  -                ContentDefinition contentDef = ContentDefinition.
  -                        getContentDefinitionInstance(co.
  -                                getDefinitionKey(null));
  -                if (contentDef instanceof JahiaFieldDefinition &&
  -                        (((JahiaFieldDefinition) 
contentDef).getIsMetadata())) {
  -                    this.eventOnMetadata.put(String.valueOf(theEvent.
  -                            getEventTime()), Boolean.TRUE);
  -                    return;
  -                }
  -            }
  -        } catch (Throwable t) {
  -            logger.debug("Exception processing event contentActivation ", t);
  -        }
  -    }
  -
  -    public void fileManagerAclChanged(JahiaEvent theEvent) {
  -        return;
  -    }
  -
  -    public void objectChanged(WorkflowEvent theEvent) {
  -        handleObjectChanged(theEvent);
  -    }
  -
  -    public void contentObjectUndoStaging (ContentUndoStagingEvent theEvent) {
  -        handleObjectChanged(theEvent);
  -    }
  -
  -    protected void handleObjectChanged(JahiaEvent theEvent){
  -        try {
  -            ContentObject co = (ContentObject) theEvent.getObject();
  -            ObjectKey objectKey = co.getObjectKey();
  -            if (objectKey != null) {
  -                // check is this content object is not a metadata
  -                if (co instanceof ContentField) {
  -                    if (ServicesRegistry.getInstance().getMetadataService()
  -                            .isMetadataField((ContentField) co)) {
  -                        return;
  -                    }
  -                }
  -
  -                JahiaUser user = null;
  -                if ( theEvent instanceof WorkflowEvent ){
  -                    user = ((WorkflowEvent)theEvent).getUser();
  -                } else {
  -                    user = theEvent.getProcessingContext().getUser();
  -                }
  -
  -                // check if the content object still exist
  -                try {
  -                    ContentObject sourceObject = (ContentObject) 
theEvent.getObject();
  -                    if (sourceObject.getEntryStates().size() == 0) {
  -                        // doesn't exist anymore, so remove all metadata
  -                        Iterator iterator = 
ContentObject.getMetadatas(objectKey).iterator();
  -                        ContentField contentField = null;
  -                        Set languageCodes = new HashSet();
  -                        languageCodes.add(ContentObject.SHARED_LANGUAGE);
  -                        while (iterator.hasNext()) {
  -                            contentField = (ContentField) iterator.next();
  -                            try {
  -                                StateModificationContext smc
  -                                        = new 
StateModificationContext(contentField.getObjectKey(),
  -                                        languageCodes);
  -                                contentField.markLanguageForDeletion(user,
  -                                        ContentObject.SHARED_LANGUAGE,
  -                                        smc);
  -                            } catch (Throwable t) {
  -                                logger.debug(t);
  -                            }
  -                        }
  -                        return;
  -                    }
  -                } catch (Throwable t) {
  -                    logger.debug(t);
  -                }
  -            }
  -        } catch (Throwable t) {
  -            logger.debug("Exception processing event contentActivation ", t);
  -        }
  -    }
  -
  -    public void contentActivation(ContentActivationEvent theEvent) {
  -        try {
  -            ObjectKey objectKey = (ObjectKey) theEvent.getObject();
  -            if (objectKey != null) {
  -                // check is this content object is not a metadata
  -
  -                ContentObject co = 
ContentObject.getContentObjectInstance(objectKey);
  -                if (co instanceof ContentField) {
  -                    if (ServicesRegistry.getInstance().getMetadataService()
  -                            .isMetadataField((ContentField) co)) {
  -                        
this.eventOnMetadata.put(String.valueOf(theEvent.getEventTime()), Boolean.TRUE);
  -                        return;
  -                    }
  -                }
  -                try {
  -                    /*
  -                    // try to create all missing metadata
  -                    ContentMetadataFacade cmf =
  -                      new ContentMetadataFacade(objectKey,
  -                                              LoadFlags.ALL,
  -                                              theEvent.getParams(),
  -                                              true,false);
  -                     */
  -                } catch (Throwable t) {
  -                    logger.debug("Exception loading metadata for content 
object " + objectKey);
  -                }
  -            }
  -        } catch (Throwable t) {
  -            logger.debug("Exception processing event contentActivation ", t);
  -        }
  -    }
  -
  -    /**
  -     * Event fired to notifying a retention rule' state change
  -     *
  -     * @param theEvent
  -     */
  -    public void timeBasedPublishingEvent( RetentionRuleEvent theEvent ){
  -        return;
  -    }
  -
  -    /**
  -     * Event fired on content object delete
  -     *
  -     * @param theEvent JahiaEvent
  -     */
  -    public void contentObjectDelete (ContentObjectDeleteEvent theEvent){
  -        handleObjectChanged(theEvent);
  -    }
  -
  -    /**
  -     * Event fired on content object restore version
  -     *
  -     * @param theEvent JahiaEvent
  -     */
  -    public void contentObjectRestoreVersion 
(ContentObjectRestoreVersionEvent theEvent){
  -        handleObjectChanged(theEvent);
  -    }
  -
  -    private void activateMetadata(ContentActivationEvent theEvent) {
  -        try {
  -            ObjectKey objectKey = (ObjectKey) theEvent.getObject();
  -            if (objectKey != null) {
  -
  -                // check is this content object is not a metadata
  -                ContentObject co = 
ContentObject.getContentObjectInstance(objectKey);
  -                if (co instanceof ContentField) {
  -                    return;
  -                }
  -
  -                activateContentObjectMetadatas(co, theEvent);
  -
  -                // propagate to parent container list if need
  -                if ( co instanceof ContentContainer ){
  -                    ContentContainer container = (ContentContainer)co;
  -                    ContentContainerList ctnList = ContentContainerList
  -                            
.getContainerList(container.getParentContainerListID());
  -                    activateContentObjectMetadatas(ctnList,theEvent);
  -                }
  -
  -                // activate parent page metadatas
  -                if ( co instanceof PageReferenceableInterface ){
  -                    PageReferenceableInterface pageRefObj = 
(PageReferenceableInterface)co;
  -                    try {
  -                        ContentPage parentPage = pageRefObj.getPage();
  -                        if ( parentPage != null ){
  -                            
activateContentObjectMetadatas(parentPage,theEvent);
  -                        }
  -                    } catch ( Throwable t){
  -                        logger.debug("exception occured updating last modif 
date metadata",t);
  -                    }
  -                }
  -            }
  -        } catch (Throwable t) {
  -            logger.debug("Exception processing event contentActivation ", t);
  -        }
  -    }
  -
  -    private void activateContentObjectMetadatas(ContentObject contentObject,
  -                                                ContentActivationEvent 
theEvent){
  -        try {
  -            if (contentObject != null) {
  -                Iterator iterator = contentObject.getMetadatas().iterator();
  -                ContentField contentField = null;
  -                while (iterator.hasNext()) {
  -                    contentField = (ContentField) iterator.next();
  -                    try {
  -                        contentField.activate(theEvent.getLanguageCodes(),
  -                                theEvent.getVersioningActive(), 
theEvent.getSaveVersion(),
  -                                theEvent.getUser(), 
theEvent.getProcessingContext(), theEvent.getStateModifContext());
  -
  -                        // already handled by previous 
contentObject.activate() call
  -                        /*
  -                        try {
  -                            JahiaObject metadataOwner =
  -                                    
ServicesRegistry.getInstance().getMetadataService().getOwnerObjectOfMetadata(contentObject.getObjectKey());
  -                            
ServicesRegistry.getInstance().getJahiaSearchService()
  -                                    
.indexContentObject(metadataOwner.getObjectKey(), theEvent.getUser());
  -                        } catch (Throwable t) {
  -                            logger.debug("Exception occured when retrieving 
metadata owner for indexation", t);
  -                        }*/
  -                    } catch (Throwable t) {
  -                        logger.debug(t);
  -                    }
  -                }
  -            }
  -        } catch (Throwable t) {
  -            logger.debug("Exception processing event contentActivation ", t);
  -        }
  -    }
  -
       /**
        * wakes up a specific method on a given listener
        *
  @@ -623,4 +125,6 @@
                       JahiaException.WARNING_SEVERITY, iae);
           }
       }
  +
  +
   }
  
  
  
  Index: MetadataBaseService.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/metadata/MetadataBaseService.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- MetadataBaseService.java  3 Nov 2005 13:22:27 -0000       1.10
  +++ MetadataBaseService.java  10 Nov 2005 10:31:37 -0000      1.11
  @@ -40,9 +40,12 @@
   import org.jahia.exceptions.JahiaInitializationException;
   import org.jahia.registries.JahiaFieldDefinitionsRegistry;
   import org.jahia.services.fields.ContentField;
  +import org.jahia.services.usermanager.JahiaUser;
  +import org.jahia.services.usermanager.JahiaAdminUser;
   import org.jahia.settings.SettingsBean;
   import org.jahia.hibernate.manager.JahiaLinkManager;
   import org.jahia.hibernate.manager.SpringContextSingleton;
  +import org.jahia.bin.Jahia;
   import org.springframework.aop.framework.Advised;
   
   /**
  @@ -275,13 +278,21 @@
           ArrayList matchingMetadatas = 
getMatchingMetadatas(contentDefinition);
           ContentDefinition contentDef = null;
           ObjectKey objectKey = null;
  +        JahiaUser user = null;
  +        String userKey = "unknown";
  +        if ( Jahia.getThreadParamBean() != null ){
  +            user = Jahia.getThreadParamBean().getUser();
  +            if ( user != null ){
  +                userKey = user.getUserKey();
  +            }
  +        }
           for ( int i=0; i<matchingMetadatas.size(); i++ ){
               objectKey = (ObjectKey)matchingMetadatas.get(i);
               try {
                   contentDef = ContentDefinition.getContentDefinitionInstance(
                       objectKey);
                   if (!assignedAttributes.contains(contentDef)) {
  -                    contentDefinition.addMetadataDefinition(contentDef, 
"root"); //@todo
  +                    contentDefinition.addMetadataDefinition(contentDef, 
userKey);
                   }
               } catch ( ClassNotFoundException cnfe ){
                   logger.debug("Cannot retrieve ContentDefinition 
instance",cnfe);
  @@ -318,54 +329,6 @@
       }
   
       /**
  -     * Return true if the content field is a metadata
  -     *
  -     * @param contentField ContentField
  -     * @return boolean
  -     */
  -    public boolean isMetadataField(ContentField contentField){
  -        if ( contentField == null ){
  -            return false;
  -        }
  -
  -        try {
  -            // check is this content object is not a metadata
  -            ContentDefinition contentDef = ContentDefinition.
  -                                           
getContentDefinitionInstance(contentField.
  -                getDefinitionKey(null));
  -            if (contentDef instanceof JahiaFieldDefinition &&
  -                (((JahiaFieldDefinition) contentDef).getIsMetadata())) {
  -                return true;
  -            }
  -        } catch (Throwable t) {
  -            logger.debug(t);
  -        }
  -        return false;
  -    }
  -
  -    /**
  -     * Return true if the content field is a metadata
  -     *
  -     * @param field JahiaField
  -     * @return boolean
  -     */
  -    public boolean isMetadataField(JahiaField field){
  -        if ( field == null ){
  -            return false;
  -        }
  -
  -        try {
  -            // check is this content object is not a metadata
  -            if (field.getDefinition().getIsMetadata()){
  -                return true;
  -            }
  -        } catch (Throwable t) {
  -            logger.debug(t);
  -        }
  -        return false;
  -    }
  -
  -    /**
        * Returns an array of ObjectKey that are metadatas
        *
        * @param name String, the metadata name
  
  
  
  Index: MetadataService.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/metadata/MetadataService.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- MetadataService.java      3 Nov 2005 13:22:27 -0000       1.5
  +++ MetadataService.java      10 Nov 2005 10:31:37 -0000      1.6
  @@ -45,21 +45,18 @@
       /**
        * Return the Metadata Definition Config Bean
        *
  -     * @throws JahiaException
        */
       public abstract MetadataDefinitionConfig getMetadataDefinitionConfig();
   
       /**
        * Return the JahiaEventListener used to handle Metadata
        *
  -     * @throws JahiaException
        */
       public abstract JahiaEventListenerInterface getMetadataEventListener();
   
       /**
        * Add an aopalliance interceptor to the JahiaEventListener
        *
  -     * @throws JahiaException
        */
       public abstract void addAOPInterceptor(Interceptor interceptor);
   
  @@ -133,22 +130,6 @@
       public abstract boolean isHiddenFromEditingEngine(JahiaFieldDefinition 
fieldDefinition);
   
       /**
  -     * Return true if the content field is a metadata
  -     *
  -     * @param contentField ContentField
  -     * @return boolean
  -     */
  -    public abstract boolean isMetadataField(ContentField contentField);
  -
  -    /**
  -     * Return true if the content field is a metadata
  -     *
  -     * @param field JahiaField
  -     * @return boolean
  -     */
  -    public abstract boolean isMetadataField(JahiaField field);
  -
  -    /**
        * Returns an array of ObjectKey that are metadatas
        *
        * @param name String, the metadata name
  
  
  
  Index: JahiaSearchBaseService.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/search/JahiaSearchBaseService.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- JahiaSearchBaseService.java       7 Nov 2005 10:26:52 -0000       1.27
  +++ JahiaSearchBaseService.java       10 Nov 2005 10:31:37 -0000      1.28
  @@ -288,7 +288,7 @@
           while ( !this.disabled && this.localIndexing ){
               cachedAdminUsers = new HashMap();
               try {
  -                Thread.sleep(3000);
  +                Thread.sleep(2000);
               } catch ( InterruptedException inte ){
               }
               if ( sitesServ == null || !sitesServ.isStarted() ){
  @@ -730,8 +730,7 @@
           } else if (contentObject instanceof ContentContainerList) {
               //@todo index container list ( metadatas ? )
           } else if (contentObject instanceof ContentField) {
  -            boolean isMetadata = 
ServicesRegistry.getInstance().getMetadataService()
  -                    .isMetadataField((ContentField) contentObject);
  +            boolean isMetadata = ((ContentField)contentObject).isMetadata();
               if (isMetadata) {
                   try {
                       ContentObject  metadataOwner = 
ContentObject.getContentObjectFromMetadata(contentObject.getObjectKey());
  
  
  
  Index: applicationcontext-metadata.xml
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/webapp/WEB-INF/etc/spring/applicationcontext-metadata.xml,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- applicationcontext-metadata.xml   3 Nov 2005 13:22:47 -0000       1.18
  +++ applicationcontext-metadata.xml   10 Nov 2005 10:31:38 -0000      1.19
  @@ -386,32 +386,6 @@
                                </entry>
                                </map>
                </property>
  -             <property name="eventWorkflowMappings">
  -                     <map>
  -                             <entry key="onContentAdded">
  -                                     <list>
  -                                             <value>containerAdded</value>
  -                                     </list>
  -                             </entry>
  -                             <entry key="onContentUpdated">
  -                                     <list>
  -                                             
<value>onContainerUpdated</value>
  -                                     </list>
  -                             </entry>
  -                             <entry key="onContentDeleted">
  -                                     <list>
  -                                             <value>onContentDeleted</value>
  -                                     </list>
  -                             </entry>
  -                     </map>
  -             </property>
  -             <!--
  -             <property name="workflows">
  -                     <list>
  -                             <ref bean="lastContributorWorkflow" />
  -                     </list>
  -             </property>
  -             -->
        </bean>
        
        <!-- Metadata event listener bean -->
  

Reply via email to