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 2010/05/14 16:47:36 UTC

svn commit: r944298 - in /incubator/lcf/trunk/modules/framework: agents/org/apache/lcf/agents/incrementalingest/ agents/org/apache/lcf/agents/interfaces/ agents/org/apache/lcf/agents/outputconnection/ agents/org/apache/lcf/agents/system/ crawler-ui/ pu...

Author: kwright
Date: Fri May 14 14:47:35 2010
New Revision: 944298

URL: http://svn.apache.org/viewvc?rev=944298&view=rev
Log:
Hook up a link to force reindexing of all documents, on a per-output-connector basis.

Modified:
    incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/incrementalingest/IncrementalIngester.java
    incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/interfaces/AgentManagerFactory.java
    incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/interfaces/IAgent.java
    incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/interfaces/IIncrementalIngester.java
    incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/outputconnection/OutputConnectionManager.java
    incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/system/LCF.java
    incubator/lcf/trunk/modules/framework/crawler-ui/execute.jsp
    incubator/lcf/trunk/modules/framework/crawler-ui/viewoutput.jsp
    incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/interfaces/IJobManager.java
    incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/JobManager.java
    incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/Jobs.java
    incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/repository/RepositoryConnectionManager.java
    incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/system/CrawlerAgent.java
    incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/system/LCF.java

Modified: incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/incrementalingest/IncrementalIngester.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/incrementalingest/IncrementalIngester.java?rev=944298&r1=944297&r2=944298&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/incrementalingest/IncrementalIngester.java (original)
+++ incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/incrementalingest/IncrementalIngester.java Fri May 14 14:47:35 2010
@@ -1185,6 +1185,21 @@ public class IncrementalIngester extends
     }
   }
 
+  /** Reset all documents belonging to a specific output connection, because we've got information that
+  * that system has been reconfigured.  This will force all such documents to be reindexed the next time
+  * they are checked.
+  *@param outputConnectionName is the name of the output connection associated with this action.
+  */
+  public void resetOutputConnection(String outputConnectionName)
+    throws LCFException
+  {
+    // We're not going to blow away the records, but we are going to set their versions to mean, "reindex required"
+    HashMap map = new HashMap();
+    map.put(lastVersionField,null);
+    ArrayList list = new ArrayList();
+    list.add(outputConnectionName);
+    performUpdate(map,"WHERE "+outputConnNameField+"=?",list,null);
+  }
 
   /** Note the ingestion of a document, or the "update" of a document.
   *@param outputConnectionName is the name of the output connection.

Modified: incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/interfaces/AgentManagerFactory.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/interfaces/AgentManagerFactory.java?rev=944298&r1=944297&r2=944298&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/interfaces/AgentManagerFactory.java (original)
+++ incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/interfaces/AgentManagerFactory.java Fri May 14 14:47:35 2010
@@ -108,6 +108,23 @@ public class AgentManagerFactory
     }
   }
 
+  /** Note to all registered agents the change of configuration of an output connection.
+  * This method will be called when the connection's xml is modified.
+  *@param threadContext is the thread context.
+  *@param connectionName is the connection name.
+  */
+  public static void noteOutputConnectionChange(IThreadContext threadContext, String connectionName)
+    throws LCFException
+  {
+    // Instantiate the list of IAgent objects
+    IAgent[] theAgents = instantiateAllAgents(threadContext);
+    int i = 0;
+    while (i < theAgents.length)
+    {
+      theAgents[i++].noteOutputConnectionChange(connectionName);
+    }
+  }
+
   /** Instantiate the complete set of IAgent objects.
   *@param threadContext is the thread context.
   *@return the array of such objects.

Modified: incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/interfaces/IAgent.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/interfaces/IAgent.java?rev=944298&r1=944297&r2=944298&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/interfaces/IAgent.java (original)
+++ incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/interfaces/IAgent.java Fri May 14 14:47:35 2010
@@ -71,4 +71,10 @@ public interface IAgent
   public void noteOutputConnectorRegistration(String[] connectionNames)
     throws LCFException;
 
+  /** Note a change in configuration for an output connection.
+  *@param connectionName is the name of the connection being changed.
+  */
+  public void noteOutputConnectionChange(String connectionName)
+    throws LCFException;
+  
 }

Modified: incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/interfaces/IIncrementalIngester.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/interfaces/IIncrementalIngester.java?rev=944298&r1=944297&r2=944298&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/interfaces/IIncrementalIngester.java (original)
+++ incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/interfaces/IIncrementalIngester.java Fri May 14 14:47:35 2010
@@ -239,5 +239,12 @@ public interface IIncrementalIngester
     String identifierClass, String identifierHash)
     throws LCFException;
 
-
+  /** Reset all documents belonging to a specific output connection, because we've got information that
+  * that system has been reconfigured.  This will force all such documents to be reindexed the next time
+  * they are checked.
+  *@param outputConnectionName is the name of the output connection associated with this action.
+  */
+  public void resetOutputConnection(String outputConnectionName)
+    throws LCFException;
+    
 }

Modified: incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/outputconnection/OutputConnectionManager.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/outputconnection/OutputConnectionManager.java?rev=944298&r1=944297&r2=944298&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/outputconnection/OutputConnectionManager.java (original)
+++ incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/outputconnection/OutputConnectionManager.java Fri May 14 14:47:35 2010
@@ -259,10 +259,17 @@ public class OutputConnectionManager ext
         values.put(descriptionField,object.getDescription());
         values.put(classNameField,object.getClassName());
         values.put(maxCountField,new Long((long)object.getMaxConnections()));
-        values.put(configField,object.getConfigParams().toXML());
+        String configXML = object.getConfigParams().toXML();
+        values.put(configField,configXML);
+        boolean notificationNeeded = false;
 
         if (set.getRowCount() > 0)
         {
+          IResultRow row = set.getRow(0);
+          String oldXML = (String)row.getValue(configField);
+          if (oldXML == null || !oldXML.equals(configXML))
+            notificationNeeded = true;
+
           // Update
           params.clear();
           params.add(object.getName());
@@ -275,6 +282,10 @@ public class OutputConnectionManager ext
           // We only need the general key because this is new.
           performInsert(values,null);
         }
+        
+        // If notification required, do it.
+        if (notificationNeeded)
+          AgentManagerFactory.noteOutputConnectionChange(threadContext,object.getName());
 
         cacheManager.invalidateKeys(ch);
       }

Modified: incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/system/LCF.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/system/LCF.java?rev=944298&r1=944297&r2=944298&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/system/LCF.java (original)
+++ incubator/lcf/trunk/modules/framework/agents/org/apache/lcf/agents/system/LCF.java Fri May 14 14:47:35 2010
@@ -143,5 +143,23 @@ public class LCF extends org.apache.lcf.
     }
     // Done.
   }
+  
+  /** Signal output connection needs redoing.
+  * This is called when something external changed on an output connection, and
+  * therefore all associated documents must be reindexed.
+  *@param threadContext is the thread context.
+  *@param connectionName is the connection name.
+  */
+  public static void signalOutputConnectionRedo(IThreadContext threadContext, String connectionName)
+    throws LCFException
+  {
+    // Blow away the incremental ingestion table first
+    IIncrementalIngester ingester = IncrementalIngesterFactory.make(threadContext);
+    ingester.resetOutputConnection(connectionName);
+    // Now, signal to all agents that the output connection configuration has changed.  Do this second, so that there cannot be documents
+    // resulting from this signal that find themselves "unchanged".
+    AgentManagerFactory.noteOutputConnectionChange(threadContext,connectionName);
+  }
+  
 }
 

Modified: incubator/lcf/trunk/modules/framework/crawler-ui/execute.jsp
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/crawler-ui/execute.jsp?rev=944298&r1=944297&r2=944298&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/crawler-ui/execute.jsp (original)
+++ incubator/lcf/trunk/modules/framework/crawler-ui/execute.jsp Fri May 14 14:47:35 2010
@@ -528,6 +528,45 @@
 		    }
 
 
+		    else if (op.equals("ReingestAll"))
+		    {
+			// Reingest signal operation
+			String type = variableContext.getParameter("type");
+			if (type != null && type.equals("output"))
+			{
+				try
+				{
+					String connectionName = variableContext.getParameter("connname");
+					if (connectionName == null)
+						throw new LCFException("Missing connection parameter");
+					org.apache.lcf.agents.system.LCF.signalOutputConnectionRedo(threadContext,connectionName);
+%>
+					<jsp:forward page="listoutputs.jsp"/>
+<%
+				}
+				catch (LCFException e)
+				{
+					e.printStackTrace();
+					variableContext.setParameter("text",e.getMessage());
+					variableContext.setParameter("target","listoutputs.jsp");
+%>
+					<jsp:forward page="error.jsp"/>
+<%
+				}
+			}
+			else
+			{
+				// Error
+				variableContext.setParameter("text","Illegal parameter to page");
+				variableContext.setParameter("target","index.jsp");
+%>
+				<jsp:forward page="error.jsp"/>
+<%
+			}
+
+		    }
+		    
+		    
 		    else if (op.equals("Delete"))
 		    {
 			// Delete operation

Modified: incubator/lcf/trunk/modules/framework/crawler-ui/viewoutput.jsp
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/crawler-ui/viewoutput.jsp?rev=944298&r1=944297&r2=944298&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/crawler-ui/viewoutput.jsp (original)
+++ incubator/lcf/trunk/modules/framework/crawler-ui/viewoutput.jsp Fri May 14 14:47:35 2010
@@ -45,6 +45,16 @@
 		}
 	}
 
+	function ReingestAll(connectionName)
+	{
+		if (confirm("This command will force all documents associated with output\nconnection '"+connectionName+"' to be recrawled the next time their associated\n jobs are started.  Do you want to continue?"))
+		{
+			document.viewconnection.op.value="ReingestAll";
+			document.viewconnection.connname.value=connectionName;
+			document.viewconnection.submit();
+		}
+	}
+	
 	//-->
 	</script>
 
@@ -153,8 +163,12 @@
 			<tr>
 				<td class="separator" colspan="4"><hr/></td>
 			</tr>
-		<tr><td class="message" colspan="4"><a href='<%="viewoutput.jsp?connname="+java.net.URLEncoder.encode(connectionName,"UTF-8")%>' alt="Refresh">Refresh</a>&nbsp;<a href='<%="editoutput.jsp?connname="+java.net.URLEncoder.encode(connectionName,"UTF-8")%>' alt="Edit this output connection">Edit</a>&nbsp;<a href="javascript:void()" onclick='<%="javascript:Delete(\""+org.apache.lcf.ui.util.Encoder.attributeJavascriptEscape(connectionName)+"\")"%>' alt="Delete this output connection">Delete</a>
-		</td></tr>
+		<tr>
+			<td class="message" colspan="4">
+				<nobr><a href='<%="viewoutput.jsp?connname="+java.net.URLEncoder.encode(connectionName,"UTF-8")%>' alt="Refresh">Refresh</a>&nbsp;<a href='<%="editoutput.jsp?connname="+java.net.URLEncoder.encode(connectionName,"UTF-8")%>' alt="Edit this output connection">Edit</a>&nbsp;<a href="javascript:void()" onclick='<%="javascript:Delete(\""+org.apache.lcf.ui.util.Encoder.attributeJavascriptEscape(connectionName)+"\")"%>' alt="Delete this output connection">Delete</a></nobr><br/>
+				<nobr><a href="javascript:void()" onclick='<%="javascript:ReingestAll(\""+org.apache.lcf.ui.util.Encoder.attributeJavascriptEscape(connectionName)+"\")"%>' alt="Re-ingest all documents associated with this output connection">Re-ingest all associated documents</a></nobr>
+			</td>
+		</tr>
 		</table>
 
 <%

Modified: incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/interfaces/IJobManager.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/interfaces/IJobManager.java?rev=944298&r1=944297&r2=944298&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/interfaces/IJobManager.java (original)
+++ incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/interfaces/IJobManager.java Fri May 14 14:47:35 2010
@@ -672,6 +672,13 @@ public interface IJobManager
   public void noteConnectorRegistration(String[] connectionNames)
     throws LCFException;
 
+  /** Note a change in connection configuration.
+  * This method will be called whenever a connection's configuration is modified, or when an external repository change
+  * is signalled.
+  */
+  public void noteConnectionChange(String connectionName)
+    throws LCFException;
+    
   /**  Note the deregistration of an output connector used by the specified connections.
   * This method will be called when the connector is deregistered.  Jobs that use these connections
   *  must therefore enter appropriate states.
@@ -688,6 +695,13 @@ public interface IJobManager
   public void noteOutputConnectorRegistration(String[] connectionNames)
     throws LCFException;
 
+  /** Note a change in output connection configuration.
+  * This method will be called whenever a connection's configuration is modified, or when an external output target change
+  * is signalled.
+  */
+  public void noteOutputConnectionChange(String connectionName)
+    throws LCFException;
+
   /** Delete jobs in need of being deleted (which are marked "ready for delete").
   * This method is meant to be called periodically to perform delete processing on jobs.
   */

Modified: incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/JobManager.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/JobManager.java?rev=944298&r1=944297&r2=944298&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/JobManager.java (original)
+++ incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/JobManager.java Fri May 14 14:47:35 2010
@@ -354,6 +354,16 @@ public class JobManager implements IJobM
     }
   }
 
+  /** Note a change in connection configuration.
+  * This method will be called whenever a connection's configuration is modified, or when an external repository change
+  * is signalled.
+  */
+  public void noteConnectionChange(String connectionName)
+    throws LCFException
+  {
+    jobs.noteConnectionChange(connectionName);
+  }
+
   /**  Note the deregistration of an output connector used by the specified connections.
   * This method will be called when the connector is deregistered.  Jobs that use these connections
   *  must therefore enter appropriate states.
@@ -461,6 +471,16 @@ public class JobManager implements IJobM
     }
   }
 
+  /** Note a change in output connection configuration.
+  * This method will be called whenever a connection's configuration is modified, or when an external target config change
+  * is signalled.
+  */
+  public void noteOutputConnectionChange(String connectionName)
+    throws LCFException
+  {
+    jobs.noteOutputConnectionChange(connectionName);
+  }
+
   /** Load a sorted list of job descriptions.
   *@return the list, sorted by description.
   */

Modified: incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/Jobs.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/Jobs.java?rev=944298&r1=944297&r2=944298&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/Jobs.java (original)
+++ incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/jobs/Jobs.java Fri May 14 14:47:35 2010
@@ -949,6 +949,36 @@ public class Jobs extends org.apache.lcf
     performUpdate(newValues,"WHERE "+idField+"=?",list,invKey);
   }
 
+  /** Note a change in connection configuration.
+  * This method will be called whenever a connection's configuration is modified, or when an external repository change
+  * is signalled.
+  */
+  public void noteConnectionChange(String connectionName)
+    throws LCFException
+  {
+    // No cache keys need invalidation, since we're changing the start time, not the status.
+    HashMap newValues = new HashMap();
+    newValues.put(lastCheckTimeField,null);
+    ArrayList list = new ArrayList();
+    list.add(connectionName);
+    performUpdate(newValues,"WHERE "+connectionNameField+"=?",list,null);
+  }
+
+  /** Note a change in output connection configuration.
+  * This method will be called whenever a connection's configuration is modified, or when an external target config change
+  * is signalled.
+  */
+  public void noteOutputConnectionChange(String connectionName)
+    throws LCFException
+  {
+    // No cache keys need invalidation, since we're changing the start time, not the status.
+    HashMap newValues = new HashMap();
+    newValues.put(lastCheckTimeField,null);
+    ArrayList list = new ArrayList();
+    list.add(connectionName);
+    performUpdate(newValues,"WHERE "+outputNameField+"=?",list,null);
+  }
+  
   /** Check whether a job's status indicates that it is in ACTIVE or ACTIVESEEDING state.
   */
   public boolean checkJobActive(Long jobID)

Modified: incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/repository/RepositoryConnectionManager.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/repository/RepositoryConnectionManager.java?rev=944298&r1=944297&r2=944298&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/repository/RepositoryConnectionManager.java (original)
+++ incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/repository/RepositoryConnectionManager.java Fri May 14 14:47:35 2010
@@ -55,7 +55,7 @@ public class RepositoryConnectionManager
   ICacheManager cacheManager;
   // Thread context
   IThreadContext threadContext;
-
+  
   /** Constructor.
   *@param threadContext is the thread context.
   */
@@ -318,10 +318,17 @@ public class RepositoryConnectionManager
         values.put(classNameField,object.getClassName());
         values.put(authorityNameField,object.getACLAuthority());
         values.put(maxCountField,new Long((long)object.getMaxConnections()));
-        values.put(configField,object.getConfigParams().toXML());
-
+        String configXML = object.getConfigParams().toXML();
+        values.put(configField,configXML);
+        boolean notificationNeeded = false;
+        
         if (set.getRowCount() > 0)
         {
+          IResultRow row = set.getRow(0);
+          String oldXML = (String)row.getValue(configField);
+          if (oldXML == null || !oldXML.equals(configXML))
+            notificationNeeded = true;
+          
           // Update
           params.clear();
           params.add(object.getName());
@@ -339,6 +346,13 @@ public class RepositoryConnectionManager
         // Write secondary table stuff
         throttleSpecManager.writeRows(object.getName(),object);
 
+        // If notification required, do it.
+        if (notificationNeeded)
+        {
+          IJobManager jobManager = JobManagerFactory.make(threadContext);
+          jobManager.noteConnectionChange(object.getName());
+        }
+
         cacheManager.invalidateKeys(ch);
       }
       catch (LCFException e)

Modified: incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/system/CrawlerAgent.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/system/CrawlerAgent.java?rev=944298&r1=944297&r2=944298&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/system/CrawlerAgent.java (original)
+++ incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/system/CrawlerAgent.java Fri May 14 14:47:35 2010
@@ -104,5 +104,24 @@ public class CrawlerAgent implements IAg
     LCF.noteOutputConnectorRegistration(threadContext,connectionNames);
   }
 
+  /** Note a change in configuration for an output connection.
+  *@param connectionName is the name of the connections being changed.
+  */
+  public void noteOutputConnectionChange(String connectionName)
+    throws LCFException
+  {
+    LCF.noteOutputConnectionChange(threadContext,connectionName);
+  }
+
+  /** Signal that an output connection needs to be "redone".  This means that all documents sent to that output connection must be sent again,
+  * and the history as to their status must be forgotten.
+  *@param connectionName is the name of the connection being signalled.
+  */
+  public void signalOutputConnectionRedo(String connectionName)
+    throws LCFException
+  {
+    LCF.signalOutputConnectionRedo(threadContext,connectionName);
+  }
+
 }
 

Modified: incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/system/LCF.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/system/LCF.java?rev=944298&r1=944297&r2=944298&view=diff
==============================================================================
--- incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/system/LCF.java (original)
+++ incubator/lcf/trunk/modules/framework/pull-agent/org/apache/lcf/crawler/system/LCF.java Fri May 14 14:47:35 2010
@@ -948,6 +948,18 @@ public class LCF extends org.apache.lcf.
     jobManager.noteOutputConnectorRegistration(connectionNames);
   }
 
+  /** Note the change in configuration of an output connection.
+  *@param threadContext is the thread context.
+  *@param connectionName is the output connection name.
+  */
+  public static void noteOutputConnectionChange(IThreadContext threadContext, String connectionName)
+    throws LCFException
+  {
+    // Notify job manager
+    IJobManager jobManager = JobManagerFactory.make(threadContext);
+    jobManager.noteOutputConnectionChange(connectionName);
+  }
+  
   /** Qualify output activity name.
   *@param outputActivityName is the name of the output activity.
   *@param outputConnectionName is the corresponding name of the output connection.