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 2014/06/03 16:15:13 UTC
svn commit: r1599557 - in /manifoldcf/branches/CONNECTORS-946/framework:
crawler-ui/src/main/webapp/
pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/
pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/
Author: kwright
Date: Tue Jun 3 14:15:13 2014
New Revision: 1599557
URL: http://svn.apache.org/r1599557
Log:
Hook up execute.jsp code for managing pipeline
Modified:
manifoldcf/branches/CONNECTORS-946/framework/crawler-ui/src/main/webapp/editjob.jsp
manifoldcf/branches/CONNECTORS-946/framework/crawler-ui/src/main/webapp/execute.jsp
manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IJobDescription.java
manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobDescription.java
Modified: manifoldcf/branches/CONNECTORS-946/framework/crawler-ui/src/main/webapp/editjob.jsp
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-946/framework/crawler-ui/src/main/webapp/editjob.jsp?rev=1599557&r1=1599556&r2=1599557&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-946/framework/crawler-ui/src/main/webapp/editjob.jsp (original)
+++ manifoldcf/branches/CONNECTORS-946/framework/crawler-ui/src/main/webapp/editjob.jsp Tue Jun 3 14:15:13 2014
@@ -950,7 +950,9 @@
<td class="boxcell" colspan="3">
<table class="formtable">
<tr class="formheaderrow">
- <td class="formcolumnheader"></td>
+ <td class="formcolumnheader">
+ <input name="pipeline_count" type="hidden" value="<%=transformationNames.length%>"/>
+ </td>
<td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StageNumber")%></nobr></td>
<td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StageDescription")%></nobr></td>
<td class="formcolumnheader"><nobr><%=Messages.getBodyString(pageContext.getRequest().getLocale(),"editjob.StageConnectionName")%></nobr></td>
@@ -1122,6 +1124,18 @@
%>
<input type="hidden" name="outputname" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(outputName)%>'/>
<input type="hidden" name="connectionname" value='<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(connectionName)%>'/>
+ <input type="hidden" name="pipeline_count" value="<%=transformationNames.length%>"/>
+<%
+ for (int j = 0; j < transformationNames.length; j++)
+ {
+ String transformationName = transformationNames[j];
+ String transformationDescription = transformationDescriptions[j];
+%>
+ <input type="hidden" name="pipeline_<%=j%>_connectionname" value="<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(transformationName)%>"/>
+ <input type="hidden" name="pipeline_<%=j%>_description" value="<%=org.apache.manifoldcf.ui.util.Encoder.attributeEscape(transformationDescription)%>"/>
+<%
+ }
+%>
<input type="hidden" name="priority" value='<%=priority%>'/>
<input type="hidden" name="startmethod" value='<%=startMethod%>'/>
<%
Modified: manifoldcf/branches/CONNECTORS-946/framework/crawler-ui/src/main/webapp/execute.jsp
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-946/framework/crawler-ui/src/main/webapp/execute.jsp?rev=1599557&r1=1599556&r2=1599557&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-946/framework/crawler-ui/src/main/webapp/execute.jsp (original)
+++ manifoldcf/branches/CONNECTORS-946/framework/crawler-ui/src/main/webapp/execute.jsp Tue Jun 3 14:15:13 2014
@@ -750,7 +750,7 @@
<%
}
}
- else if (type != null && op != null && type.equals("output"))
+ else if (type != null && op != null && type.equals("transformation"))
{
// -- Output connection editing operations --
if (op.equals("Save") || op.equals("Continue"))
@@ -906,6 +906,21 @@
x = variableContext.getParameter("hopcountmode");
if (x != null)
job.setHopcountMode(Integer.parseInt(x));
+ x = variableContext.getParameter("pipeline_count");
+ if (x != null)
+ {
+ // Do we need to keep the old specifications around, or can we destroy them?
+ // Not clear that retention is required., so I'm not wasting time trying to implement that.
+ int count = Integer.parseInt(x);
+ job.clearPipeline();
+ for (int j = 0; j < count; j++)
+ {
+ // Gather everything first; we'll look at edits later
+ String connectionName = variableContext.getParameter("pipeline_"+j+"_connectionname");
+ String description = variableContext.getParameter("pipeline_"+j+"_description");
+ job.addPipelineStage(connectionName, description);
+ }
+ }
x = variableContext.getParameter("schedulerecords");
String[] y;
@@ -1183,7 +1198,7 @@
{
try
{
- String error = outputConnector.processSpecificationPost(variableContext,pageContext.getRequest().getLocale(),job.getOutputSpecification(),1);
+ String error = outputConnector.processSpecificationPost(variableContext,pageContext.getRequest().getLocale(),job.getOutputSpecification(),1+job.countPipelineStages());
if (error != null)
{
variableContext.setParameter("text",error);
@@ -1224,6 +1239,65 @@
}
}
+ // Process all pipeline stages
+ for (int j = 0; j < job.countPipelineStages(); j++)
+ {
+ ITransformationConnection transformationConnection = transformationManager.load(job.getPipelineStageConnectionName(j));
+ if (transformationConnection != null)
+ {
+ ITransformationConnector transformationConnector = transformationConnectorPool.grab(transformationConnection);
+ if (transformationConnector != null)
+ {
+ try
+ {
+ String error = transformationConnector.processSpecificationPost(variableContext,pageContext.getRequest().getLocale(),job.getPipelineStageSpecification(j),1+j);
+ if (error != null)
+ {
+ variableContext.setParameter("text",error);
+ variableContext.setParameter("target","listjobs.jsp");
+%>
+ <jsp:forward page="error.jsp"/>
+<%
+ }
+ }
+ finally
+ {
+ transformationConnectorPool.release(transformationConnection,transformationConnector);
+ }
+ }
+ }
+ }
+
+ // Now, after gathering is complete, consider doing changes to the pipeline.
+ int currentStage = 0;
+ for (int j = 0; j < job.countPipelineStages(); j++)
+ {
+ // Look at the operation
+ x = variableContext.getParameter("pipeline_"+j+"_op");
+ if (x != null && x.equals("Delete"))
+ {
+ // Delete this pipeline stage
+ job.deletePipelineStage(currentStage);
+ }
+ else if (x != null && x.equals("Insert"))
+ {
+ // Insert a new stage before this one
+ String connectionName = variableContext.getParameter("pipeline_connectionname");
+ String description = variableContext.getParameter("pipeline_description");
+ job.insertPipelineStage(currentStage++,connectionName,description);
+ }
+ else
+ currentStage++;
+ }
+ x = variableContext.getParameter("pipeline_op");
+ if (x != null && x.equals("Add"))
+ {
+ // Append a new stage at the end
+ String connectionName = variableContext.getParameter("pipeline_connectionname");
+ String description = variableContext.getParameter("pipeline_description");
+ job.addPipelineStage(connectionName,description);
+ }
+
if (op.equals("Continue"))
{
threadContext.save("JobObject",job);
Modified: manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IJobDescription.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IJobDescription.java?rev=1599557&r1=1599556&r2=1599557&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IJobDescription.java (original)
+++ manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IJobDescription.java Tue Jun 3 14:15:13 2014
@@ -130,7 +130,14 @@ public interface IJobDescription
*/
public void deletePipelineStage(int index);
-
+ /** Insert a new pipeline stage.
+ *@param index is the index to insert pipeline stage before
+ *@param pipelineStageConnectionName is the connection name.
+ *@param pipelineStageDescription is the description.
+ *@return the newly-created output specification.
+ */
+ public OutputSpecification insertPipelineStage(int index, String pipelineStageConnectionName, String pipelineStageDescription);
+
/** Set the job type.
*@param type is the type (as an integer).
*/
Modified: manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobDescription.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobDescription.java?rev=1599557&r1=1599556&r2=1599557&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobDescription.java (original)
+++ manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobDescription.java Tue Jun 3 14:15:13 2014
@@ -278,6 +278,21 @@ public class JobDescription implements I
return pipelineStages.size();
}
+ /** Insert a new pipeline stage.
+ *@param index is the index to insert pipeline stage before
+ *@param pipelineStageConnectionName is the connection name.
+ *@param pipelineStageDescription is the description.
+ *@return the newly-created output specification.
+ */
+ public OutputSpecification insertPipelineStage(int index, String pipelineStageConnectionName, String pipelineStageDescription)
+ {
+ if (readOnly)
+ throw new IllegalStateException("Attempt to change read-only object");
+ PipelineStage ps = new PipelineStage(pipelineStageConnectionName,pipelineStageDescription);
+ pipelineStages.add(index,ps);
+ return ps.getSpecification();
+ }
+
/** Get a specific pipeline connection name.
*@param index is the index of the pipeline stage whose connection name to get.
*@return the name of the connection.