shuber      2005/10/05 10:24:29 CEST

  Modified files:
    core/src/java/org/jahia/tools/files FileWatcher.java 
  Log:
  Added code to reduce length of job and trigger name that can become too big 
for database storage.
  
  Revision  Changes    Path
  1.8       +24 -4     
jahia/core/src/java/org/jahia/tools/files/FileWatcher.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/tools/files/FileWatcher.java.diff?r1=1.7&r2=1.8&f=h
  
  
  
  Index: FileWatcher.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/tools/files/FileWatcher.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- FileWatcher.java  30 Aug 2005 17:42:19 -0000      1.7
  +++ FileWatcher.java  5 Oct 2005 08:24:29 -0000       1.8
  @@ -66,6 +66,9 @@
       private JobDetail jobDetail;
       private Trigger trigger;
   
  +    private String jobName;
  +    private int maxJobNameLength = 50;
  +
      /** Both file and directory or only file **/
      private boolean m_FileOnly = true;
   
  @@ -140,13 +143,13 @@
           logger.debug("Time created, Check Interval=" + getInterval() +
                        " (millis) ");
   
  -        jobDetail = new JobDetail(m_FolderPath + "_Job", 
Scheduler.DEFAULT_GROUP,
  +        jobDetail = new JobDetail(jobName + "_Job", Scheduler.DEFAULT_GROUP,
                                     FileWatcherJob.class);
           JobDataMap jobDataMap = new JobDataMap();
           jobDataMap.put("fileWatcherId", m_FolderPath);
           jobDetail.setJobDataMap(jobDataMap);
   
  -        trigger = new SimpleTrigger(m_FolderPath + "_Trigger",
  +        trigger = new SimpleTrigger(jobName + "_Trigger",
                                       Scheduler.DEFAULT_GROUP,
                                       SimpleTrigger.REPEAT_INDEFINITELY,
                                       m_Interval);
  @@ -173,7 +176,7 @@
               SchedulerService schedulerServ = ServicesRegistry.getInstance()
                       .getSchedulerService();
               schedulerServ.deleteJob(
  -                m_FolderPath + "_Job", Scheduler.DEFAULT_GROUP);
  +                jobName + "_Job", Scheduler.DEFAULT_GROUP);
           } catch (JahiaException je) {
               logger.error("Error while scheduling file watch for " + 
m_FolderPath, je);
           }
  @@ -221,6 +224,15 @@
       */
      protected void setFolderPath( String fullFolderPath ){
         m_FolderPath = fullFolderPath;
  +       jobName = m_FolderPath;
  +       int jobNameLength = jobName.length();
  +       if (jobNameLength > maxJobNameLength) {
  +           int jobNameHashCode = jobName.hashCode();
  +           String jobNameHashCodeStr = Integer.toString(jobNameHashCode);
  +           jobName = "..." +
  +                     jobName.substring(jobNameLength - maxJobNameLength + 4 
+ jobNameHashCodeStr.length())
  +                     + jobNameHashCodeStr;
  +       }
      }
   
      /**
  @@ -280,7 +292,15 @@
           return m_LastCheckTime;
       }
   
  -   /**
  +    public int getMaxJobNameLength() {
  +        return maxJobNameLength;
  +    }
  +
  +    public void setMaxJobNameLength(int maxJobNameLength) {
  +        this.maxJobNameLength = maxJobNameLength;
  +    }
  +
  +    /**
       * Verify if the Folder to watch exists.
       * Create the Archive Folder if not exist.
       *
  

Reply via email to