knguyen     2006/01/05 16:28:26 CET

  Modified files:
    core/src/java/org/jahia/services/scheduler 
                                               SchedulerService.java 
                                               SchedulerServiceImpl.java 
    core/src/java/org/jahia/services/search/valves 
                                                   
ContainerSearchIndexProcessValveImpl.java 
                                                   FileFieldIndexingThread.java 
  Log:
  - update file indexing job
  
  Revision  Changes    Path
  1.10      +15 -1     
jahia/core/src/java/org/jahia/services/scheduler/SchedulerService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/scheduler/SchedulerService.java.diff?r1=1.9&r2=1.10&f=h
  1.13      +32 -1     
jahia/core/src/java/org/jahia/services/scheduler/SchedulerServiceImpl.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/scheduler/SchedulerServiceImpl.java.diff?r1=1.12&r2=1.13&f=h
  1.6       +49 -2     
jahia/core/src/java/org/jahia/services/search/valves/ContainerSearchIndexProcessValveImpl.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/search/valves/ContainerSearchIndexProcessValveImpl.java.diff?r1=1.5&r2=1.6&f=h
  1.6       +1 -1      
jahia/core/src/java/org/jahia/services/search/valves/FileFieldIndexingThread.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/search/valves/FileFieldIndexingThread.java.diff?r1=1.5&r2=1.6&f=h
  
  
  
  Index: SchedulerService.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/scheduler/SchedulerService.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- SchedulerService.java     21 Dec 2005 10:50:38 -0000      1.9
  +++ SchedulerService.java     5 Jan 2006 15:28:25 -0000       1.10
  @@ -5,11 +5,12 @@
   import org.jahia.services.usermanager.JahiaUser;
   import org.quartz.JobDetail;
   import org.quartz.Trigger;
  +import org.quartz.SchedulerException;
   
   import java.util.List;
   
   /**
  - * @version $Id: SchedulerService.java,v 1.9 2005/12/21 10:50:38 dpillot Exp 
$
  + * @version $Id: SchedulerService.java,v 1.10 2006/01/05 15:28:25 knguyen 
Exp $
    */
   public abstract class SchedulerService extends JahiaService {
   
  @@ -23,6 +24,19 @@
               throws JahiaException;
   
       /**
  +     * Delete the given Ram Job
  +     *
  +     * @param jobName
  +     * @param groupName
  +     * @throws JahiaException
  +     */
  +    public abstract void deleteRamJob(String jobName, String groupName)
  +        throws JahiaException;
  +
  +    public abstract JobDetail getRamJobDetail(String jobName, String 
groupName)
  +        throws JahiaException;
  +
  +    /**
        * Delete the given Job and associated trigger
        *
        * @param jobName
  
  
  
  Index: SchedulerServiceImpl.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/scheduler/SchedulerServiceImpl.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- SchedulerServiceImpl.java 14 Dec 2005 16:08:39 -0000      1.12
  +++ SchedulerServiceImpl.java 5 Jan 2006 15:28:25 -0000       1.13
  @@ -14,7 +14,7 @@
   import java.util.Vector;
   
   /**
  - * @version $Id: SchedulerServiceImpl.java,v 1.12 2005/12/14 16:08:39 
dpillot Exp $
  + * @version $Id: SchedulerServiceImpl.java,v 1.13 2006/01/05 15:28:25 
knguyen Exp $
    */
   
   
  @@ -135,6 +135,37 @@
           }
       }
   
  +    /**
  +     * Delete the given Ram Job
  +     *
  +     * @param jobName
  +     * @param groupName
  +     * @throws JahiaException
  +     */
  +    public void deleteRamJob(String jobName, String groupName)
  +            throws JahiaException {
  +        if (!schedulerRunning) {
  +            return;
  +        }
  +        try {
  +            ramscheduler.deleteJob(jobName, groupName);
  +        } catch (SchedulerException se) {
  +            throw getJahiaException(se);
  +        }
  +    }
  +
  +    public JobDetail getRamJobDetail(String jobName, String groupName)
  +            throws JahiaException {
  +        if (!schedulerRunning) {
  +            return null;
  +        }
  +        try {
  +            return ramscheduler.getJobDetail(jobName, groupName);
  +        } catch (SchedulerException se) {
  +            throw getJahiaException(se);
  +        }
  +    }
  +
       public JobDetail getJobDetail(String jobName, String groupName)
               throws JahiaException {
           if (!schedulerRunning) {
  
  
  
  Index: ContainerSearchIndexProcessValveImpl.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/search/valves/ContainerSearchIndexProcessValveImpl.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ContainerSearchIndexProcessValveImpl.java 4 Jan 2006 11:07:40 -0000       
1.5
  +++ ContainerSearchIndexProcessValveImpl.java 5 Jan 2006 15:28:25 -0000       
1.6
  @@ -3,6 +3,7 @@
   import org.jahia.data.containers.JahiaContainer;
   import org.jahia.data.fields.JahiaField;
   import org.jahia.data.fields.JahiaFileFieldWrapper;
  +import org.jahia.data.files.JahiaFileField;
   import org.jahia.pipelines.PipelineException;
   import org.jahia.pipelines.valves.Valve;
   import org.jahia.pipelines.valves.ValveContext;
  @@ -10,9 +11,16 @@
   import org.jahia.services.search.*;
   import org.jahia.services.version.EntryLoadRequest;
   import org.jahia.services.fields.ContentField;
  +import org.jahia.services.sites.JahiaSite;
  +import org.jahia.services.webdav.DAVFileAccess;
  +import org.jahia.services.webdav.JahiaWebdavBaseService;
   import org.jahia.utils.LanguageCodeConverters;
   import org.jahia.registries.ServicesRegistry;
   import org.jahia.params.ProcessingContext;
  +import org.quartz.JobDetail;
  +import org.quartz.Scheduler;
  +import org.quartz.JobDataMap;
  +import org.quartz.SimpleTrigger;
   
   import java.util.ArrayList;
   import java.util.Arrays;
  @@ -119,10 +127,49 @@
                   doc.setFieldValues(JahiaSearchConstant.CONTAINER_FIELD_PREFIX
                           + field.getDefinition().getName(),values);
                   valuesList.addAll(Arrays.asList(values));
  -
                   if ( field instanceof JahiaFileFieldWrapper ){
  +                    /*
                       ServicesRegistry.getInstance().getJahiaSearchService()
  -                            .indexField(field.getID(), context.getUser(), 
false, true);
  +                            .indexField(field.getID(), context.getUser(), 
false, true);*/
  +                    JahiaFileField fField = 
(JahiaFileField)field.getObject();
  +                    if ( fField == null ){
  +                        return values;
  +                    }
  +                    JahiaSite site = ServicesRegistry.getInstance ()
  +                            .getJahiaSitesService ().getSite 
(field.getJahiaID());
  +                    DAVFileAccess file = JahiaWebdavBaseService.getInstance 
()
  +                            .getDAVFileAccess (site, fField.getRealName ());
  +                    if (file.isValid () && file.hasRevisions () && 
!file.isCollection ()) {
  +                        String contentType = fField.getType ();
  +                        if ("application/pdf".equalsIgnoreCase(contentType)) 
{
  +                            long lastModifiedDate = 
System.currentTimeMillis();
  +                            try {
  +                                lastModifiedDate = fField.getLastModifDate();
  +                            } catch ( Throwable t ){
  +                                logger.debug(t);
  +                            }
  +                            boolean newExtractionRequired = 
ServicesRegistry.getInstance()
  +                                
.getFileExtractionService().newExtractionRequired(
  +                                    contentType, 
file.getPath(),lastModifiedDate);
  +                            if ( newExtractionRequired ){
  +                                JobDetail jobDetail = new 
JobDetail("Extracting File Field" + fField.getID(),
  +                                        Scheduler.DEFAULT_GROUP, 
FileFieldIndexingThread.class );
  +                                JobDataMap jobDataMap = new JobDataMap();
  +                                jobDataMap.put("field", field);
  +                                jobDataMap.put("context", context);
  +                                jobDetail.setJobDataMap(jobDataMap);
  +                                SimpleTrigger trigger = new 
SimpleTrigger(jobDetail.getName(), Scheduler.DEFAULT_GROUP);
  +                                
ServicesRegistry.getInstance().getSchedulerService().deleteRamJob(jobDetail.getName(),
 Scheduler.DEFAULT_GROUP);
  +                                
ServicesRegistry.getInstance().getSchedulerService().scheduleRamJob(jobDetail, 
trigger);
  +                            } else {
  +                                
ServicesRegistry.getInstance().getJahiaSearchService()
  +                                    .indexField(field.getID(), 
context.getUser(), false, true);
  +                            }
  +                        } else {
  +                            
ServicesRegistry.getInstance().getJahiaSearchService()
  +                                .indexField(field.getID(), 
context.getUser(), false, true);
  +                        }
  +                    }
                   }
               } catch ( Throwable t){
                   logger.debug("Exception occured when getting field' values 
for indexation",t);
  
  
  
  Index: FileFieldIndexingThread.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/search/valves/FileFieldIndexingThread.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- FileFieldIndexingThread.java      21 Dec 2005 15:57:41 -0000      1.5
  +++ FileFieldIndexingThread.java      5 Jan 2006 15:28:25 -0000       1.6
  @@ -64,7 +64,7 @@
                               if ( 
ServicesRegistry.getInstance().getFileExtractionService()
                                       
.getAlreadyExtractedDocument(contentType,file.getPath()) != null ){
                                   
ServicesRegistry.getInstance().getJahiaSearchService()
  -                                    .indexField(field.getID(), 
context.getUser(),false, false);
  +                                    .indexField(field.getID(), 
context.getUser(), false, true);
                               }
                           } catch (Throwable t) {
                               logger.debug(t);
  

Reply via email to