You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2013/03/16 21:53:50 UTC
svn commit: r1457304 [1/3] - in /manifoldcf/branches/CONNECTORS-663:
connectors/filesystem/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filesystem/
framework/crawler-ui/src/main/webapp/
framework/pull-agent/src/main/java/org/apache/...
Author: kwright
Date: Sat Mar 16 20:53:46 2013
New Revision: 1457304
URL: http://svn.apache.org/r1457304
Log:
Implement feature and documentation.
Added:
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobDeleteRecord.java (with props)
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobNotifyRecord.java (with props)
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobRecord.java (with props)
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobSeedingRecord.java (with props)
Modified:
manifoldcf/branches/CONNECTORS-663/connectors/filesystem/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filesystem/FileConnector.java
manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/editjob.jsp
manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/execute.jsp
manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/showjobstatus.jsp
manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/viewjob.jsp
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/AddScheduledTime.java
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/GetJobSchedule.java
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IJobManager.java
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IRepositoryConnector.java
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobStartRecord.java
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/ScheduleRecord.java
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobManager.java
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobQueue.java
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/Jobs.java
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/ScheduleManager.java
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/JobNotificationThread.java
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/ManifoldCF.java
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/SeedingThread.java
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/StartDeleteThread.java
manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/StartupThread.java
manifoldcf/branches/CONNECTORS-663/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_en_US.properties
manifoldcf/branches/CONNECTORS-663/framework/ui-core/src/main/native2ascii/org/apache/manifoldcf/ui/i18n/common_ja_JP.properties
manifoldcf/branches/CONNECTORS-663/site/src/documentation/content/xdocs/en_US/end-user-documentation.xml
manifoldcf/branches/CONNECTORS-663/site/src/documentation/content/xdocs/en_US/programmatic-operation.xml
manifoldcf/branches/CONNECTORS-663/site/src/documentation/content/xdocs/en_US/writing-repository-connectors.xml
manifoldcf/branches/CONNECTORS-663/site/src/documentation/content/xdocs/ja_JP/programmatic-operation.xml
manifoldcf/branches/CONNECTORS-663/site/src/documentation/content/xdocs/ja_JP/writing-repository-connectors.xml
manifoldcf/branches/CONNECTORS-663/site/src/documentation/resources/images/en_US/job-status.PNG
manifoldcf/branches/CONNECTORS-663/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/SanityTester.java
Modified: manifoldcf/branches/CONNECTORS-663/connectors/filesystem/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filesystem/FileConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-663/connectors/filesystem/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filesystem/FileConnector.java?rev=1457304&r1=1457303&r2=1457304&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-663/connectors/filesystem/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filesystem/FileConnector.java (original)
+++ manifoldcf/branches/CONNECTORS-663/connectors/filesystem/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/filesystem/FileConnector.java Sat Mar 16 20:53:46 2013
@@ -54,6 +54,16 @@ public class FileConnector extends org.a
{
}
+ /** Tell the world what model this connector uses for getDocumentIdentifiers().
+ * This must return a model value as specified above.
+ *@return the model type value.
+ */
+ @Override
+ public int getConnectorModel()
+ {
+ return MODEL_CHAINED_ADD_CHANGE;
+ }
+
/** Return the list of relationship types that this connector recognizes.
*@return the list.
*/
Modified: manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/editjob.jsp
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/editjob.jsp?rev=1457304&r1=1457303&r2=1457304&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/editjob.jsp (original)
+++ manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/editjob.jsp Sat Mar 16 20:53:46 2013
@@ -75,6 +75,8 @@
EnumeratedValues minutesOfHour = null;
// Duration in minutes
Long duration = null;
+ // RequestMinimum flag
+ boolean requestMinimum = false;
// Priority
int priority = 5;
@@ -830,7 +832,7 @@
%>
<table class="displaytable">
<%
- if (model != -1 && model != IRepositoryConnector.MODEL_ADD_CHANGE_DELETE)
+ if (model != -1 && model != IRepositoryConnector.MODEL_ADD_CHANGE_DELETE && model != IRepositoryConnector.MODEL_CHAINED_ADD_CHANGE_DELETE)
{
%>
<tr>
@@ -902,6 +904,7 @@
EnumeratedValues srYear = sr.getYear();
EnumeratedValues srHourOfDay = sr.getHourOfDay();
EnumeratedValues srMinutesOfHour = sr.getMinutesOfHour();
+ boolean srRequestMinimum = sr.getRequestMinimum();
String postFix = Integer.toString(l);
int k;
@@ -936,10 +939,10 @@
int q = k;
String ampm;
if (k < 12)
- ampm = "am";
+ ampm = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.am");
else
{
- ampm = "pm";
+ ampm = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.pm");
q -= 12;
}
String hour;
@@ -989,15 +992,15 @@
int value = (k+1) % 10;
String suffix;
if (value == 1 && k != 10)
- suffix = "st";
+ suffix = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.st");
else if (value == 2 && k != 11)
- suffix = "nd";
+ suffix = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.nd");
else if (value == 3 && k != 12)
- suffix = "rd";
+ suffix = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.rd");
else
- suffix = "th";
+ suffix = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.th");
%>
- <option value='<%=Integer.toString(k)%>' <%=(srDayOfMonth!=null&&srDayOfMonth.checkValue(k))?"selected=\"selected\"":""%>><%=Integer.toString(k+1)+suffix+" day of month"%></option>
+ <option value='<%=Integer.toString(k)%>' <%=(srDayOfMonth!=null&&srDayOfMonth.checkValue(k))?"selected=\"selected\"":""%>><%=Integer.toString(k+1)+suffix+" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.dayofmonth")%></option>
<%
k++;
}
@@ -1006,9 +1009,17 @@
</td>
</tr>
<tr>
- <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.MaximumRunTimeColon")%></nobr></td><td colspan="3" class="value">
+ <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.MaximumRunTimeColon")%></nobr></td>
+ <td class="value">
<input type="text" size="5" name='<%="duration"+postFix%>' value='<%=((srDuration==null)?"":new Long(srDuration.longValue()/60000L).toString())%>'/> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.minutes")%>
</td>
+ <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.JobInvocationColon")%></nobr></td>
+ <td class="value">
+ <select class="schedulepulldown" multiple="false" name='<%="invocation"+postFix%>' size="2">
+ <option value="complete" <%=(srRequestMinimum==false)?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Complete")%></option>
+ <option value="minimal" <%=srRequestMinimum?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Minimal")%></option>
+ </select>
+ </td>
</tr>
<tr>
<td class="message" colspan="4">
@@ -1047,10 +1058,10 @@
int q = k;
String ampm;
if (k < 12)
- ampm = "am";
+ ampm = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.am");
else
{
- ampm = "pm";
+ ampm = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.pm");
q -= 12;
}
String hour;
@@ -1100,15 +1111,15 @@
int value = (k+1) % 10;
String suffix;
if (value == 1 && k != 10)
- suffix = "st";
+ suffix = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.st");
else if (value == 2 && k != 11)
- suffix = "nd";
+ suffix = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.nd");
else if (value == 3 && k != 12)
- suffix = "rd";
+ suffix = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.rd");
else
- suffix = "th";
+ suffix = Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.th");
%>
- <option value='<%=Integer.toString(k)%>' <%=(dayOfMonth!=null&&dayOfMonth.checkValue(k))?"selected=\"selected\"":""%>><%=Integer.toString(k+1)+suffix+" day of month"%></option>
+ <option value='<%=Integer.toString(k)%>' <%=(dayOfMonth!=null&&dayOfMonth.checkValue(k))?"selected=\"selected\"":""%>><%=Integer.toString(k+1)+suffix+" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.dayofmonth")%></option>
<%
k++;
}
@@ -1117,9 +1128,17 @@
</td>
</tr>
<tr>
- <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.MaximumRunTimeColon")%></nobr></td><td colspan="3" class="value">
+ <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.MaximumRunTimeColon")%></nobr></td>
+ <td class="value">
<input type="text" size="5" name="duration" value='<%=((duration==null)?"":duration.toString())%>'/> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.minutes")%>
</td>
+ <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.JobInvocationColon")%></nobr></td>
+ <td class="value">
+ <select class="schedulepulldown" multiple="false" name="invocation" size="2">
+ <option value="complete" <%=(requestMinimum==false)?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Complete")%></option>
+ <option value="minimal" <%=requestMinimum?"selected=\"selected\"":""%>><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.Minimal")%></option>
+ </select>
+ </td>
</tr>
<tr>
<td class="message" colspan="4">
@@ -1150,6 +1169,7 @@
EnumeratedValues srYear = sr.getYear();
EnumeratedValues srHourOfDay = sr.getHourOfDay();
EnumeratedValues srMinutesOfHour = sr.getMinutesOfHour();
+ boolean srRequestMinimum = sr.getRequestMinimum();
String postFix = Integer.toString(l);
if (srDayOfWeek == null)
@@ -1243,6 +1263,7 @@
}
%>
<input type="hidden" name='<%="duration"+postFix%>' value='<%=((srDuration==null)?"":new Long(srDuration.longValue()/60000L).toString())%>'/>
+ <input type="hidden" name='<%="invocation"+postFix%>' value='<%=srRequestMinimum?"minimal":"complete"%>'/>
<input type="hidden" name='<%="year"+postFix%>' value="none"/>
<%
l++;
Modified: manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/execute.jsp
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/execute.jsp?rev=1457304&r1=1457303&r2=1457304&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/execute.jsp (original)
+++ manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/execute.jsp Sat Mar 16 20:53:46 2013
@@ -524,6 +524,7 @@
EnumeratedValues srHourOfDay = null;
EnumeratedValues srMinutesOfHour = null;
Long srDuration = null;
+ boolean srRequestMinimum = false;
y = variableContext.getParameterValues("dayofweek"+indexValue);
if (y != null)
@@ -581,12 +582,17 @@
else
srDuration = new Long(new Long(x).longValue()*60000L);
}
+ x = variableContext.getParameter("invocation"+indexValue);
+ if (x != null)
+ {
+ srRequestMinimum = x.equals("minimal");
+ }
x = variableContext.getParameter("recordop"+j);
if (x == null || !x.equals("Remove Schedule"))
{
ScheduleRecord sr = new ScheduleRecord(srDayOfWeek,srMonthOfYear,srDayOfMonth,srYear,srHourOfDay,srMinutesOfHour,
- null,srDuration);
+ null,srDuration,srRequestMinimum);
job.addScheduleRecord(sr);
}
j++;
@@ -604,6 +610,7 @@
EnumeratedValues srHourOfDay = null;
EnumeratedValues srMinutesOfHour = null;
Long srDuration = null;
+ boolean srRequestMinimum = false;
y = variableContext.getParameterValues("dayofweek");
if (y != null)
@@ -661,8 +668,14 @@
else
srDuration = new Long(new Long(x).longValue() * 60000L);
}
+ x = variableContext.getParameter("invocation");
+ if (x != null)
+ {
+ srRequestMinimum = x.equals("minimal");
+ }
+
ScheduleRecord sr = new ScheduleRecord(srDayOfWeek,srMonthOfYear,srDayOfMonth,srYear,srHourOfDay,srMinutesOfHour,
- null,srDuration);
+ null,srDuration,srRequestMinimum);
job.addScheduleRecord(sr);
}
@@ -894,11 +907,11 @@
}
else if (op != null && type != null && type.equals("jobstatus"))
{
- if (op.equals("Start"))
+ if (op.equals("Start") || op.equals("StartMinimal"))
{
// -- Start a job --
String jobID = variableContext.getParameter("jobid");
- manager.manualStart(new Long(jobID));
+ manager.manualStart(new Long(jobID),op.equals("StartMinimal"));
// Forward to showjobstatus
%>
<jsp:forward page="showjobstatus.jsp"/>
@@ -924,11 +937,11 @@
<jsp:forward page="showjobstatus.jsp"/>
<%
}
- else if (op.equals("Restart"))
+ else if (op.equals("Restart") || op.equals("RestartMinimal"))
{
// -- Restart a job --
String jobID = variableContext.getParameter("jobid");
- manager.manualAbortRestart(new Long(jobID));
+ manager.manualAbortRestart(new Long(jobID),op.equals("RestartMinimal"));
// Forward to showjobstatus
%>
<jsp:forward page="showjobstatus.jsp"/>
Modified: manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/showjobstatus.jsp
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/showjobstatus.jsp?rev=1457304&r1=1457303&r2=1457304&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/showjobstatus.jsp (original)
+++ manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/showjobstatus.jsp Sat Mar 16 20:53:46 2013
@@ -44,6 +44,13 @@ boolean maintenanceUnderway = org.apache
document.liststatuses.submit();
}
+ function StartMinimal(jobID)
+ {
+ document.liststatuses.op.value="StartMinimal";
+ document.liststatuses.jobid.value=jobID;
+ document.liststatuses.submit();
+ }
+
function Abort(jobID)
{
document.liststatuses.op.value="Abort";
@@ -58,6 +65,13 @@ boolean maintenanceUnderway = org.apache
document.liststatuses.submit();
}
+ function RestartMinimal(jobID)
+ {
+ document.liststatuses.op.value="RestartMinimal";
+ document.liststatuses.jobid.value=jobID;
+ document.liststatuses.submit();
+ }
+
function Pause(jobID)
{
document.liststatuses.op.value="Pause";
@@ -117,66 +131,66 @@ if (maintenanceUnderway == false)
switch (status)
{
case JobStatus.JOBSTATUS_NOTYETRUN:
- statusName = "Not yet run";
+ statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Notyetrun");
break;
case JobStatus.JOBSTATUS_RUNNING:
- statusName = "Running";
+ statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Running");
break;
case JobStatus.JOBSTATUS_RUNNING_UNINSTALLED:
- statusName = "Running, no connector";
+ statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Runningnoconnector");
break;
case JobStatus.JOBSTATUS_ABORTING:
- statusName = "Aborting";
+ statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Aborting");
break;
case JobStatus.JOBSTATUS_RESTARTING:
- statusName = "Restarting";
+ statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Restarting");
break;
case JobStatus.JOBSTATUS_STOPPING:
- statusName = "Stopping";
+ statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Stopping");
break;
case JobStatus.JOBSTATUS_RESUMING:
- statusName = "Resuming";
+ statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Resuming");
break;
case JobStatus.JOBSTATUS_PAUSED:
- statusName = "Paused";
+ statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Paused");
break;
case JobStatus.JOBSTATUS_COMPLETED:
- statusName = "Done";
+ statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Done");
break;
case JobStatus.JOBSTATUS_WINDOWWAIT:
- statusName = "Waiting";
+ statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus,Waiting");
break;
case JobStatus.JOBSTATUS_STARTING:
- statusName = "Starting up";
+ statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Startingup");
break;
case JobStatus.JOBSTATUS_DESTRUCTING:
- statusName = "Cleaning up";
+ statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Cleaningup");
break;
case JobStatus.JOBSTATUS_JOBENDCLEANUP:
- statusName = "Terminating";
+ statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Terminating");
break;
case JobStatus.JOBSTATUS_JOBENDNOTIFICATION:
- statusName = "End notification";
+ statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Endnotification");
break;
case JobStatus.JOBSTATUS_ERROR:
- statusName = "Error: "+js.getErrorText();
+ statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.ErrorColon")+" "+js.getErrorText();
break;
default:
- statusName = "Unknown";
+ statusName = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Unknown");
break;
}
- String startTime = "Not started";
+ String startTime = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Notstarted");
if (js.getStartTime() != -1L)
startTime = new Date(js.getStartTime()).toString();
- String endTime = "Aborted";
+ String endTime = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Aborted");
if (js.getStartTime() == -1L)
- endTime = "Never run";
+ endTime = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Neverrun");
else
{
if (js.getEndTime() == -1L)
{
if (status == JobStatus.JOBSTATUS_COMPLETED)
- endTime = "Aborted";
+ endTime = Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Aborted");
else
endTime = "";
}
@@ -192,7 +206,8 @@ if (maintenanceUnderway == false)
status == JobStatus.JOBSTATUS_ERROR)
{
%>
- <a href='<%="javascript:Start(\""+js.getJobID()+"\")"%>' alt='<%="Start job "+js.getJobID()%>'>Start</a>
+ <a href='<%="javascript:Start(\""+js.getJobID()+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Startjob")+" "+js.getJobID()%>'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Start")%></nobr></a>
+ <a href='<%="javascript:StartMinimal(\""+js.getJobID()+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Startjob")+" "+js.getJobID()+" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.minimally")%>'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Startminimal")%></nobr></a>
<%
}
if (status == JobStatus.JOBSTATUS_RUNNING ||
@@ -202,7 +217,8 @@ if (maintenanceUnderway == false)
status == JobStatus.JOBSTATUS_STARTING)
{
%>
- <a href='<%="javascript:Restart(\""+js.getJobID()+"\")"%>' alt='<%="Restart job "+js.getJobID()%>'>Restart</a>
+ <a href='<%="javascript:Restart(\""+js.getJobID()+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Restartjob")+" "+js.getJobID()%>'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Restart")%></nobr></a>
+ <a href='<%="javascript:RestartMinimal(\""+js.getJobID()+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Restartjob")+" "+js.getJobID()+" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.minimally")%>'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Restartminimal")%></nobr></a>
<%
}
if (status == JobStatus.JOBSTATUS_RUNNING ||
@@ -210,7 +226,7 @@ if (maintenanceUnderway == false)
status == JobStatus.JOBSTATUS_WINDOWWAIT)
{
%>
- <a href='<%="javascript:Pause(\""+js.getJobID()+"\")"%>' alt='<%="Pause job "+js.getJobID()%>'>Pause</a>
+ <a href='<%="javascript:Pause(\""+js.getJobID()+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Pausejob")+" "+js.getJobID()%>'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Pause")%></nobr></a>
<%
}
if (status == JobStatus.JOBSTATUS_RUNNING ||
@@ -223,13 +239,13 @@ if (maintenanceUnderway == false)
status == JobStatus.JOBSTATUS_RESTARTING)
{
%>
- <a href='<%="javascript:Abort(\""+js.getJobID()+"\")"%>' alt='<%="Abort job "+js.getJobID()%>'>Abort</a>
+ <a href='<%="javascript:Abort(\""+js.getJobID()+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Abortjob")+" "+js.getJobID()%>'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Abort")%></nobr></a>
<%
}
if (status == JobStatus.JOBSTATUS_PAUSED)
{
%>
- <a href='<%="javascript:Resume(\""+js.getJobID()+"\")"%>' alt='<%="Resume job "+js.getJobID()%>'>Resume</a>
+ <a href='<%="javascript:Resume(\""+js.getJobID()+"\")"%>' alt='<%=Messages.getAttributeString(pageContext.getRequest().getLocale(),"showjobstatus.Resumejob")+" "+js.getJobID()%>'><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"showjobstatus.Resume")%></nobr></a>
<%
}
%>
Modified: manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/viewjob.jsp
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/viewjob.jsp?rev=1457304&r1=1457303&r2=1457304&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/viewjob.jsp (original)
+++ manifoldcf/branches/CONNECTORS-663/framework/crawler-ui/src/main/webapp/viewjob.jsp Sat Mar 16 20:53:46 2013
@@ -139,7 +139,8 @@
<td class="separator" colspan="4"><hr/></td>
</tr>
<tr>
- <td class="description" colspan="1"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.NameColon")%></nobr></td><td class="value" colspan="3" ><%="<!--jobid="+jobID+"-->"%><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(job.getDescription())%></td>
+ <td class="description" colspan="1"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.NameColon")%></nobr></td>
+ <td class="value" colspan="3" ><%="<!--jobid="+jobID+"-->"%><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(job.getDescription())%></td>
</tr>
<tr>
<td class="separator" colspan="4"><hr/></td>
@@ -154,8 +155,10 @@
<td class="separator" colspan="4"><hr/></td>
</tr>
<tr>
- <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.PriorityColon")%></nobr></td><td class="value"><%=priority%></td>
- <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.StartMethodColon")%></nobr></td><td class="value"><%=startMethod%></td>
+ <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.PriorityColon")%></nobr></td>
+ <td class="value"><%=priority%></td>
+ <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.StartMethodColon")%></nobr></td>
+ <td class="value"><%=startMethod%></td>
</tr>
<%
if (model != -1 && model != IRepositoryConnector.MODEL_ADD_CHANGE_DELETE)
@@ -165,13 +168,16 @@
<td class="separator" colspan="4"><hr/></td>
</tr>
<tr>
- <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.ScheduleTypeColon")%></nobr></td><td class="value"><nobr><%=jobType%></nobr></td>
- <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.MinimumRecrawlIntervalColon")%></nobr></td><td class="value"><nobr><%=intervalString%></nobr>
- </td>
+ <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.ScheduleTypeColon")%></nobr></td>
+ <td class="value"><nobr><%=jobType%></nobr></td>
+ <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.MinimumRecrawlIntervalColon")%></nobr></td>
+ <td class="value"><nobr><%=intervalString%></nobr></td>
</tr>
<tr>
- <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.ExpirationIntervalColon")%></nobr></td><td class="value"><nobr><%=expirationIntervalString%></nobr></td>
- <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.ReseedIntervalColon")%></nobr></td><td class="value"><nobr><%=reseedIntervalString%></nobr></td>
+ <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.ExpirationIntervalColon")%></nobr></td>
+ <td class="value"><nobr><%=expirationIntervalString%></nobr></td>
+ <td class="description"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.ReseedIntervalColon")%></nobr></td>
+ <td class="value"><nobr><%=reseedIntervalString%></nobr></td>
</tr>
<%
}
@@ -195,6 +201,7 @@
{
ScheduleRecord sr = job.getScheduleRecord(j);
Long srDuration = sr.getDuration();
+ boolean srRequestMinimum = sr.getRequestMinimum();
EnumeratedValues srDayOfWeek = sr.getDayOfWeek();
EnumeratedValues srMonthOfYear = sr.getMonthOfYear();
EnumeratedValues srDayOfMonth = sr.getDayOfMonth();
@@ -330,7 +337,7 @@
if (srMonthOfYear == null)
{
if (srDayOfMonth == null && srDayOfWeek == null && srHourOfDay == null && srMinutesOfHour == null)
- out.println(" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.inJanuary"));
+ out.println(" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.ineverymonthofyear"));
}
else
{
@@ -489,15 +496,13 @@
out.println(sb.toString());
}
%>
-
-
</td>
</tr>
<tr>
<td class="description">
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.MaximumRunTimeColon")%>
</td>
- <td class="value" colspan="3">
+ <td class="value">
<%
if (srDuration == null)
out.println(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Nolimit"));
@@ -505,8 +510,18 @@
out.println(new Long(srDuration.longValue()/60000L).toString() + " "+Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.minutes"));
%>
</td>
+ <td class="description">
+ <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.JobInvocationColon")%>
+ </td>
+ <td class="value">
+<%
+ if (srRequestMinimum)
+ out.println(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Minimal"));
+ else
+ out.println(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Complete"));
+%>
+ </td>
</tr>
-
<%
j++;
}
Modified: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/AddScheduledTime.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/AddScheduledTime.java?rev=1457304&r1=1457303&r2=1457304&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/AddScheduledTime.java (original)
+++ manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/AddScheduledTime.java Sat Mar 16 20:53:46 2013
@@ -28,265 +28,272 @@ import java.util.*;
*/
public class AddScheduledTime
{
- public static final String _rcsid = "@(#)$Id: AddScheduledTime.java 988245 2010-08-23 18:39:35Z kwright $";
+ public static final String _rcsid = "@(#)$Id: AddScheduledTime.java 988245 2010-08-23 18:39:35Z kwright $";
- private AddScheduledTime()
- {
- }
-
- public static void main(String[] args)
- {
- if (args.length != 8)
- {
- System.err.println("Usage: AddScheduledTime <jobid> <interval_minutes> <day_of_week_list>");
- System.err.println(" <day_of_month_list> <month_list> <year_list> <hour_list> <minute_list>");
- System.err.println("");
- System.err.println("If <interval_minutes> is an empty string, no interval limit");
- System.err.println("All lists are comma-separated");
- System.err.println("All list values can be empty to indicate no constraint");
- System.err.println("Days of week are lower case, full day names, e.g. tuesday");
- System.err.println("Months are full month names in lower case, e.g. january");
- System.err.println("Years are full year values, e.g. 1999");
- System.err.println("Hours include am or pm in lower case, e.g. 12am or 2pm");
-
- System.exit(1);
- }
-
- String jobID = args[0];
- String interval = args[1];
- String dayOfWeekList = args[2];
- String dayOfMonthList = args[3];
- String monthList = args[4];
- String yearList = args[5];
- String hourList = args[6];
- String minuteList = args[7];
-
- try
- {
- ManifoldCF.initializeEnvironment();
- IThreadContext tc = ThreadContextFactory.make();
- IJobManager jobManager = JobManagerFactory.make(tc);
-
- IJobDescription desc = jobManager.load(new Long(jobID));
- if (desc == null)
- throw new ManifoldCFException("No such job: '"+jobID+"'");
-
- ScheduleRecord sr = new ScheduleRecord(
- parseDayOfWeek(dayOfWeekList),
- parseMonthOfYear(monthList),
- parseDayOfMonth(dayOfMonthList),
- parseYear(yearList),
- parseHourOfDay(hourList),
- parseMinutes(minuteList),
- null,
- (interval.length()>0)?new Long(interval):null);
-
- desc.addScheduleRecord(sr);
- jobManager.save(desc);
-
- System.out.println("Job updated");
- }
- catch (Exception e)
- {
- e.printStackTrace();
- System.exit(2);
- }
- }
-
- protected static EnumeratedValues parseDayOfWeek(String list)
- throws Exception
- {
- if (list.length() == 0)
- return null;
-
- StringBuilder sb = new StringBuilder();
- int index = 0;
- while (true)
- {
- if (index != 0)
- sb.append(",");
- int newIndex = list.indexOf(",",index);
- if (newIndex == -1)
- {
- sb.append(new Integer(mapToWeekday(list.substring(index))).toString());
- break;
- }
- sb.append(new Integer(mapToWeekday(list.substring(index,newIndex))).toString());
- index = newIndex+1;
- }
- return new EnumeratedValues(sb.toString());
- }
-
- protected static int mapToWeekday(String day)
- throws Exception
- {
- if (day.equals("sunday"))
- return 0;
- if (day.equals("monday"))
- return 1;
- if (day.equals("tuesday"))
- return 2;
- if (day.equals("wednesday"))
- return 3;
- if (day.equals("thursday"))
- return 4;
- if (day.equals("friday"))
- return 5;
- if (day.equals("saturday"))
- return 6;
- throw new ManifoldCFException("Bad day of week: '"+day+"'");
- }
-
- protected static EnumeratedValues parseMonthOfYear(String list)
- throws Exception
- {
- if (list.length() == 0)
- return null;
-
- StringBuilder sb = new StringBuilder();
- int index = 0;
- while (true)
- {
- if (index != 0)
- sb.append(",");
- int newIndex = list.indexOf(",",index);
- if (newIndex == -1)
- {
- sb.append(new Integer(mapToMonth(list.substring(index))).toString());
- break;
- }
- sb.append(new Integer(mapToMonth(list.substring(index,newIndex))).toString());
- index = newIndex+1;
- }
- return new EnumeratedValues(sb.toString());
-
- }
-
- protected static int mapToMonth(String day)
- throws Exception
- {
- if (day.equals("january"))
- return 0;
- if (day.equals("february"))
- return 1;
- if (day.equals("march"))
- return 2;
- if (day.equals("april"))
- return 3;
- if (day.equals("may"))
- return 4;
- if (day.equals("june"))
- return 5;
- if (day.equals("july"))
- return 6;
- if (day.equals("august"))
- return 7;
- if (day.equals("september"))
- return 8;
- if (day.equals("october"))
- return 9;
- if (day.equals("november"))
- return 10;
- if (day.equals("december"))
- return 11;
-
- throw new ManifoldCFException("Bad month: '"+day+"'");
- }
-
- protected static EnumeratedValues parseDayOfMonth(String list)
- throws Exception
- {
- // Zero based internally
- if (list.length() == 0)
- return null;
-
- StringBuilder sb = new StringBuilder();
- int index = 0;
- while (true)
- {
- if (index != 0)
- sb.append(",");
- int newIndex = list.indexOf(",",index);
- if (newIndex == -1)
- {
- sb.append(new Integer(new Integer(list.substring(index)).intValue() - 1).toString());
- break;
- }
- sb.append(new Integer(new Integer(list.substring(index,newIndex)).intValue() - 1).toString());
- index = newIndex+1;
- }
- return new EnumeratedValues(sb.toString());
- }
-
- protected static EnumeratedValues parseYear(String list)
- throws Exception
- {
- if (list.length() == 0)
- return null;
- return new EnumeratedValues(list);
- }
-
- protected static EnumeratedValues parseHourOfDay(String list)
- throws Exception
- {
- if (list.length() == 0)
- return null;
-
- StringBuilder sb = new StringBuilder();
- int index = 0;
- while (true)
- {
- if (index != 0)
- sb.append(",");
- int newIndex = list.indexOf(",",index);
- if (newIndex == -1)
- {
- sb.append(new Integer(mapToHour(list.substring(index))).toString());
- break;
- }
- sb.append(new Integer(mapToHour(list.substring(index,newIndex))).toString());
- index = newIndex+1;
- }
- return new EnumeratedValues(sb.toString());
-
- }
-
- protected static int mapToHour(String hour)
- throws Exception
- {
- boolean isPM;
- String value;
- if (hour.endsWith("am"))
- {
- isPM = false;
- value = hour.substring(0,hour.length()-2);
- }
- else if (hour.endsWith("pm"))
- {
- isPM = true;
- value = hour.substring(0,hour.length()-2);
- }
- else
- {
- isPM = false;
- value = hour;
- }
-
- int rval = new Integer(value).intValue();
- if (rval == 12)
- rval = 0;
- if (isPM)
- rval += 12;
- return rval;
- }
-
- protected static EnumeratedValues parseMinutes(String list)
- throws Exception
- {
- if (list.length() == 0)
- return null;
+ private AddScheduledTime()
+ {
+ }
+
+ public static void main(String[] args)
+ {
+ if (args.length != 8 && args.length != 9)
+ {
+ System.err.println("Usage: AddScheduledTime <jobid> <interval_minutes> <day_of_week_list>");
+ System.err.println(" <day_of_month_list> <month_list> <year_list> <hour_list> <minute_list> [<request_minimum>]");
+ System.err.println("");
+ System.err.println("If <interval_minutes> is an empty string, no interval limit");
+ System.err.println("All lists are comma-separated");
+ System.err.println("All list values can be empty to indicate no constraint");
+ System.err.println("Days of week are lower case, full day names, e.g. tuesday");
+ System.err.println("Months are full month names in lower case, e.g. january");
+ System.err.println("Years are full year values, e.g. 1999");
+ System.err.println("Hours include am or pm in lower case, e.g. 12am or 2pm");
+ System.err.println("<request_minimum> is 'true' or 'false'");
+
+ System.exit(1);
+ }
+
+ String jobID = args[0];
+ String interval = args[1];
+ String dayOfWeekList = args[2];
+ String dayOfMonthList = args[3];
+ String monthList = args[4];
+ String yearList = args[5];
+ String hourList = args[6];
+ String minuteList = args[7];
+ String requestMinimum;
+ if (args.length == 9)
+ requestMinimum = args[8];
+ else
+ requestMinimum = "false";
+
+ try
+ {
+ ManifoldCF.initializeEnvironment();
+ IThreadContext tc = ThreadContextFactory.make();
+ IJobManager jobManager = JobManagerFactory.make(tc);
+
+ IJobDescription desc = jobManager.load(new Long(jobID));
+ if (desc == null)
+ throw new ManifoldCFException("No such job: '"+jobID+"'");
+
+ ScheduleRecord sr = new ScheduleRecord(
+ parseDayOfWeek(dayOfWeekList),
+ parseMonthOfYear(monthList),
+ parseDayOfMonth(dayOfMonthList),
+ parseYear(yearList),
+ parseHourOfDay(hourList),
+ parseMinutes(minuteList),
+ null,
+ (interval.length()>0)?new Long(interval):null,
+ requestMinimum.equals("true"));
+
+ desc.addScheduleRecord(sr);
+ jobManager.save(desc);
+
+ System.out.println("Job updated");
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ System.exit(2);
+ }
+ }
+
+ protected static EnumeratedValues parseDayOfWeek(String list)
+ throws Exception
+ {
+ if (list.length() == 0)
+ return null;
+
+ StringBuilder sb = new StringBuilder();
+ int index = 0;
+ while (true)
+ {
+ if (index != 0)
+ sb.append(",");
+ int newIndex = list.indexOf(",",index);
+ if (newIndex == -1)
+ {
+ sb.append(new Integer(mapToWeekday(list.substring(index))).toString());
+ break;
+ }
+ sb.append(new Integer(mapToWeekday(list.substring(index,newIndex))).toString());
+ index = newIndex+1;
+ }
+ return new EnumeratedValues(sb.toString());
+ }
+
+ protected static int mapToWeekday(String day)
+ throws Exception
+ {
+ if (day.equals("sunday"))
+ return 0;
+ if (day.equals("monday"))
+ return 1;
+ if (day.equals("tuesday"))
+ return 2;
+ if (day.equals("wednesday"))
+ return 3;
+ if (day.equals("thursday"))
+ return 4;
+ if (day.equals("friday"))
+ return 5;
+ if (day.equals("saturday"))
+ return 6;
+ throw new ManifoldCFException("Bad day of week: '"+day+"'");
+ }
+
+ protected static EnumeratedValues parseMonthOfYear(String list)
+ throws Exception
+ {
+ if (list.length() == 0)
+ return null;
+
+ StringBuilder sb = new StringBuilder();
+ int index = 0;
+ while (true)
+ {
+ if (index != 0)
+ sb.append(",");
+ int newIndex = list.indexOf(",",index);
+ if (newIndex == -1)
+ {
+ sb.append(new Integer(mapToMonth(list.substring(index))).toString());
+ break;
+ }
+ sb.append(new Integer(mapToMonth(list.substring(index,newIndex))).toString());
+ index = newIndex+1;
+ }
+ return new EnumeratedValues(sb.toString());
+
+ }
+
+ protected static int mapToMonth(String day)
+ throws Exception
+ {
+ if (day.equals("january"))
+ return 0;
+ if (day.equals("february"))
+ return 1;
+ if (day.equals("march"))
+ return 2;
+ if (day.equals("april"))
+ return 3;
+ if (day.equals("may"))
+ return 4;
+ if (day.equals("june"))
+ return 5;
+ if (day.equals("july"))
+ return 6;
+ if (day.equals("august"))
+ return 7;
+ if (day.equals("september"))
+ return 8;
+ if (day.equals("october"))
+ return 9;
+ if (day.equals("november"))
+ return 10;
+ if (day.equals("december"))
+ return 11;
+
+ throw new ManifoldCFException("Bad month: '"+day+"'");
+ }
+
+ protected static EnumeratedValues parseDayOfMonth(String list)
+ throws Exception
+ {
+ // Zero based internally
+ if (list.length() == 0)
+ return null;
+
+ StringBuilder sb = new StringBuilder();
+ int index = 0;
+ while (true)
+ {
+ if (index != 0)
+ sb.append(",");
+ int newIndex = list.indexOf(",",index);
+ if (newIndex == -1)
+ {
+ sb.append(new Integer(new Integer(list.substring(index)).intValue() - 1).toString());
+ break;
+ }
+ sb.append(new Integer(new Integer(list.substring(index,newIndex)).intValue() - 1).toString());
+ index = newIndex+1;
+ }
+ return new EnumeratedValues(sb.toString());
+ }
+
+ protected static EnumeratedValues parseYear(String list)
+ throws Exception
+ {
+ if (list.length() == 0)
+ return null;
+ return new EnumeratedValues(list);
+ }
+
+ protected static EnumeratedValues parseHourOfDay(String list)
+ throws Exception
+ {
+ if (list.length() == 0)
+ return null;
+
+ StringBuilder sb = new StringBuilder();
+ int index = 0;
+ while (true)
+ {
+ if (index != 0)
+ sb.append(",");
+ int newIndex = list.indexOf(",",index);
+ if (newIndex == -1)
+ {
+ sb.append(new Integer(mapToHour(list.substring(index))).toString());
+ break;
+ }
+ sb.append(new Integer(mapToHour(list.substring(index,newIndex))).toString());
+ index = newIndex+1;
+ }
+ return new EnumeratedValues(sb.toString());
+
+ }
+
+ protected static int mapToHour(String hour)
+ throws Exception
+ {
+ boolean isPM;
+ String value;
+ if (hour.endsWith("am"))
+ {
+ isPM = false;
+ value = hour.substring(0,hour.length()-2);
+ }
+ else if (hour.endsWith("pm"))
+ {
+ isPM = true;
+ value = hour.substring(0,hour.length()-2);
+ }
+ else
+ {
+ isPM = false;
+ value = hour;
+ }
+
+ int rval = new Integer(value).intValue();
+ if (rval == 12)
+ rval = 0;
+ if (isPM)
+ rval += 12;
+ return rval;
+ }
+
+ protected static EnumeratedValues parseMinutes(String list)
+ throws Exception
+ {
+ if (list.length() == 0)
+ return null;
- return new EnumeratedValues(list);
- }
+ return new EnumeratedValues(list);
+ }
}
Modified: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/GetJobSchedule.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/GetJobSchedule.java?rev=1457304&r1=1457303&r2=1457304&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/GetJobSchedule.java (original)
+++ manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/GetJobSchedule.java Sat Mar 16 20:53:46 2013
@@ -41,7 +41,7 @@ public class GetJobSchedule
System.err.println("Usage: GetJobSchedule <job_id>");
System.err.println("");
System.err.println("The result will be UTF-8 encoded and will consist of the following columns:");
- System.err.println(" daysofweek,years,months,days,hours,minutes,timezone,duration");
+ System.err.println(" daysofweek,years,months,days,hours,minutes,timezone,duration,requestminimum");
System.exit(1);
}
@@ -70,7 +70,8 @@ public class GetJobSchedule
enumerate(sr.getHourOfDay())+","+
enumerate(sr.getMinutesOfHour())+","+
((sr.getTimezone()==null)?"":sr.getTimezone())+","+
- presentInterval(sr.getDuration()));
+ presentInterval(sr.getDuration())+","+
+ (sr.getRequestMinimum()?"true":"false"));
}
System.err.println("Schedule list done");
}
Modified: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IJobManager.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IJobManager.java?rev=1457304&r1=1457303&r2=1457304&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IJobManager.java (original)
+++ manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IJobManager.java Sat Mar 16 20:53:46 2013
@@ -671,6 +671,15 @@ public interface IJobManager
* will not cease until complete. If the job is already running, this operation will assure that
* the job does not pause when its window ends. The job can be manually paused, or manually aborted.
*@param jobID is the ID of the job to start.
+ *@param requestMinimum is true if a minimal job run is requested.
+ */
+ public void manualStart(Long jobID, boolean requestMinimum)
+ throws ManifoldCFException;
+
+ /** Manually start a job. The specified job will be run REGARDLESS of the timed windows, and
+ * will not cease until complete. If the job is already running, this operation will assure that
+ * the job does not pause when its window ends. The job can be manually paused, or manually aborted.
+ *@param jobID is the ID of the job to start.
*/
public void manualStart(Long jobID)
throws ManifoldCFException;
@@ -685,6 +694,14 @@ public interface IJobManager
/** Manually restart a running job. The job will be stopped and restarted. Any schedule affinity will be lost,
* until the job finishes on its own.
*@param jobID is the job to abort.
+ *@param requestMinimum is true if a minimal job run is requested.
+ */
+ public void manualAbortRestart(Long jobID, boolean requestMinimum)
+ throws ManifoldCFException;
+
+ /** Manually restart a running job. The job will be stopped and restarted. Any schedule affinity will be lost,
+ * until the job finishes on its own.
+ *@param jobID is the job to abort.
*/
public void manualAbortRestart(Long jobID)
throws ManifoldCFException;
@@ -732,7 +749,7 @@ public interface IJobManager
*@return jobs that are active and are running in adaptive mode. These will be seeded
* based on what the connector says should be added to the queue.
*/
- public JobStartRecord[] getJobsReadyForSeeding(long currentTime)
+ public JobSeedingRecord[] getJobsReadyForSeeding(long currentTime)
throws ManifoldCFException;
/** Reset a seeding job back to "active" state.
@@ -744,7 +761,7 @@ public interface IJobManager
/** Get the list of jobs that are ready for deletion.
*@return jobs that were in the "readyfordelete" state.
*/
- public JobStartRecord[] getJobsReadyForDelete()
+ public JobDeleteRecord[] getJobsReadyForDelete()
throws ManifoldCFException;
/** Get the list of jobs that are ready for startup.
@@ -756,7 +773,7 @@ public interface IJobManager
/** Find the list of jobs that need to have their connectors notified of job completion.
*@return the ID's of jobs that need their output connectors notified in order to become inactive.
*/
- public JobStartRecord[] getJobsReadyForInactivity()
+ public JobNotifyRecord[] getJobsReadyForInactivity()
throws ManifoldCFException;
/** Inactivate a job, from the notification state.
@@ -791,22 +808,23 @@ public interface IJobManager
public void prepareDeleteScan(Long jobID)
throws ManifoldCFException;
- /** Prepare for a full scan.
- *@param jobID is the job id.
- *@param legalLinkTypes are the link types allowed for the job.
- *@param hopcountMethod describes how to handle deletions for hopcount purposes.
- */
- public void prepareFullScan(Long jobID, String[] legalLinkTypes, int hopcountMethod)
- throws ManifoldCFException;
-
- /** Prepare for an incremental scan.
+ /** Prepare a job to be run.
+ * This method is called regardless of the details of the job; what differs is only the flags that are passed in.
+ * The code inside will determine the appropriate procedures.
+ * (This method replaces prepareFullScan() and prepareIncrementalScan(). )
*@param jobID is the job id.
*@param legalLinkTypes are the link types allowed for the job.
*@param hopcountMethod describes how to handle deletions for hopcount purposes.
- */
- public void prepareIncrementalScan(Long jobID, String[] legalLinkTypes, int hopcountMethod)
+ *@param connectorModel is the model used by the connector for the job.
+ *@param continuousJob is true if the job is a continuous one.
+ *@param fromBeginningOfTime is true if the job is running starting from time 0.
+ *@param requestMinimum is true if the minimal amount of work is requested for the job run.
+ */
+ public void prepareJobScan(Long jobID, String[] legalLinkTypes, int hopcountMethod,
+ int connectorModel, boolean continuousJob, boolean fromBeginningOfTime,
+ boolean requestMinimum)
throws ManifoldCFException;
-
+
/** Note job delete started.
*@param jobID is the job id.
*@param startTime is the job start time.
Modified: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IRepositoryConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IRepositoryConnector.java?rev=1457304&r1=1457303&r2=1457304&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IRepositoryConnector.java (original)
+++ manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IRepositoryConnector.java Sat Mar 16 20:53:46 2013
@@ -69,9 +69,19 @@ public interface IRepositoryConnector ex
// is the most restrictive that is still accurate. For example, if MODEL_ADD_CHANGE_DELETE applies, you would
// return that value rather than MODEL_ADD.
+ // For the CHAINED models, what the connector is describing are the documents that will be processed IF the seeded
+ // documents are followed to their leaves. For instance, imagine a hierarchy where the root document is the only one ever
+ // seeded, but if that document is processed, and its discovered changed children are processed as well, then all documents
+ // that have been added, changed, or deleted will eventually be discovered. In that case, model
+ // MODEL_CHAINED_ADD_CHANGE_DELETE would be appropriate. But, if a changed node can only discover child
+ // additions and changes, then MODEL_CHAINED_ADD_CHANGE would be the right choice.
+
/** Supply all seeds every time. The connector does not pay any attention to the start time or end time
* of the request, and simply returns a complete list of seeds. */
public static final int MODEL_ALL = 0;
+ /** This indicates that the seeds are never complete; the previous seeds are lost and cannot be retrieved. */
+ public static final int MODEL_PARTIAL = 4;
+
/** Supply at least the documents that have been added since the specified start time. Connector is
* aware of the start time and end time of the request, and supplies at least the documents that have been
* added within the specified time range. */
@@ -80,9 +90,14 @@ public interface IRepositoryConnector ex
public static final int MODEL_ADD_CHANGE = 2;
/** Supply at least the documents that have been added, changed, or deleted within the specified time range. */
public static final int MODEL_ADD_CHANGE_DELETE = 3;
- /** This indicates that the seeds are never complete; the previous seeds are lost and cannot be retrieved. */
- public static final int MODEL_PARTIAL = 4;
+ /** Like MODEL_ADD, except considering document discovery */
+ public static final int MODEL_CHAINED_ADD = 9;
+ /** Like MODEL_ADD_CHANGE, except considering document discovery */
+ public static final int MODEL_CHAINED_ADD_CHANGE = 10;
+ /** Like MODEL_ADD_CHANGE_DELETE, except considering document discovery */
+ public static final int MODEL_CHAINED_ADD_CHANGE_DELETE = 11;
+
// These are the job modes the connector may want to know about.
// For a once-only job, it is essential that documents that are processed by processDocuments() always queue up their child links,
// This is not true for continuous jobs, which never delete unreachable links because they never terminate.
Added: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobDeleteRecord.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobDeleteRecord.java?rev=1457304&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobDeleteRecord.java (added)
+++ manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobDeleteRecord.java Sat Mar 16 20:53:46 2013
@@ -0,0 +1,35 @@
+/* $Id$ */
+
+/**
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.manifoldcf.crawler.interfaces;
+
+
+/** This class is a paper object which contains a job ID.
+*/
+public class JobDeleteRecord extends JobRecord
+{
+ public static final String _rcsid = "@(#)$Id$";
+
+ /** Constructor.
+ */
+ public JobDeleteRecord(Long jobID)
+ {
+ super(jobID);
+ }
+
+}
Propchange: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobDeleteRecord.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobDeleteRecord.java
------------------------------------------------------------------------------
svn:keywords = Id
Added: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobNotifyRecord.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobNotifyRecord.java?rev=1457304&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobNotifyRecord.java (added)
+++ manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobNotifyRecord.java Sat Mar 16 20:53:46 2013
@@ -0,0 +1,35 @@
+/* $Id$ */
+
+/**
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.manifoldcf.crawler.interfaces;
+
+
+/** This class is a paper object which contains a job ID.
+*/
+public class JobNotifyRecord extends JobRecord
+{
+ public static final String _rcsid = "@(#)$Id$";
+
+ /** Constructor.
+ */
+ public JobNotifyRecord(Long jobID)
+ {
+ super(jobID);
+ }
+
+}
Propchange: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobNotifyRecord.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobNotifyRecord.java
------------------------------------------------------------------------------
svn:keywords = Id
Added: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobRecord.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobRecord.java?rev=1457304&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobRecord.java (added)
+++ manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobRecord.java Sat Mar 16 20:53:46 2013
@@ -0,0 +1,63 @@
+/* $Id$ */
+
+/**
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.manifoldcf.crawler.interfaces;
+
+
+/** This class is a paper object which contains a job ID.
+*/
+public class JobRecord
+{
+ public static final String _rcsid = "@(#)$Id$";
+
+ /** The job id. */
+ protected final Long jobID;
+ /** Whether this job was started or not */
+ protected boolean wasStarted = false;
+
+ /** Constructor.
+ */
+ public JobRecord(Long jobID)
+ {
+ this.jobID = jobID;
+ }
+
+ /** Get the job ID.
+ *@return the id.
+ */
+ public Long getJobID()
+ {
+ return jobID;
+ }
+
+ /** Note that the job was started.
+ */
+ public void noteStarted()
+ {
+ wasStarted = true;
+ }
+
+ /** Check whether job was started.
+ *@return true if started.
+ */
+ public boolean wasStarted()
+ {
+ return wasStarted;
+ }
+
+}
Propchange: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobRecord.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobRecord.java
------------------------------------------------------------------------------
svn:keywords = Id
Added: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobSeedingRecord.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobSeedingRecord.java?rev=1457304&view=auto
==============================================================================
--- manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobSeedingRecord.java (added)
+++ manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobSeedingRecord.java Sat Mar 16 20:53:46 2013
@@ -0,0 +1,49 @@
+/* $Id$ */
+
+/**
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.manifoldcf.crawler.interfaces;
+
+
+/** This class is a paper object which contains a job ID and a last job start time (0 if none).
+*/
+public class JobSeedingRecord extends JobRecord
+{
+ public static final String _rcsid = "@(#)$Id$";
+
+ /** The last synch time */
+ protected final long synchTime;
+ /** Whether this job was started or not */
+ protected boolean wasStarted = false;
+
+ /** Constructor.
+ */
+ public JobSeedingRecord(Long jobID, long synchTime)
+ {
+ super(jobID);
+ this.synchTime = synchTime;
+ }
+
+ /** Get the synch time.
+ *@return the time.
+ */
+ public long getSynchTime()
+ {
+ return synchTime;
+ }
+
+}
Propchange: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobSeedingRecord.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobSeedingRecord.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobStartRecord.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobStartRecord.java?rev=1457304&r1=1457303&r2=1457304&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobStartRecord.java (original)
+++ manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/JobStartRecord.java Sat Mar 16 20:53:46 2013
@@ -19,33 +19,24 @@
package org.apache.manifoldcf.crawler.interfaces;
-/** This class is a paper object which contains a job ID and a last job start time (0 if none).
+/** This class is a paper object which contains a job ID and a last job start time.
*/
-public class JobStartRecord
+public class JobStartRecord extends JobRecord
{
public static final String _rcsid = "@(#)$Id: JobStartRecord.java 988245 2010-08-23 18:39:35Z kwright $";
- /** The job id. */
- protected Long jobID;
/** The last synch time */
- protected long synchTime;
- /** Whether this job was started or not */
- protected boolean wasStarted = false;
+ protected final long synchTime;
+ /** The requestMinimum flag */
+ protected final boolean requestMinimum;
/** Constructor.
*/
- public JobStartRecord(Long jobID, long synchTime)
+ public JobStartRecord(Long jobID, long synchTime, boolean requestMinimum)
{
- this.jobID = jobID;
+ super(jobID);
this.synchTime = synchTime;
- }
-
- /** Get the job ID.
- *@return the id.
- */
- public Long getJobID()
- {
- return jobID;
+ this.requestMinimum = requestMinimum;
}
/** Get the synch time.
@@ -56,19 +47,12 @@ public class JobStartRecord
return synchTime;
}
- /** Note that the job was started.
+ /** Get the requestMinimum flag.
+ *@return the flag.
*/
- public void noteStarted()
+ public boolean getRequestMinimum()
{
- wasStarted = true;
+ return requestMinimum;
}
-
- /** Check whether job was started.
- *@return true if started.
- */
- public boolean wasStarted()
- {
- return wasStarted;
- }
-
+
}
Modified: manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/ScheduleRecord.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/ScheduleRecord.java?rev=1457304&r1=1457303&r2=1457304&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/ScheduleRecord.java (original)
+++ manifoldcf/branches/CONNECTORS-663/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/ScheduleRecord.java Sat Mar 16 20:53:46 2013
@@ -31,15 +31,16 @@ public class ScheduleRecord
public static final String _rcsid = "@(#)$Id: ScheduleRecord.java 988245 2010-08-23 18:39:35Z kwright $";
// Absolute job-triggering times
- protected EnumeratedValues dayOfWeek = null;
- protected EnumeratedValues monthOfYear = null;
- protected EnumeratedValues dayOfMonth = null;
- protected EnumeratedValues year = null;
- protected EnumeratedValues hourOfDay = null;
- protected EnumeratedValues minutesOfHour = null;
- protected String timezone = null;
- protected Long duration = null;
-
+ protected final EnumeratedValues dayOfWeek;
+ protected final EnumeratedValues monthOfYear;
+ protected final EnumeratedValues dayOfMonth;
+ protected final EnumeratedValues year;
+ protected final EnumeratedValues hourOfDay;
+ protected final EnumeratedValues minutesOfHour;
+ protected final String timezone;
+ protected final Long duration;
+ protected final boolean requestMinimum;
+
/** Constructor.
*@param dayOfWeek is the day-of-week enumeration.
*@param monthOfYear is the month-of-year enumeration.
@@ -57,7 +58,8 @@ public class ScheduleRecord
EnumeratedValues hourOfDay,
EnumeratedValues minutesOfHour,
String timezone,
- Long duration)
+ Long duration,
+ boolean requestMinimum)
{
this.dayOfWeek = dayOfWeek;
this.monthOfYear = monthOfYear;
@@ -67,6 +69,7 @@ public class ScheduleRecord
this.minutesOfHour = minutesOfHour;
this.timezone = timezone;
this.duration = duration;
+ this.requestMinimum = requestMinimum;
}
/** Get the day of week.
@@ -133,6 +136,12 @@ public class ScheduleRecord
return duration;
}
-
+ /** Get whether the schedule record corresponds to a minimal request or not.
+ *@return true if minimal request.
+ */
+ public boolean getRequestMinimum()
+ {
+ return requestMinimum;
+ }
}