<%@ include file="adminHeaders.jsp" %> <% /* $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. */ %> <% try { // Check if authorized if (!adminprofile.checkAllowed(threadContext,IAuthorizer.CAPABILITY_VIEW_JOBS)) { variableContext.setParameter("target","index.jsp"); %> <% } // Get the job manager handle IJobManager manager = JobManagerFactory.make(threadContext); IOutputConnectionManager outputManager = OutputConnectionManagerFactory.make(threadContext); IRepositoryConnectionManager connManager = RepositoryConnectionManagerFactory.make(threadContext); INotificationConnectionManager notificationManager = NotificationConnectionManagerFactory.make(threadContext); ITransformationConnectionManager transformationManager = TransformationConnectionManagerFactory.make(threadContext); IOutputConnectorPool outputConnectorPool = OutputConnectorPoolFactory.make(threadContext); IRepositoryConnectorPool repositoryConnectorPool = RepositoryConnectorPoolFactory.make(threadContext); INotificationConnectorPool notificationConnectorPool = NotificationConnectorPoolFactory.make(threadContext); ITransformationConnectorPool transformationConnectorPool = TransformationConnectorPoolFactory.make(threadContext); String jobID = variableContext.getParameter("jobid"); IJobDescription job = manager.load(new Long(jobID)); if (job == null) { throw new ManifoldCFException("No such job: "+jobID); } else { String naMessage = Messages.getString(pageContext.getRequest().getLocale(),"viewjob.Notapplicable"); String jobType = ""; String intervalString = naMessage; String maxIntervalString = naMessage; String reseedIntervalString = naMessage; String expirationIntervalString = naMessage; switch (job.getType()) { case IJobDescription.TYPE_CONTINUOUS: String infinityMessage = Messages.getString(pageContext.getRequest().getLocale(),"viewjob.Infinity"); String minutesMessage = Messages.getString(pageContext.getRequest().getLocale(),"viewjob.minutes"); jobType = Messages.getString(pageContext.getRequest().getLocale(),"viewjob.Rescandocumentsdynamically"); Long recrawlInterval = job.getInterval(); Long maxRecrawlInterval = job.getMaxInterval(); Long reseedInterval = job.getReseedInterval(); Long expirationInterval = job.getExpiration(); intervalString = (recrawlInterval==null)?infinityMessage:(new Long(recrawlInterval.longValue()/60000L).toString()+" "+minutesMessage); maxIntervalString = (maxRecrawlInterval==null)?infinityMessage:(new Long(maxRecrawlInterval.longValue()/60000L).toString()+" "+minutesMessage); reseedIntervalString = (reseedInterval==null)?infinityMessage:(new Long(reseedInterval.longValue()/60000L).toString()+" "+minutesMessage); expirationIntervalString = (expirationInterval==null)?infinityMessage:(new Long(expirationInterval.longValue()/60000L).toString()+" "+minutesMessage); break; case IJobDescription.TYPE_SPECIFIED: jobType = Messages.getString(pageContext.getRequest().getLocale(),"viewjob.Scaneverydocumentonce"); break; default: } String startMethod = ""; switch (job.getStartMethod()) { case IJobDescription.START_WINDOWBEGIN: startMethod = Messages.getString(pageContext.getRequest().getLocale(),"viewjob.Startatbeginningofschedulewindow"); break; case IJobDescription.START_WINDOWINSIDE: startMethod = Messages.getString(pageContext.getRequest().getLocale(),"viewjob.Startinsideschedulewindow"); break; case IJobDescription.START_DISABLE: startMethod = Messages.getString(pageContext.getRequest().getLocale(),"viewjob.Dontautomaticallystart"); break; default: break; } int priority = job.getPriority(); String connectionName = job.getConnectionName(); IRepositoryConnection connection = connManager.load(connectionName); int model = RepositoryConnectorFactory.getConnectorModel(threadContext,connection.getClassName()); String[] relationshipTypes = RepositoryConnectorFactory.getRelationshipTypes(threadContext,connection.getClassName()); Map hopCountFilters = job.getHopCountFilters(); int hopcountMode = job.getHopcountMode(); //threadContext.save("OutputSpecification",job.getOutputSpecification()); //threadContext.save("OutputConnection",outputConnection); //threadContext.save("DocumentSpecification",job.getSpecification()); //threadContext.save("RepositoryConnection",connection); int rowCounter = 0; %>
<% if (model != -1 && model != IRepositoryConnector.MODEL_ADD_CHANGE_DELETE) { %> <% } if (job.getScheduleRecordCount() == 0) { %> <% } else { // Loop through the schedule records int j = 0; while (j < job.getScheduleRecordCount()) { ScheduleRecord sr = job.getScheduleRecord(j); Long srDuration = sr.getDuration(); boolean srRequestMinimum = sr.getRequestMinimum(); String srTimezone = sr.getTimezone(); EnumeratedValues srDayOfWeek = sr.getDayOfWeek(); EnumeratedValues srMonthOfYear = sr.getMonthOfYear(); EnumeratedValues srDayOfMonth = sr.getDayOfMonth(); EnumeratedValues srYear = sr.getYear(); EnumeratedValues srHourOfDay = sr.getHourOfDay(); EnumeratedValues srMinutesOfHour = sr.getMinutesOfHour(); %> <% j++; } } if (relationshipTypes != null && relationshipTypes.length > 0) { int k = 0; while (k < relationshipTypes.length) { String relationshipType = relationshipTypes[k++]; Long value = (Long)hopCountFilters.get(relationshipType); %> <% } %> <% } %> <% for (int j = 0; j < job.countPipelineStages(); j++) { %> <% } for (int j = 0; j < job.countNotifications(); j++) { %> <% } %>
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.NameColon")%> <%=""%><%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(job.getDescription())%>
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.PipelineColon")%> <% for (int j = 0; j < job.countPipelineStages(); j++) { %> <% } %>
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.StageNumber")%> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.StageType")%> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.StagePrecedent")%> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.StageDescription")%> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.StageConnectionName")%>
1. <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Repository")%> <%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(connectionName)%>
<%=(j+2)%>. <%=job.getPipelineStageIsOutputConnection(j)?Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Output"):Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Transformation")%> <%=(job.getPipelineStagePrerequisite(j)+2)%>. <%=(job.getPipelineStageDescription(j)!=null)?org.apache.manifoldcf.ui.util.Encoder.bodyEscape(job.getPipelineStageDescription(j)):""%> <%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(job.getPipelineStageConnectionName(j))%>
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.NotificationsColon")%> <% for (int j = 0; j < job.countNotifications(); j++) { %> <% } if (job.countNotifications() == 0) { %>
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.StageNumber")%> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.NotificationDescription")%> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.NotificationConnectionName")%>
<%=(j+job.countPipelineStages()+2)%>. <%=(job.getNotificationDescription(j)!=null)?org.apache.manifoldcf.ui.util.Encoder.bodyEscape(job.getNotificationDescription(j)):""%> <%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(job.getNotificationConnectionName(j))%>
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.NoNotificationConnections")%>
<% } %>
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.PriorityColon")%> <%=priority%> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.StartMethodColon")%> <%=startMethod%>
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.ScheduleTypeColon")%> <%=jobType%>
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.MinimumRecrawlIntervalColon")%> <%=intervalString%> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.MaximumRecrawlIntervalColon")%> <%=maxIntervalString%>
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.ExpirationIntervalColon")%> <%=expirationIntervalString%> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.ReseedIntervalColon")%> <%=reseedIntervalString%>

<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.NoScheduledRunTimes")%>

<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.ScheduledTimeColon")%> <% if (srTimezone != null) { out.println(srTimezone + ": "); } if (srDayOfWeek == null) out.println(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Anydayoftheweek")); else { StringBuffer sb = new StringBuffer(); boolean firstTime = true; if (srDayOfWeek.checkValue(0)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Sundays")); } if (srDayOfWeek.checkValue(1)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Mondays")); } if (srDayOfWeek.checkValue(2)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Tuesdays")); } if (srDayOfWeek.checkValue(3)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Wednesdays")); } if (srDayOfWeek.checkValue(4)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Thursdays")); } if (srDayOfWeek.checkValue(5)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Fridays")); } if (srDayOfWeek.checkValue(6)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Saturdays")); } out.println(sb.toString()); } %> <% if (srHourOfDay == null) { if (srMinutesOfHour != null) out.println(" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.oneveryhour")+" "); else out.println(" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.atmidnight")+" "); } else { out.println(" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.at")+" "); int k = 0; while (k < 24) { int q = k; String ampm; if (k < 12) ampm = Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.am"); else { ampm = Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.pm"); q -= 12; } String hour; if (q == 0) q = 12; if (srHourOfDay.checkValue(k)) out.println(Integer.toString(q)+" "+ampm+" "); k++; } } %> <% if (srMinutesOfHour != null) { out.println(" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.plus")+" "); int k = 0; while (k < 60) { if (srMinutesOfHour.checkValue(k)) out.println(Integer.toString(k)+" "); k++; } out.println(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.minutes")+" "); } %> <% if (srMonthOfYear == null) { if (srDayOfMonth == null && srDayOfWeek == null && srHourOfDay == null && srMinutesOfHour == null) out.println(" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.ineverymonthofyear")); } else { StringBuffer sb = new StringBuffer(" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.in")+" "); boolean firstTime = true; if (srMonthOfYear.checkValue(0)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.January")); } if (srMonthOfYear.checkValue(1)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.February")); } if (srMonthOfYear.checkValue(2)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.March")); } if (srMonthOfYear.checkValue(3)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.April")); } if (srMonthOfYear.checkValue(4)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.May")); } if (srMonthOfYear.checkValue(5)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.June")); } if (srMonthOfYear.checkValue(6)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.July")); } if (srMonthOfYear.checkValue(7)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.August")); } if (srMonthOfYear.checkValue(8)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.September")); } if (srMonthOfYear.checkValue(9)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.October")); } if (srMonthOfYear.checkValue(10)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.November")); } if (srMonthOfYear.checkValue(11)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.December")); } out.println(sb.toString()); } %> <% if (srDayOfMonth == null) { if (srDayOfWeek == null && srHourOfDay == null && srMinutesOfHour == null) out.println(" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.onanydayofthemonth")); } else { StringBuffer sb = new StringBuffer(" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.onthe")+" "); int k = 0; boolean firstTime = true; while (k < 31) { if (srDayOfMonth.checkValue(k)) { if (firstTime) firstTime = false; else sb.append(","); sb.append(Integer.toString(k+1)); int value = (k+1) % 10; if (value == 1 && k != 10) sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.st")); else if (value == 2 && k != 11) sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.nd")); else if (value == 3 && k != 12) sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.rd")); else sb.append(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.th")); } k++; } sb.append(" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.ofthemonth")); out.println(sb.toString()); } %> <% if (srYear != null) { StringBuffer sb = new StringBuffer(" "+Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.inyears")+" "); Iterator iter = srYear.getValues(); boolean firstTime = true; while (iter.hasNext()) { if (firstTime) firstTime = false; else sb.append(","); Integer value = (Integer)iter.next(); sb.append(value.toString()); } out.println(sb.toString()); } %>
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.MaximumRunTimeColon")%> <% if (srDuration == null) out.println(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Nolimit")); else out.println(new Long(srDuration.longValue()/60000L).toString() + " "+Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.minutes")); %> <%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.JobInvocationColon")%> <% if (srRequestMinimum) out.println(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Minimal")); else out.println(Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Complete")); %>
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.MaximumHopCountForLinkType")%>'<%=org.apache.manifoldcf.ui.util.Encoder.bodyEscape(relationshipType)%>': <%=((value==null)?Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Unlimited"):value.toString())%>
<%=Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.HopCountModeColon")%> <%=(hopcountMode==IJobDescription.HOPCOUNT_ACCURATE)?Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Deleteunreachabledocuments"):""%> <%=(hopcountMode==IJobDescription.HOPCOUNT_NODELETE)?Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Nodeletesfornow"):""%> <%=(hopcountMode==IJobDescription.HOPCOUNT_NEVERDELETE)?Messages.getBodyString(pageContext.getRequest().getLocale(),"viewjob.Nodeletesforever"):""%>
1.
<% if (connection != null) { IRepositoryConnector repositoryConnector = repositoryConnectorPool.grab(connection); if (repositoryConnector != null) { try { repositoryConnector.viewSpecification(new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),job.getSpecification(),0); } finally { repositoryConnectorPool.release(connection,repositoryConnector); } } } %>
<%=(j + 2)%>.
<% Specification os = job.getPipelineStageSpecification(j); if (job.getPipelineStageIsOutputConnection(j)) { IOutputConnection thisConnection = outputManager.load(job.getPipelineStageConnectionName(j)); IOutputConnector outputConnector = outputConnectorPool.grab(thisConnection); if (outputConnector != null) { try { outputConnector.viewSpecification(new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),os,1+j); } finally { outputConnectorPool.release(thisConnection,outputConnector); } } } else { ITransformationConnection thisConnection = transformationManager.load(job.getPipelineStageConnectionName(j)); ITransformationConnector transformationConnector = transformationConnectorPool.grab(thisConnection); if (transformationConnector != null) { try { transformationConnector.viewSpecification(new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),os,1+j); } finally { transformationConnectorPool.release(thisConnection,transformationConnector); } } } %>
<%=(j + job.countPipelineStages() + 2)%>.
<% Specification os = job.getNotificationSpecification(j); INotificationConnection thisConnection = notificationManager.load(job.getNotificationConnectionName(j)); INotificationConnector notificationConnector = notificationConnectorPool.grab(thisConnection); if (notificationConnector != null) { try { notificationConnector.viewSpecification(new org.apache.manifoldcf.ui.jsp.JspWrapper(out,adminprofile),pageContext.getRequest().getLocale(),os,1+job.countPipelineStages()+j); } finally { notificationConnectorPool.release(thisConnection,notificationConnector); } } %>
<% } } catch (ManifoldCFException e) { e.printStackTrace(); variableContext.setParameter("text",e.getMessage()); variableContext.setParameter("target","listjobs.jsp"); %> <% } %>