Author: kwright
Date: Tue Feb 18 08:42:07 2014
New Revision: 1569229

URL: http://svn.apache.org/r1569229
Log:
Fix for CONNECTORS-895.

Modified:
    manifoldcf/trunk/CHANGES.txt
    
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/ManifoldCF.java
    
manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/programmatic-operation.xml
    
manifoldcf/trunk/site/src/documentation/content/xdocs/ja_JP/programmatic-operation.xml

Modified: manifoldcf/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/CHANGES.txt?rev=1569229&r1=1569228&r2=1569229&view=diff
==============================================================================
--- manifoldcf/trunk/CHANGES.txt (original)
+++ manifoldcf/trunk/CHANGES.txt Tue Feb 18 08:42:07 2014
@@ -3,6 +3,11 @@ $Id$
 
 ======================= 1.6-dev =====================
 
+CONNECTORS-895: Add missing REST API methods for connection and
+job control, and revamp API for operations that are specific to only one
+kind of connection.
+(Karl Wright)
+
 CONNECTORS-894: Cosmetic display problem with SharePoint specification
 view.
 (Ahmet Arlsan, Karl Wright)

Modified: 
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/ManifoldCF.java
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/ManifoldCF.java?rev=1569229&r1=1569228&r2=1569229&view=diff
==============================================================================
--- 
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/ManifoldCF.java
 (original)
+++ 
manifoldcf/trunk/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/system/ManifoldCF.java
 Tue Feb 18 08:42:07 2014
@@ -3235,7 +3235,7 @@ public class ManifoldCF extends org.apac
 
   /** Reset output connection (reset version of all recorded documents).
   */
-  protected static int apiWriteResetOutputConnection(IThreadContext tc, 
Configuration output, String connectionName)
+  protected static int apiWriteClearVersionsOutputConnection(IThreadContext 
tc, Configuration output, String connectionName)
     throws ManifoldCFException
   {
     try
@@ -3350,28 +3350,12 @@ public class ManifoldCF extends org.apac
     else if (path.startsWith("clearhistory/"))
     {
       int firstSeparator = "clearhistory/".length();
-      int secondSeparator = path.indexOf("/",firstSeparator);
-      if (secondSeparator == -1)
-      {
-        createErrorNode(output,"Need connection name.");
-        return WRITERESULT_NOTFOUND;
-      }
-      
-      String connectionType = path.substring(firstSeparator,secondSeparator);
-      String connectionName = 
decodeAPIPathElement(path.substring(secondSeparator+1));
-
-      if (connectionType.equals("repositoryconnections"))
-      {
-        return 
apiWriteClearHistoryRepositoryConnection(tc,output,connectionName);
-      }
-      else
-      {
-        createErrorNode(output,"Unknown connection type 
'"+connectionType+"'.");
-        return WRITERESULT_NOTFOUND;
-      }
+      String connectionName = 
decodeAPIPathElement(path.substring(firstSeparator));
+      return 
apiWriteClearHistoryRepositoryConnection(tc,output,connectionName);
     }
     else if (path.startsWith("reset/"))
     {
+      // This form is deprecated
       int firstSeparator = "reset/".length();
       int secondSeparator = path.indexOf("/",firstSeparator);
       if (secondSeparator == -1)
@@ -3385,7 +3369,7 @@ public class ManifoldCF extends org.apac
       
       if (connectionType.equals("outputconnections"))
       {
-        return apiWriteResetOutputConnection(tc,output,connectionName);
+        return apiWriteClearVersionsOutputConnection(tc,output,connectionName);
       }
       else
       {
@@ -3393,28 +3377,17 @@ public class ManifoldCF extends org.apac
         return WRITERESULT_NOTFOUND;
       }
     }
-    else if (path.startsWith("clear/"))
+    else if (path.startsWith("clearversions/"))
     {
-      int firstSeparator = "clear/".length();
-      int secondSeparator = path.indexOf("/",firstSeparator);
-      if (secondSeparator == -1)
-      {
-        createErrorNode(output,"Need connection name.");
-        return WRITERESULT_NOTFOUND;
-      }
-      
-      String connectionType = path.substring(firstSeparator,secondSeparator);
-      String connectionName = 
decodeAPIPathElement(path.substring(secondSeparator+1));
-      
-      if (connectionType.equals("outputconnections"))
-      {
-        return apiWriteClearOutputConnection(tc,output,connectionName);
-      }
-      else
-      {
-        createErrorNode(output,"Unknown connection type 
'"+connectionType+"'.");
-        return WRITERESULT_NOTFOUND;
-      }
+      int firstSeparator = "clearversions/".length();
+      String connectionName = 
decodeAPIPathElement(path.substring(firstSeparator));
+      return apiWriteClearVersionsOutputConnection(tc,output,connectionName);
+    }
+    else if (path.startsWith("clearrecords/"))
+    {
+      int firstSeparator = "clearrecords/".length();
+      String connectionName = 
decodeAPIPathElement(path.substring(firstSeparator));
+      return apiWriteClearOutputConnection(tc,output,connectionName);
     }
     else
     {

Modified: 
manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/programmatic-operation.xml
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/programmatic-operation.xml?rev=1569229&r1=1569228&r2=1569229&view=diff
==============================================================================
--- 
manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/programmatic-operation.xml
 (original)
+++ 
manifoldcf/trunk/site/src/documentation/content/xdocs/en_US/programmatic-operation.xml
 Tue Feb 18 08:42:07 2014
@@ -94,8 +94,8 @@
             
<tr><td>outputconnections/<em>&lt;encoded_connection_name&gt;</em></td><td>DELETE</td><td>Delete
 an output connection</td><td>N/A</td><td>{ } <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>}</td></tr>
             
<tr><td>status/outputconnections/<em>&lt;encoded_connection_name&gt;</em></td><td>GET</td><td>Check
 the status of an output 
connection</td><td>N/A</td><td>{"check_result":<em>&lt;message&gt;</em>} 
<strong>OR</strong> {"error":<em>&lt;error_text&gt;</em>}</td></tr>
             
<tr><td>info/outputconnections/<em>&lt;encoded_connection_name&gt;</em>/<em>&lt;connector_specific_resource&gt;</em></td><td>GET</td><td>Retrieve
 arbitrary connector-specific 
resource</td><td>N/A</td><td><em>&lt;response_data&gt;</em> <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>} <strong>OR</strong> 
{"service_interruption":<em>&lt;error_text&gt;</em>}</td></tr>
-            
<tr><td>reset/outputconnections/<em>&lt;encoded_connection_name&gt;</em></td><td>PUT</td><td>Forget
 previous indexed document versions</td><td>N/A</td><td>{ } <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>}</td></tr>
-            
<tr><td>clear/outputconnections/<em>&lt;encoded_connection_name&gt;</em></td><td>PUT</td><td>Remove
 all previous indexing records</td><td>N/A</td><td>{ } <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>}</td></tr>
+            
<tr><td>clearversions/<em>&lt;encoded_output_connection_name&gt;</em></td><td>PUT</td><td>Forget
 previous indexed document versions</td><td>N/A</td><td>{ } <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>}</td></tr>
+            
<tr><td>clearrecords/<em>&lt;encoded_output_connection_name&gt;</em></td><td>PUT</td><td>Remove
 all previous indexing records</td><td>N/A</td><td>{ } <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>}</td></tr>
             <tr><td>mappingconnections</td><td>GET</td><td>List all mapping 
connections</td><td>N/A</td><td>{"mappingconnection":[<em>&lt;list_of_mapping_connection_objects&gt;</em>]}
 <strong>OR</strong> {"error":<em>&lt;error_text&gt;</em>}</td></tr>
             
<tr><td>mappingconnections/<em>&lt;encoded_connection_name&gt;</em></td><td>GET</td><td>Get
 a specific mapping 
connection</td><td>N/A</td><td>{"mappingconnection":<em>&lt;mapping_connection_object&gt;</em>}
 <strong>OR</strong> { } <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>}</td></tr>
             
<tr><td>mappingconnections/<em>&lt;encoded_connection_name&gt;</em></td><td>PUT</td><td>Save
 or create a mapping 
connection</td><td>{"mappingconnection":<em>&lt;mapping_connection_object&gt;</em>}</td><td>{
 } <strong>OR</strong> {"error":<em>&lt;error_text&gt;</em>}</td></tr>
@@ -112,7 +112,7 @@
             
<tr><td>repositoryconnections/<em>&lt;encoded_connection_name&gt;</em></td><td>DELETE</td><td>Delete
 a repository connection</td><td>N/A</td><td>{ } <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>}</td></tr>
             
<tr><td>status/repositoryconnections/<em>&lt;encoded_connection_name&gt;</em></td><td>GET</td><td>Check
 the status of a repository 
connection</td><td>N/A</td><td>{"check_result":<em>&lt;message&gt;</em>} 
<strong>OR</strong> {"error":<em>&lt;error_text&gt;</em>}</td></tr>
             
<tr><td>info/repositoryconnections/<em>&lt;encoded_connection_name&gt;</em>/<em>&lt;connector_specific_resource&gt;</em></td><td>GET</td><td>Retrieve
 arbitrary connector-specific 
resource</td><td>N/A</td><td><em>&lt;response_data&gt;</em> <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>} <strong>OR</strong> 
{"service_interruption":<em>&lt;error_text&gt;</em>}</td></tr>
-            
<tr><td>clearhistory/repositoryconnections/<em>&lt;encoded_connection_name&gt;</em>/<em>&lt;connector_specific_resource&gt;</em></td><td>PUT</td><td>Clear
 history linked with repository 
connection</td><td>N/A</td><td><em>&lt;response_data&gt;</em> 
<strong>OR</strong> {"error":<em>&lt;error_text&gt;</em>} <strong>OR</strong> 
{"service_interruption":<em>&lt;error_text&gt;</em>}</td></tr>
+            
<tr><td>clearhistory/<em>&lt;encoded_repository_connection_name&gt;</em></td><td>PUT</td><td>Clear
 history linked with repository 
connection</td><td>N/A</td><td><em>&lt;response_data&gt;</em> 
<strong>OR</strong> {"error":<em>&lt;error_text&gt;</em>} <strong>OR</strong> 
{"service_interruption":<em>&lt;error_text&gt;</em>}</td></tr>
             <tr><td>jobs</td><td>GET</td><td>List all job 
definitions</td><td>N/A</td><td>{"job":[<em>&lt;list_of_job_objects&gt;</em>]} 
<strong>OR</strong> {"error":<em>&lt;error_text&gt;</em>}</td></tr>
             <tr><td>jobs</td><td>POST</td><td>Create a 
job</td><td>{"job":<em>&lt;job_object&gt;</em>}</td><td>{"job_id":<em>&lt;job_identifier&gt;</em>}
 <strong>OR</strong> {"error":<em>&lt;error_text&gt;</em>}</td></tr>
             <tr><td>jobs/<em>&lt;job_id&gt;</em></td><td>GET</td><td>Get a 
specific job 
definition</td><td>N/A</td><td>{"job":<em>&lt;job_object_&gt;</em>} 
<strong>OR</strong> { } <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>}</td></tr>

Modified: 
manifoldcf/trunk/site/src/documentation/content/xdocs/ja_JP/programmatic-operation.xml
URL: 
http://svn.apache.org/viewvc/manifoldcf/trunk/site/src/documentation/content/xdocs/ja_JP/programmatic-operation.xml?rev=1569229&r1=1569228&r2=1569229&view=diff
==============================================================================
--- 
manifoldcf/trunk/site/src/documentation/content/xdocs/ja_JP/programmatic-operation.xml
 (original)
+++ 
manifoldcf/trunk/site/src/documentation/content/xdocs/ja_JP/programmatic-operation.xml
 Tue Feb 18 08:42:07 2014
@@ -94,8 +94,8 @@
             
<tr><td>outputconnections/<em>&lt;encoded_connection_name&gt;</em></td><td>DELETE</td><td>Delete
 an output connection</td><td>N/A</td><td>{ } <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>}</td></tr>
             
<tr><td>status/outputconnections/<em>&lt;encoded_connection_name&gt;</em></td><td>GET</td><td>Check
 the status of an output 
connection</td><td>N/A</td><td>{"check_result":<em>&lt;message&gt;</em>} 
<strong>OR</strong> {"error":<em>&lt;error_text&gt;</em>}</td></tr>
             
<tr><td>info/outputconnections/<em>&lt;encoded_connection_name&gt;</em>/<em>&lt;connector_specific_resource&gt;</em></td><td>GET</td><td>Retrieve
 arbitrary connector-specific 
resource</td><td>N/A</td><td><em>&lt;response_data&gt;</em> <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>} <strong>OR</strong> 
{"service_interruption":<em>&lt;error_text&gt;</em>}</td></tr>
-            
<tr><td>reset/outputconnections/<em>&lt;encoded_connection_name&gt;</em></td><td>PUT</td><td>Forget
 previous indexed document versions</td><td>N/A</td><td>{ } <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>}</td></tr>
-            
<tr><td>clear/outputconnections/<em>&lt;encoded_connection_name&gt;</em></td><td>PUT</td><td>Remove
 all previous indexing records</td><td>N/A</td><td>{ } <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>}</td></tr>
+            
<tr><td>clearversions/<em>&lt;encoded_output_connection_name&gt;</em></td><td>PUT</td><td>Forget
 previous indexed document versions</td><td>N/A</td><td>{ } <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>}</td></tr>
+            
<tr><td>clearrecords/<em>&lt;encoded_output_connection_name&gt;</em></td><td>PUT</td><td>Remove
 all previous indexing records</td><td>N/A</td><td>{ } <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>}</td></tr>
             <tr><td>mappingconnections</td><td>GET</td><td>List all mapping 
connections</td><td>N/A</td><td>{"mappingconnection":[<em>&lt;list_of_mapping_connection_objects&gt;</em>]}
 <strong>OR</strong> {"error":<em>&lt;error_text&gt;</em>}</td></tr>
             
<tr><td>mappingconnections/<em>&lt;encoded_connection_name&gt;</em></td><td>GET</td><td>Get
 a specific mapping 
connection</td><td>N/A</td><td>{"mappingconnection":<em>&lt;mapping_connection_object&gt;</em>}
 <strong>OR</strong> { } <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>}</td></tr>
             
<tr><td>mappingconnections/<em>&lt;encoded_connection_name&gt;</em></td><td>PUT</td><td>Save
 or create a mapping 
connection</td><td>{"mappingconnection":<em>&lt;mapping_connection_object&gt;</em>}</td><td>{
 } <strong>OR</strong> {"error":<em>&lt;error_text&gt;</em>}</td></tr>
@@ -112,7 +112,7 @@
             
<tr><td>repositoryconnections/<em>&lt;encoded_connection_name&gt;</em></td><td>DELETE</td><td>Delete
 a repository connection</td><td>N/A</td><td>{ } <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>}</td></tr>
             
<tr><td>status/repositoryconnections/<em>&lt;encoded_connection_name&gt;</em></td><td>GET</td><td>Check
 the status of a repository 
connection</td><td>N/A</td><td>{"check_result":<em>&lt;message&gt;</em>} 
<strong>OR</strong> {"error":<em>&lt;error_text&gt;</em>}</td></tr>
             
<tr><td>info/repositoryconnections/<em>&lt;encoded_connection_name&gt;</em>/<em>&lt;connector_specific_resource&gt;</em></td><td>GET</td><td>Retrieve
 arbitrary connector-specific 
resource</td><td>N/A</td><td><em>&lt;response_data&gt;</em> <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>} <strong>OR</strong> 
{"service_interruption":<em>&lt;error_text&gt;</em>}</td></tr>
-            
<tr><td>clearhistory/repositoryconnections/<em>&lt;encoded_connection_name&gt;</em>/<em>&lt;connector_specific_resource&gt;</em></td><td>PUT</td><td>Clear
 history linked with repository 
connection</td><td>N/A</td><td><em>&lt;response_data&gt;</em> 
<strong>OR</strong> {"error":<em>&lt;error_text&gt;</em>} <strong>OR</strong> 
{"service_interruption":<em>&lt;error_text&gt;</em>}</td></tr>
+            
<tr><td>clearhistory/<em>&lt;encoded_repository_connection_name&gt;</em></td><td>PUT</td><td>Clear
 history linked with repository 
connection</td><td>N/A</td><td><em>&lt;response_data&gt;</em> 
<strong>OR</strong> {"error":<em>&lt;error_text&gt;</em>} <strong>OR</strong> 
{"service_interruption":<em>&lt;error_text&gt;</em>}</td></tr>
             <tr><td>jobs</td><td>GET</td><td>List all job 
definitions</td><td>N/A</td><td>{"job":[<em>&lt;list_of_job_objects&gt;</em>]} 
<strong>OR</strong> {"error":<em>&lt;error_text&gt;</em>}</td></tr>
             <tr><td>jobs</td><td>POST</td><td>Create a 
job</td><td>{"job":<em>&lt;job_object&gt;</em>}</td><td>{"job_id":<em>&lt;job_identifier&gt;</em>}
 <strong>OR</strong> {"error":<em>&lt;error_text&gt;</em>}</td></tr>
             <tr><td>jobs/<em>&lt;job_id&gt;</em></td><td>GET</td><td>Get a 
specific job 
definition</td><td>N/A</td><td>{"job":<em>&lt;job_object_&gt;</em>} 
<strong>OR</strong> { } <strong>OR</strong> 
{"error":<em>&lt;error_text&gt;</em>}</td></tr>


Reply via email to