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 20:50:59 UTC

svn commit: r1599751 - in /manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler: interfaces/IJobManager.java jobs/JobManager.java jobs/Jobs.java system/CrawlerAgent.java

Author: kwright
Date: Tue Jun  3 18:50:59 2014
New Revision: 1599751

URL: http://svn.apache.org/r1599751
Log:
Flesh out interlock checks, but not done yet; registration/deregistration has issues.

Modified:
    manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IJobManager.java
    manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobManager.java
    manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/Jobs.java
    manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/CrawlerAgent.java

Modified: manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IJobManager.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IJobManager.java?rev=1599751&r1=1599750&r2=1599751&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IJobManager.java (original)
+++ manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/interfaces/IJobManager.java Tue Jun  3 18:50:59 2014
@@ -125,6 +125,13 @@ public interface IJobManager
   public boolean checkIfOutputReference(String connectionName)
     throws ManifoldCFException;
 
+  /** See if there's a reference to a transformation connection name.
+  *@param connectionName is the name of the connection.
+  *@return true if there is a reference, false otherwise.
+  */
+  public boolean checkIfTransformationReference(String connectionName)
+    throws ManifoldCFException;
+
   /** Get the job IDs associated with a given connection name.
   *@param connectionName is the name of the connection.
   *@return the set of job id's associated with that connection.
@@ -955,6 +962,22 @@ public interface IJobManager
   public void noteOutputConnectionChange(String connectionName)
     throws ManifoldCFException;
 
+  /**  Note the deregistration of a transformation 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.
+  *@param connectionNames is the set of connection names.
+  */
+  public void noteTransformationConnectorDeregistration(String[] connectionNames)
+    throws ManifoldCFException;
+
+  /** Note the registration of a transformation connector used by the specified connections.
+  * This method will be called when a connector is registered, on which the specified
+  * connections depend.
+  *@param connectionNames is the set of connection names.
+  */
+  public void noteTransformationConnectorRegistration(String[] connectionNames)
+    throws ManifoldCFException;
+
   /** 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: manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobManager.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobManager.java?rev=1599751&r1=1599750&r2=1599751&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobManager.java (original)
+++ manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/JobManager.java Tue Jun  3 18:50:59 2014
@@ -488,6 +488,32 @@ public class JobManager implements IJobM
     }
   }
 
+  /**  Note the deregistration of a transformation 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.
+  *@param connectionNames is the set of connection names.
+  */
+  @Override
+  public void noteTransformationConnectorDeregistration(String[] connectionNames)
+    throws ManifoldCFException
+  {
+    // This is problematic; we need a different bit in the job state for every transformation in the job pipeline
+    // MHL
+  }
+
+  /** Note the registration of a transformation connector used by the specified connections.
+  * This method will be called when a connector is registered, on which the specified
+  * connections depend.
+  *@param connectionNames is the set of connection names.
+  */
+  @Override
+  public void noteTransformationConnectorRegistration(String[] connectionNames)
+    throws ManifoldCFException
+  {
+    // This is problematic; we need a different bit in the job state for every transformation in the job pipeline
+    // MHL
+  }
+
   /** 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.
@@ -632,6 +658,17 @@ public class JobManager implements IJobM
     return jobs.checkIfOutputReference(connectionName);
   }
 
+  /** See if there's a reference to a transformation connection name.
+  *@param connectionName is the name of the connection.
+  *@return true if there is a reference, false otherwise.
+  */
+  @Override
+  public boolean checkIfTransformationReference(String connectionName)
+    throws ManifoldCFException
+  {
+    return jobs.checkIfTransformationReference(connectionName);
+  }
+
   /** Get the job IDs associated with a given connection name.
   *@param connectionName is the name of the connection.
   *@return the set of job id's associated with that connection.

Modified: manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/Jobs.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/Jobs.java?rev=1599751&r1=1599750&r2=1599751&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/Jobs.java (original)
+++ manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/Jobs.java Tue Jun  3 18:50:59 2014
@@ -2821,6 +2821,21 @@ public class Jobs extends org.apache.man
     return set.getRowCount() > 0;
   }
 
+  /** See if there's a reference to a transformation connection name.
+  *@param connectionName is the name of the connection.
+  *@return true if there is a reference, false otherwise.
+  */
+  public boolean checkIfTransformationReference(String connectionName)
+    throws ManifoldCFException
+  {
+    ArrayList list = new ArrayList();
+    String query = buildConjunctionClause(list,new ClauseDescription[]{
+      new UnitaryClause(pipelineManager.transformationNameField,connectionName)});
+    IResultSet set = performQuery("SELECT "+pipelineManager.ownerIDField+" FROM "+pipelineManager.getTableName()+
+      " WHERE "+query,list,new StringSet(getJobsKey()),null);
+    return set.getRowCount() > 0;
+  }
+
   /** Get the job IDs associated with a given connection name.
   *@param connectionName is the name of the connection.
   *@return the set of job id's associated with that connection.

Modified: manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/CrawlerAgent.java
URL: http://svn.apache.org/viewvc/manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/CrawlerAgent.java?rev=1599751&r1=1599750&r2=1599751&view=diff
==============================================================================
--- manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/CrawlerAgent.java (original)
+++ manifoldcf/branches/CONNECTORS-946/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/CrawlerAgent.java Tue Jun  3 18:50:59 2014
@@ -290,8 +290,9 @@ public class CrawlerAgent implements IAg
   public boolean isTransformationConnectionInUse(IThreadContext threadContext, String connName)
     throws ManifoldCFException
   {
-    // MHL
-    return false;
+    // Check with job manager.
+    IJobManager jobManager = JobManagerFactory.make(threadContext);
+    return jobManager.checkIfTransformationReference(connName);
   }
 
   /** Note the deregistration of a set of transformation connections.
@@ -301,7 +302,9 @@ public class CrawlerAgent implements IAg
   public void noteTransformationConnectorDeregistration(IThreadContext threadContext, String[] connectionNames)
     throws ManifoldCFException
   {
-    // MHL
+    // Notify job manager
+    IJobManager jobManager = JobManagerFactory.make(threadContext);
+    jobManager.noteTransformationConnectorDeregistration(connectionNames);
   }
 
   /** Note the registration of a set of transformation connections.
@@ -311,7 +314,9 @@ public class CrawlerAgent implements IAg
   public void noteTransformationConnectorRegistration(IThreadContext threadContext, String[] connectionNames)
     throws ManifoldCFException
   {
-    // MHL
+    // Notify job manager
+    IJobManager jobManager = JobManagerFactory.make(threadContext);
+    jobManager.noteTransformationConnectorRegistration(connectionNames);
   }
 
   /** Note a change in configuration for a transformation connection.