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/12/21 18:51:18 UTC
svn commit: r1647183 -
/manifoldcf/branches/CONNECTORS-1119/framework/crawler-ui/src/main/webapp/execute.jsp
Author: kwright
Date: Sun Dec 21 17:51:17 2014
New Revision: 1647183
URL: http://svn.apache.org/r1647183
Log:
Process job notification posting
Modified:
manifoldcf/branches/CONNECTORS-1119/framework/crawler-ui/src/main/webapp/execute.jsp
Modified: manifoldcf/branches/CONNECTORS-1119/framework/crawler-ui/src/main/webapp/execute.jsp
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-1119/framework/crawler-ui/src/main/webapp/execute.jsp?rev=1647183&r1=1647182&r2=1647183&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-1119/framework/crawler-ui/src/main/webapp/execute.jsp (original)
+++ manifoldcf/branches/CONNECTORS-1119/framework/crawler-ui/src/main/webapp/execute.jsp Sun Dec 21 17:51:17 2014
@@ -56,6 +56,7 @@
IOutputConnectorPool outputConnectorPool = OutputConnectorPoolFactory.make(threadContext);
ITransformationConnectorPool transformationConnectorPool = TransformationConnectorPoolFactory.make(threadContext);
IRepositoryConnectorPool repositoryConnectorPool = RepositoryConnectorPoolFactory.make(threadContext);
+ INotificationConnectorPool notificationConnectorPool = NotificationConnectorPoolFactory.make(threadContext);
String type = variableContext.getParameter("type");
String op = variableContext.getParameter("op");
@@ -1034,6 +1035,21 @@
job.addPipelineStage(precedent, isOutput, connectionName, description);
}
}
+ x = variableContext.getParameter("notification_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.clearNotifications();
+ for (int j = 0; j < count; j++)
+ {
+ // Gather everything first; we'll look at edits later
+ String connectionName = variableContext.getParameter("notification_"+j+"_connectionname");
+ String description = variableContext.getParameter("notification_"+j+"_description");
+ job.addNotification(connectionName, description);
+ }
+ }
x = variableContext.getParameter("schedulerecords");
String[] y;
@@ -1354,6 +1370,34 @@
}
}
+ for (int j = 0; j < job.countNotifications(); j++)
+ {
+ INotificationConnection notificationConnection = notificationManager.load(job.getNotificationConnectionName(j));
+ if (notificationConnection != null)
+ {
+ INotificationConnector notificationConnector = notificationConnectorPool.grab(notificationConnection);
+ if (notificationConnector != null)
+ {
+ try
+ {
+ String error = notificationConnector.processSpecificationPost(variableContext,pageContext.getRequest().getLocale(),job.getNotificationSpecification(j),1+job.countPipelineStages()+j);
+ if (error != null)
+ {
+ variableContext.setParameter("text",error);
+ variableContext.setParameter("target","listjobs.jsp");
+%>
+ <jsp:forward page="error.jsp"/>
+<%
+ }
+ }
+ finally
+ {
+ notificationConnectorPool.release(notificationConnection,notificationConnector);
+ }
+ }
+ }
+ }
+
// Now, after gathering is complete, consider doing changes to the pipeline.
int currentStage = 0;
for (int j = 0; j < job.countPipelineStages(); j++)
@@ -1384,6 +1428,7 @@
else
currentStage++;
}
+
x = variableContext.getParameter("output_op");
if (x != null && x.equals("Add"))
{
@@ -1394,6 +1439,28 @@
job.addPipelineStage(precedent,true,connectionName,description);
}
+ currentStage = 0;
+ for (int j = 0; j < job.countNotifications(); j++)
+ {
+ // Look at the operation
+ x = variableContext.getParameter("notification_"+j+"_op");
+ if (x != null && x.equals("Delete"))
+ {
+ // Delete this pipeline stage (and rewire other stages according to rules)
+ job.deleteNotification(currentStage);
+ }
+ else
+ currentStage++;
+ }
+ x = variableContext.getParameter("notification_op");
+ if (x != null && x.equals("Add"))
+ {
+ // Append a new stage at the end
+ String connectionName = variableContext.getParameter("notification_connectionname");
+ String description = variableContext.getParameter("notification_description");
+ job.addNotification(connectionName,description);
+ }
+
if (op.equals("Continue"))
{
threadContext.save("JobObject",job);