You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by pi...@apache.org on 2013/06/17 18:31:02 UTC

svn commit: r1493838 - in /manifoldcf/trunk: ./ connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/ connectors/alfresco/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/alfresco/ connec...

Author: piergiorgio
Date: Mon Jun 17 16:31:02 2013
New Revision: 1493838

URL: http://svn.apache.org/r1493838
Log:
added a new parameter for the Alfresco Connector: now it is possible to make some tuning with the Socket Timeout for the client stub (CONNECTORS-717)

Modified:
    manifoldcf/trunk/CHANGES.txt
    manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/AlfrescoConfig.java
    manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/AlfrescoRepositoryConnector.java
    manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/ContentModelUtils.java
    manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/ContentReader.java
    manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/NodeUtils.java
    manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/SearchUtils.java
    manifoldcf/trunk/connectors/alfresco/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/alfresco/common_en_US.properties
    manifoldcf/trunk/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/editConfiguration.js
    manifoldcf/trunk/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/editConfiguration_Server.html
    manifoldcf/trunk/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/viewConfiguration.html
    manifoldcf/trunk/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/APISanityIT.java
    manifoldcf/trunk/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/NavigationDerbyUI.java

Modified: manifoldcf/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/CHANGES.txt?rev=1493838&r1=1493837&r2=1493838&view=diff
==============================================================================
--- manifoldcf/trunk/CHANGES.txt (original)
+++ manifoldcf/trunk/CHANGES.txt Mon Jun 17 16:31:02 2013
@@ -3,6 +3,9 @@ $Id$
 
 ======================= 1.3-dev =====================
 
+CONNECTORS-717: Alfresco Connector needs a new parameter for the Socket Timeout
+(Piergiorgio Lucidi)
+
 CONNECTORS-714: All LiveLink connector to use LAPI for document fetches.
 (David Morana, Karl Wright)
 

Modified: manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/AlfrescoConfig.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/AlfrescoConfig.java?rev=1493838&r1=1493837&r2=1493838&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/AlfrescoConfig.java (original)
+++ manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/AlfrescoConfig.java Mon Jun 17 16:31:02 2013
@@ -51,6 +51,9 @@ public class AlfrescoConfig {
   /** Separator for the username field dedicated to the tenant domain */
   public static final String TENANT_DOMAIN_SEP = "@";
   
+  /** Socket Timeout parameter for the Alfresco Web Service Client */
+  public static final String SOCKET_TIMEOUT_PARAM = "socketTimeout";
+  
   //default values
   public static final String USERNAME_DEFAULT_VALUE = "admin";
   public static final String PASSWORD_DEFAULT_VALUE = "admin";
@@ -58,5 +61,6 @@ public class AlfrescoConfig {
   public static final String SERVER_DEFAULT_VALUE = "localhost";
   public static final String PORT_DEFAULT_VALUE = "8080";
   public static final String PATH_DEFAULT_VALUE = "/alfresco/api";
+  public static final int SOCKET_TIMEOUT_DEFAULT_VALUE = 120000;
   
 }

Modified: manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/AlfrescoRepositoryConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/AlfrescoRepositoryConnector.java?rev=1493838&r1=1493837&r2=1493838&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/AlfrescoRepositoryConnector.java (original)
+++ manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/AlfrescoRepositoryConnector.java Mon Jun 17 16:31:02 2013
@@ -85,6 +85,9 @@ public class AlfrescoRepositoryConnector
   /** Alfresco Tenant domain */
   protected String tenantDomain = null;
   
+  /** Socket Timeout for the Alfresco Web Service Client */
+  protected int socketTimeout = -1;
+  
   protected AuthenticationDetails session = null;
 
   protected static final long timeToRelease = 300000L;
@@ -94,6 +97,9 @@ public class AlfrescoRepositoryConnector
 
   // Tabs
   
+  /** Tab name parameter for managin the view of the Web UI */
+  private static final String TAB_NAME_PARAM = "TabName";
+  
   /** The Lucene Query label for the configuration tab of the job settings */
   private static final String TAB_LABEL_LUCENE_QUERY_RESOURCE = "AlfrescoConnector.LuceneQuery";
   /** Alfresco Server configuration tab name */
@@ -185,6 +191,7 @@ public class AlfrescoRepositoryConnector
     path = null;
     endpoint = null;
     tenantDomain = null;
+    socketTimeout = AlfrescoConfig.SOCKET_TIMEOUT_DEFAULT_VALUE;
 
   }
 
@@ -204,6 +211,12 @@ public class AlfrescoRepositoryConnector
     path = params.getParameter(AlfrescoConfig.PATH_PARAM);
     tenantDomain = params.getParameter(AlfrescoConfig.TENANT_DOMAIN_PARAM);
     
+    if(params.getParameter(AlfrescoConfig.SOCKET_TIMEOUT_PARAM)!=null){
+      socketTimeout = Integer.parseInt(params.getParameter(AlfrescoConfig.SOCKET_TIMEOUT_PARAM));
+    } else {
+      socketTimeout = AlfrescoConfig.SOCKET_TIMEOUT_DEFAULT_VALUE;
+    }
+    
     //endpoint
     if(StringUtils.isNotEmpty(protocol)
         && StringUtils.isNotEmpty(server)
@@ -216,6 +229,7 @@ public class AlfrescoRepositoryConnector
     if(StringUtils.isNotEmpty(tenantDomain)){
       username += AlfrescoConfig.TENANT_DOMAIN_SEP + tenantDomain;
     }
+    
   }
 
   /** Test the connection.  Returns a string describing the connection integrity.
@@ -271,7 +285,7 @@ public class AlfrescoRepositoryConnector
     try {
     
       WebServiceFactory.setEndpointAddress(endpoint);
-      WebServiceFactory.setTimeoutMilliseconds(120000);
+      WebServiceFactory.setTimeoutMilliseconds(socketTimeout);
       AuthenticationUtils.startSession(username, password);
       session = AuthenticationUtils.getAuthenticationDetails();
       
@@ -408,10 +422,10 @@ public class AlfrescoRepositoryConnector
       QueryResult queryResult = null;
       if (StringUtils.isEmpty(luceneQuery)) {
         // get documents from the root of the Alfresco Repository
-        queryResult = SearchUtils.getChildrenFromCompanyHome(endpoint, username, password, session);
+        queryResult = SearchUtils.getChildrenFromCompanyHome(endpoint, username, password, socketTimeout, session);
       } else {
         // execute a Lucene query against the repository
-        queryResult = SearchUtils.luceneSearch(endpoint, username, password, session, luceneQuery);
+        queryResult = SearchUtils.luceneSearch(endpoint, username, password, socketTimeout, session, luceneQuery);
       }
   
       if(queryResult!=null){
@@ -498,6 +512,12 @@ public class AlfrescoRepositoryConnector
     if (tenantDomain == null)
       tenantDomain = StringUtils.EMPTY;
     paramMap.put(AlfrescoConfig.TENANT_DOMAIN_PARAM, tenantDomain);
+    
+    String socketTimeout = parameters.getParameter(AlfrescoConfig.SOCKET_TIMEOUT_PARAM);
+    if (socketTimeout == null)
+      socketTimeout = String.valueOf(AlfrescoConfig.SOCKET_TIMEOUT_DEFAULT_VALUE);
+    paramMap.put(AlfrescoConfig.SOCKET_TIMEOUT_PARAM, socketTimeout);
+    
   }
 
   /**
@@ -577,7 +597,7 @@ public class AlfrescoRepositoryConnector
     
     // Do the Server tab
     Map<String,String> paramMap = new HashMap<String,String>();
-    paramMap.put("TabName", tabName);
+    paramMap.put(TAB_NAME_PARAM, tabName);
     fillInServerParameters(paramMap, parameters);
     outputResource(EDIT_CONFIG_FORWARD_SERVER, out, locale, paramMap);  
   }
@@ -641,6 +661,11 @@ public class AlfrescoRepositoryConnector
       parameters.setParameter(AlfrescoConfig.TENANT_DOMAIN_PARAM, tenantDomain);
     }
     
+    String socketTimeout = variableContext.getParameter(AlfrescoConfig.SOCKET_TIMEOUT_PARAM);
+    if (socketTimeout != null){
+      parameters.setParameter(AlfrescoConfig.SOCKET_TIMEOUT_PARAM, socketTimeout);
+    }
+    
     return null;
   }
 
@@ -743,7 +768,7 @@ public class AlfrescoRepositoryConnector
         
     // LuceneQuery tab
     Map<String,String> paramMap = new HashMap<String,String>();
-    paramMap.put("TabName", tabName);
+    paramMap.put(TAB_NAME_PARAM, tabName);
     fillInLuceneQueryParameters(paramMap, ds);
     outputResource(EDIT_SPEC_FORWARD_LUCENEQUERY, out, locale, paramMap);
   }
@@ -820,7 +845,7 @@ public class AlfrescoRepositoryConnector
       // getting properties
       Node resultNode = null;
       try {
-        resultNode = NodeUtils.get(endpoint, username, password, session, predicate);
+        resultNode = NodeUtils.get(endpoint, username, password, socketTimeout, session, predicate);
       } catch (IOException e) {
         Logging.connectors.warn(
             "Alfresco: IOException closing file input stream: "
@@ -836,12 +861,12 @@ public class AlfrescoRepositoryConnector
       
       try{    
         
-        boolean isFolder = ContentModelUtils.isFolder(endpoint, username, password, session, reference);
+        boolean isFolder = ContentModelUtils.isFolder(endpoint, username, password, socketTimeout, session, reference);
         
         //a generic node in Alfresco could have child-associations
         if (isFolder) {
             // ingest all the children of the folder
-            QueryResult queryResult = SearchUtils.getChildren(endpoint, username, password, session, reference);
+            QueryResult queryResult = SearchUtils.getChildren(endpoint, username, password, socketTimeout, session, reference);
             ResultSet resultSet = queryResult.getResultSet();
             ResultSetRow[] resultSetRows = resultSet.getRows();
             for (ResultSetRow resultSetRow : resultSetRows) {
@@ -872,9 +897,9 @@ public class AlfrescoRepositoryConnector
           // binaries ingestion - in Alfresco we could have more than one binary for each node (custom content models)
           for (NamedValue contentProperty : contentProperties) {
             //we are ingesting all the binaries defined as d:content property in the Alfresco content model
-            Content binary = ContentReader.read(endpoint, username, password, session, predicate, contentProperty.getName());
+            Content binary = ContentReader.read(endpoint, username, password, socketTimeout, session, predicate, contentProperty.getName());
             fileLength = binary.getLength();
-            is = ContentReader.getBinary(endpoint, binary, username, password, session);
+            is = ContentReader.getBinary(endpoint, binary, username, password, socketTimeout, session);
             rd.setBinary(is, fileLength);
             
             //id is the node reference only if the node has an unique content stream
@@ -972,7 +997,7 @@ public class AlfrescoRepositoryConnector
       
       Node node = null;
       try {
-        node = NodeUtils.get(endpoint, username, password, session, predicate);
+        node = NodeUtils.get(endpoint, username, password, socketTimeout, session, predicate);
       } catch (IOException e) {
         Logging.connectors.warn(
             "Alfresco: IOException closing file input stream: "

Modified: manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/ContentModelUtils.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/ContentModelUtils.java?rev=1493838&r1=1493837&r2=1493838&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/ContentModelUtils.java (original)
+++ manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/ContentModelUtils.java Mon Jun 17 16:31:02 2013
@@ -55,11 +55,11 @@ public class ContentModelUtils {
    * @param node
    * @return TRUE if the reference contains a node that is an Alfresco space, otherwise FALSE
    */
-  public static boolean isFolder(String endpoint, String username, String password, AuthenticationDetails session, Reference node) throws ManifoldCFException {
+  public static boolean isFolder(String endpoint, String username, String password, int socketTimeout, AuthenticationDetails session, Reference node) throws ManifoldCFException {
     QueryResult queryResult = null;
     try {
       WebServiceFactory.setEndpointAddress(endpoint);
-      WebServiceFactory.setTimeoutMilliseconds(120000);
+      WebServiceFactory.setTimeoutMilliseconds(socketTimeout);
       AuthenticationUtils.startSession(username, password);
       session = AuthenticationUtils.getAuthenticationDetails();
       queryResult = WebServiceFactory.getRepositoryService().queryChildren(node);

Modified: manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/ContentReader.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/ContentReader.java?rev=1493838&r1=1493837&r2=1493838&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/ContentReader.java (original)
+++ manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/ContentReader.java Mon Jun 17 16:31:02 2013
@@ -39,11 +39,11 @@ public class ContentReader {
    * @param predicate
    * @return an unique binary for content
    */
-  public static Content read(String endpoint, String username, String password, AuthenticationDetails session, Predicate predicate, String contentProperty) throws IOException {
+  public static Content read(String endpoint, String username, String password, int socketTimeout, AuthenticationDetails session, Predicate predicate, String contentProperty) throws IOException {
     Content[] resultBinary = null;
     try {
       WebServiceFactory.setEndpointAddress(endpoint);
-      WebServiceFactory.setTimeoutMilliseconds(120000);
+      WebServiceFactory.setTimeoutMilliseconds(socketTimeout);
       AuthenticationUtils.startSession(username, password);
       session = AuthenticationUtils.getAuthenticationDetails();
       resultBinary = WebServiceFactory.getContentService().read(predicate, contentProperty);
@@ -70,11 +70,11 @@ public class ContentReader {
     return resultBinary[0];
   }
   
-  public static InputStream getBinary(String endpoint, Content binary, String username, String password, AuthenticationDetails session) throws IOException {
+  public static InputStream getBinary(String endpoint, Content binary, String username, String password, int socketTimeout, AuthenticationDetails session) throws IOException {
     InputStream is = null;
    try { 
       WebServiceFactory.setEndpointAddress(endpoint);
-      WebServiceFactory.setTimeoutMilliseconds(120000);
+      WebServiceFactory.setTimeoutMilliseconds(socketTimeout);
       AuthenticationUtils.startSession(username, password);
       session = AuthenticationUtils.getAuthenticationDetails();
       is = ContentUtils.getContentAsInputStream(binary);

Modified: manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/NodeUtils.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/NodeUtils.java?rev=1493838&r1=1493837&r2=1493838&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/NodeUtils.java (original)
+++ manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/NodeUtils.java Mon Jun 17 16:31:02 2013
@@ -51,11 +51,11 @@ public class NodeUtils {
    * @param predicate
    * @return the Node object instance of the current content
    */
-  public static Node get(String endpoint, String username, String password, AuthenticationDetails session, Predicate predicate) throws IOException {
+  public static Node get(String endpoint, String username, String password, int socketTimeout, AuthenticationDetails session, Predicate predicate) throws IOException {
     Node[] resultNodes = null;
     try {
       WebServiceFactory.setEndpointAddress(endpoint);
-      WebServiceFactory.setTimeoutMilliseconds(120000);
+      WebServiceFactory.setTimeoutMilliseconds(socketTimeout);
       AuthenticationUtils.startSession(username, password);
       session = AuthenticationUtils.getAuthenticationDetails();
       resultNodes = WebServiceFactory.getRepositoryService().get(predicate);

Modified: manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/SearchUtils.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/SearchUtils.java?rev=1493838&r1=1493837&r2=1493838&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/SearchUtils.java (original)
+++ manifoldcf/trunk/connectors/alfresco/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/alfresco/SearchUtils.java Mon Jun 17 16:31:02 2013
@@ -55,12 +55,12 @@ public class SearchUtils {
     "{http://www.alfresco.org/model/site/1.0}sites"};
   
 
-  public static QueryResult luceneSearch(String endpoint, String username, String password, AuthenticationDetails session, String luceneQuery) throws IOException {
+  public static QueryResult luceneSearch(String endpoint, String username, String password, int socketTimeout, AuthenticationDetails session, String luceneQuery) throws IOException {
     QueryResult queryResult = null;
     Query query = new Query(Constants.QUERY_LANG_LUCENE, luceneQuery);
     try {
       WebServiceFactory.setEndpointAddress(endpoint);
-      WebServiceFactory.setTimeoutMilliseconds(120000);
+      WebServiceFactory.setTimeoutMilliseconds(socketTimeout);
       AuthenticationUtils.startSession(username, password);
       session = AuthenticationUtils.getAuthenticationDetails();
       queryResult = WebServiceFactory.getRepositoryService().query(STORE, query, false);
@@ -82,11 +82,11 @@ public class SearchUtils {
     return queryResult;
   }
   
-  public static QueryResult getChildren(String endpoint, String username, String password, AuthenticationDetails session, Reference reference) throws IOException {
+  public static QueryResult getChildren(String endpoint, String username, String password, int socketTimeout, AuthenticationDetails session, Reference reference) throws IOException {
     QueryResult queryResult = null;
     try {
       WebServiceFactory.setEndpointAddress(endpoint);
-      WebServiceFactory.setTimeoutMilliseconds(120000);
+      WebServiceFactory.setTimeoutMilliseconds(socketTimeout);
       AuthenticationUtils.startSession(username, password);
       session = AuthenticationUtils.getAuthenticationDetails();  
       queryResult = WebServiceFactory.getRepositoryService().queryChildren(reference);
@@ -117,9 +117,9 @@ public class SearchUtils {
    * @param session
    * @return filtered children of the Company Home without all the special spaces
    */
-  public static QueryResult getChildrenFromCompanyHome(String endpoint, String username, String password, AuthenticationDetails session) throws IOException {
+  public static QueryResult getChildrenFromCompanyHome(String endpoint, String username, String password, int socketTimeout, AuthenticationDetails session) throws IOException {
     Reference companyHome = new Reference(STORE, null, XPATH_COMPANY_HOME);
-    QueryResult queryResult = SearchUtils.getChildren(endpoint, username,password,session,companyHome);
+    QueryResult queryResult = SearchUtils.getChildren(endpoint, username, password, socketTimeout, session, companyHome);
     ResultSet rs = queryResult.getResultSet();
     ResultSetRow[] rows = rs.getRows();
     List<ResultSetRow> filteredRows = new ArrayList<ResultSetRow>();

Modified: manifoldcf/trunk/connectors/alfresco/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/alfresco/common_en_US.properties
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/alfresco/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/alfresco/common_en_US.properties?rev=1493838&r1=1493837&r2=1493838&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/alfresco/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/alfresco/common_en_US.properties (original)
+++ manifoldcf/trunk/connectors/alfresco/connector/src/main/native2ascii/org/apache/manifoldcf/crawler/connectors/alfresco/common_en_US.properties Mon Jun 17 16:31:02 2013
@@ -26,6 +26,7 @@ AlfrescoConnector.ProtocolColon=Protocol
 AlfrescoConnector.ServerColon=Server:
 AlfrescoConnector.PortColon=Port:
 AlfrescoConnector.PathColon=Path:
+AlfrescoConnector.SocketTimeoutColon=Socket Timeout:
 
 AlfrescoConnector.TenantDomainEquals=tenantDomain=
 AlfrescoConnector.UserNameEquals=username=
@@ -34,6 +35,7 @@ AlfrescoConnector.ProtocolEquals=protoco
 AlfrescoConnector.ServerEquals=server=
 AlfrescoConnector.PortEquals=port=
 AlfrescoConnector.PathEquals=path=
+AlfrescoConnector.SocketTimeoutEquals=socketTimeout=
 
 AlfrescoConnector.TheUsernameMustNotBeNull=The username must not be null
 AlfrescoConnector.ThePasswordMustNotBeNull=The password must not be null
@@ -42,6 +44,8 @@ AlfrescoConnector.ServerNameCantContainS
 AlfrescoConnector.ThePortMustNotBeNull=The port must not be null
 AlfrescoConnector.TheServerPortMustBeAValidInteger=The server port must be a valid integer
 AlfrescoConnector.PathMustNotBeNull=Path must not be null
+AlfrescoConnector.TheSocketTimeoutMustNotBeNull=The connector socket timeout must not be null
+AlfrescoConnector.TheSocketTimeoutMustBeAValidInteger=The connector socket timeout must be a valid integer
 
 AlfrescoConnector.LuceneQuery=Lucene Query
 

Modified: manifoldcf/trunk/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/editConfiguration.js
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/editConfiguration.js?rev=1493838&r1=1493837&r2=1493838&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/editConfiguration.js (original)
+++ manifoldcf/trunk/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/editConfiguration.js Mon Jun 17 16:31:02 2013
@@ -73,6 +73,20 @@ function checkConfigForSave()
     editconnection.path.focus();
     return false;
   }
+  if (editconnection.socketTimeout.value == "")
+  {
+    alert("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('AlfrescoConnector.TheSocketTimeoutMustNotBeNull'))");
+    SelectTab("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('AlfrescoConnector.Server'))");
+    editconnection.socketTimeout.focus();
+    return false;
+  } 
+  else if (!isInteger(editconnection.socketTimeout.value))
+  {
+      alert("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('AlfrescoConnector.TheSocketTimeoutMustBeAValidInteger'))");
+      SelectTab("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('AlfrescoConnector.Server'))");
+      editconnection.socketTimeout.focus();
+      return false;
+  }
   return true;
 }
 // -->

Modified: manifoldcf/trunk/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/editConfiguration_Server.html
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/editConfiguration_Server.html?rev=1493838&r1=1493837&r2=1493838&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/editConfiguration_Server.html (original)
+++ manifoldcf/trunk/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/editConfiguration_Server.html Mon Jun 17 16:31:02 2013
@@ -104,6 +104,16 @@
         <input id="path" name="path" type="text" size="32" value="$Encoder.attributeEscape($PATH)" />
     </td>
   </tr>
+  <tr>
+    <td class="description">
+      <nobr>
+        $Encoder.bodyEscape($ResourceBundle.getString('AlfrescoConnector.SocketTimeoutColon'))
+      </nobr>
+    </td>
+    <td class="value">
+        <input id="socketTimeout" name="socketTimeout" type="text" size="10" value="$Encoder.attributeEscape($SOCKETTIMEOUT)" />
+    </td>
+  </tr>
 </table>
 
 #else
@@ -115,6 +125,7 @@
 <input type="hidden" name="port" value="$Encoder.attributeEscape($PORT)" />
 <input type="hidden" name="path" value="$Encoder.attributeEscape($PATH)" />
 <input type="hidden" name="tenantDomain" value="$Encoder.attributeEscape($TENANTDOMAIN)" />
+<input type="hidden" name="socketTimeout" value="$Encoder.attributeEscape($SOCKETTIMEOUT)" />
 
 #end
 

Modified: manifoldcf/trunk/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/viewConfiguration.html
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/viewConfiguration.html?rev=1493838&r1=1493837&r2=1493838&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/viewConfiguration.html (original)
+++ manifoldcf/trunk/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/viewConfiguration.html Mon Jun 17 16:31:02 2013
@@ -51,6 +51,10 @@
         $Encoder.bodyEscape($ResourceBundle.getString('AlfrescoConnector.PathEquals'))$Encoder.bodyEscape($PATH)
       </nobr>
       <br />
+      <nobr>
+        $Encoder.bodyEscape($ResourceBundle.getString('AlfrescoConnector.SocketTimeoutEquals'))$Encoder.bodyEscape($SOCKETTIMEOUT)
+      </nobr>
+      <br />
     </td>
   </tr>
 </table>

Modified: manifoldcf/trunk/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/APISanityIT.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/APISanityIT.java?rev=1493838&r1=1493837&r2=1493838&view=diff
==============================================================================
--- manifoldcf/trunk/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/APISanityIT.java (original)
+++ manifoldcf/trunk/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/APISanityIT.java Mon Jun 17 16:31:02 2013
@@ -68,12 +68,14 @@ public class APISanityIT extends BaseDer
   private static final String ALFRESCO_SERVER = "localhost";
   private static final String ALFRESCO_PORT = "9090";
   private static final String ALFRESCO_PATH = "/alfresco/api";
+  private static final int SOCKET_TIMEOUT = 120000;
   private static final String ALFRESCO_ENDPOINT_TEST_SERVER = 
       ALFRESCO_PROTOCOL+"://"+ALFRESCO_SERVER+":"+ALFRESCO_PORT+ALFRESCO_PATH;
   
   private static final Store STORE = new Store(Constants.WORKSPACE_STORE, "SpacesStore");
   
   public Reference getTestFolder() throws RepositoryFault, RemoteException{
+    WebServiceFactory.setTimeoutMilliseconds(SOCKET_TIMEOUT);
     WebServiceFactory.setEndpointAddress(ALFRESCO_ENDPOINT_TEST_SERVER);
     AuthenticationUtils.startSession(ALFRESCO_USERNAME, ALFRESCO_PASSWORD);
     Reference reference = new Reference();
@@ -141,6 +143,7 @@ public class APISanityIT extends BaseDer
    */
   public void changeDocument(String name, String newContent) throws RepositoryFault, RemoteException{
     String luceneQuery = StringUtils.replace(ALFRESCO_TEST_QUERY_CHANGE_DOC, REPLACER, name);
+    WebServiceFactory.setTimeoutMilliseconds(SOCKET_TIMEOUT);
     WebServiceFactory.setEndpointAddress(ALFRESCO_ENDPOINT_TEST_SERVER);
     AuthenticationUtils.startSession(ALFRESCO_USERNAME, ALFRESCO_PASSWORD);
     
@@ -171,6 +174,7 @@ public class APISanityIT extends BaseDer
   
   public void removeDocument(String name) throws RepositoryFault, RemoteException{
     String luceneQuery = StringUtils.replace(ALFRESCO_TEST_QUERY_CHANGE_DOC, REPLACER, name);
+    WebServiceFactory.setTimeoutMilliseconds(SOCKET_TIMEOUT);
     WebServiceFactory.setEndpointAddress(ALFRESCO_ENDPOINT_TEST_SERVER);
     AuthenticationUtils.startSession(ALFRESCO_USERNAME, ALFRESCO_PASSWORD);
     
@@ -363,6 +367,12 @@ public class APISanityIT extends BaseDer
       alfrescoPathNode.setValue(ALFRESCO_PATH);
       child.addChild(child.getChildCount(), alfrescoPathNode);
       
+      //socketTimeout
+      ConfigurationNode socketTimeoutNode = new ConfigurationNode("_PARAMETER_");
+      socketTimeoutNode.setAttribute("name", AlfrescoConfig.SOCKET_TIMEOUT_PARAM);
+      socketTimeoutNode.setValue(String.valueOf(SOCKET_TIMEOUT));
+      child.addChild(child.getChildCount(), socketTimeoutNode);
+      
       connectionObject.addChild(connectionObject.getChildCount(),child);
 
       requestObject = new Configuration();

Modified: manifoldcf/trunk/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/NavigationDerbyUI.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/NavigationDerbyUI.java?rev=1493838&r1=1493837&r2=1493838&view=diff
==============================================================================
--- manifoldcf/trunk/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/NavigationDerbyUI.java (original)
+++ manifoldcf/trunk/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/NavigationDerbyUI.java Mon Jun 17 16:31:02 2013
@@ -122,6 +122,8 @@ public class NavigationDerbyUI extends B
     textarea.setValue(testerInstance.createStringDescription("9090"));
     textarea = form.findTextarea(testerInstance.createStringDescription("path"));
     textarea.setValue(testerInstance.createStringDescription("/alfresco/api"));
+    textarea = form.findTextarea(testerInstance.createStringDescription("socketTimeout"));
+    textarea.setValue(testerInstance.createStringDescription("120000"));
     // Go back to the Name tab
     link = window.findLink(testerInstance.createStringDescription("Name tab"));
     link.click();