diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index ecd3c25..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-git:
-  depth: 1
-install: ant make-core-deps make-deps
-jobs:
-  include:
-    - name: rat sources & forbidden apis
-      stage: validate
-      script: ant precommit
-      before_install: curl https://repo1.maven.org/maven2/org/apache/rat/apache-rat/0.13/apache-rat-0.13.jar --create-dirs -o $HOME/.ant/lib/apache-rat-0.13.jar
-    - name: maven build
-      stage: build_test
-      script: mvn --batch-mode --no-transfer-progress verify javadoc:javadoc -DskipITs
-      install: true
-      cache:
-        directories:
-          - $HOME/.m2
-    - name: ant build
-      stage: build_test
-      script: ant test
-language: java
-jdk:
-  - openjdk8
-addons:
-  apt:
-    packages:
-      - ant
-      - ant-optional
-notifications:
-  email: false
diff --git a/CHANGES.txt b/CHANGES.txt
index 59e00b9..8a4bf85 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,9 +1,17 @@
 ManifoldCF Change Log
 $Id$
 
-======================= 2.25-dev =====================
+======================= 2.26-dev =====================
 
 
+======================= Release 2.25 =====================
+
+CONNECTORS-1743: Retry on 502 and 503 errors in Solr connector.
+(Markus Günther)
+
+CONNECTORS-1747: Add global property to disable hopcount for all connectors.
+(Mingchun Zhao)
+
 ======================= Release 2.24 =====================
 
 CONNECTORS-1739: Reuse escaping facilities.
diff --git a/build.xml b/build.xml
index d2f5660..35a0c44 100644
--- a/build.xml
+++ b/build.xml
@@ -594,7 +594,7 @@
     <target name="doc" depends="deliver-site-doc"/>
     
     <target name="set-version">
-      <property name="release-version" value="2.25-dev"/>
+      <property name="release-version" value="2.26-dev"/>
     </target>
     
     <target name="create-source-zip" depends="set-version">
diff --git a/connectors/activedirectory/pom.xml b/connectors/activedirectory/pom.xml
index 37d585f..0a310e5 100644
--- a/connectors/activedirectory/pom.xml
+++ b/connectors/activedirectory/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/alfresco-webscript/pom.xml b/connectors/alfresco-webscript/pom.xml
index 64c56f5..58fa8ea 100644
--- a/connectors/alfresco-webscript/pom.xml
+++ b/connectors/alfresco-webscript/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <groupId>org.apache.manifoldcf</groupId>
         <artifactId>mcf-connectors</artifactId>
-        <version>2.25-SNAPSHOT</version>
+        <version>2.26-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/alfresco/pom.xml b/connectors/alfresco/pom.xml
index ad86bb9..d80b7f1 100644
--- a/connectors/alfresco/pom.xml
+++ b/connectors/alfresco/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   
diff --git a/connectors/amazoncloudsearch/pom.xml b/connectors/amazoncloudsearch/pom.xml
index 1d78edf..6dc652c 100644
--- a/connectors/amazoncloudsearch/pom.xml
+++ b/connectors/amazoncloudsearch/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/amazons3/pom.xml b/connectors/amazons3/pom.xml
index 83b71bc..6254fdd 100644
--- a/connectors/amazons3/pom.xml
+++ b/connectors/amazons3/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/cmis/pom.xml b/connectors/cmis/pom.xml
index 72e8ac2..d3f4733 100644
--- a/connectors/cmis/pom.xml
+++ b/connectors/cmis/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   
diff --git a/connectors/confluence-v6/pom.xml b/connectors/confluence-v6/pom.xml
index 6542e6e..4c8ebb1 100755
--- a/connectors/confluence-v6/pom.xml
+++ b/connectors/confluence-v6/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
 
   <name>ManifoldCF - Connectors - Confluence v6 Connector</name>
diff --git a/connectors/confluence/pom.xml b/connectors/confluence/pom.xml
index 2967c49..34b4a65 100644
--- a/connectors/confluence/pom.xml
+++ b/connectors/confluence/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
 
   <name>ManifoldCF - Connectors - Confluence Connector</name>
diff --git a/connectors/contentlimiter/pom.xml b/connectors/contentlimiter/pom.xml
index 751ea84..acfa1b6 100644
--- a/connectors/contentlimiter/pom.xml
+++ b/connectors/contentlimiter/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/csws/pom.xml b/connectors/csws/pom.xml
index 8f48c92..4243fe6 100755
--- a/connectors/csws/pom.xml
+++ b/connectors/csws/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/documentfilter/pom.xml b/connectors/documentfilter/pom.xml
index da8536a..e66957e 100644
--- a/connectors/documentfilter/pom.xml
+++ b/connectors/documentfilter/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/dropbox/pom.xml b/connectors/dropbox/pom.xml
index 769a22b..ed2e300 100644
--- a/connectors/dropbox/pom.xml
+++ b/connectors/dropbox/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.manifoldcf</groupId>
         <artifactId>mcf-connectors</artifactId>
-        <version>2.25-SNAPSHOT</version>
+        <version>2.26-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/elasticsearch/pom.xml b/connectors/elasticsearch/pom.xml
index 5d35a6f..65aa8de 100644
--- a/connectors/elasticsearch/pom.xml
+++ b/connectors/elasticsearch/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   
diff --git a/connectors/email/pom.xml b/connectors/email/pom.xml
index fd5d8a5..7ee1f3f 100644
--- a/connectors/email/pom.xml
+++ b/connectors/email/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/filesystem/pom.xml b/connectors/filesystem/pom.xml
index bc78c2e..273eb22 100644
--- a/connectors/filesystem/pom.xml
+++ b/connectors/filesystem/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/forcedmetadata/pom.xml b/connectors/forcedmetadata/pom.xml
index 673421b..8d31b1f 100644
--- a/connectors/forcedmetadata/pom.xml
+++ b/connectors/forcedmetadata/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/generic/pom.xml b/connectors/generic/pom.xml
index 961459f..23a3035 100644
--- a/connectors/generic/pom.xml
+++ b/connectors/generic/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.manifoldcf</groupId>
         <artifactId>mcf-connectors</artifactId>
-        <version>2.25-SNAPSHOT</version>
+        <version>2.26-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/googledrive/pom.xml b/connectors/googledrive/pom.xml
index c4337f3..636533e 100644
--- a/connectors/googledrive/pom.xml
+++ b/connectors/googledrive/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.manifoldcf</groupId>
         <artifactId>mcf-connectors</artifactId>
-        <version>2.25-SNAPSHOT</version>
+        <version>2.26-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/gridfs/pom.xml b/connectors/gridfs/pom.xml
index aa48f0d..392521f 100644
--- a/connectors/gridfs/pom.xml
+++ b/connectors/gridfs/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.manifoldcf</groupId>
         <artifactId>mcf-connectors</artifactId>
-        <version>2.25-SNAPSHOT</version>
+        <version>2.26-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/gts/pom.xml b/connectors/gts/pom.xml
index 898b40d..85d76b0 100644
--- a/connectors/gts/pom.xml
+++ b/connectors/gts/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/hdfs/pom.xml b/connectors/hdfs/pom.xml
index 69ad5ab..60e90b8 100644
--- a/connectors/hdfs/pom.xml
+++ b/connectors/hdfs/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/html-extractor/pom.xml b/connectors/html-extractor/pom.xml
index f6d949f..3d3ae23 100644
--- a/connectors/html-extractor/pom.xml
+++ b/connectors/html-extractor/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/jcifs/pom.xml b/connectors/jcifs/pom.xml
index 5824345..5ddda26 100644
--- a/connectors/jcifs/pom.xml
+++ b/connectors/jcifs/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/jdbc/JDBCAuthority.java b/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/jdbc/JDBCAuthority.java
index ad62481..7d1ff89 100644
--- a/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/jdbc/JDBCAuthority.java
+++ b/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/jdbc/JDBCAuthority.java
@@ -450,6 +450,7 @@
 "        <option value=\"jtds:sybase://\" " + (lJdbcProvider.equals("jtds:sybase:") ? "selected=\"selected\"" : "") + ">Sybase (&gt;= V10)</option>\n"+
 "        <option value=\"mysql://\" " + (lJdbcProvider.equals("mysql:") ? "selected=\"selected\"" : "") + ">MySQL (&gt;= V5)</option>\n"+
 "        <option value=\"mariadb://\" " + (lJdbcProvider.equals("mariadb:") ? "selected=\"selected\"" : "") + ">MariaDB</option>\n"+
+"        <option value=\"xbib:csv:\" "+(jdbcProvider.equals("xbib:csv:")?"selected=\"selected\"":"")+">CSV</option>\n"+
 "      </select>\n"+
 "    </td>\n"+
 "  </tr>\n"+
diff --git a/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnector.java b/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnector.java
index 0aedb66..eaea7f0 100644
--- a/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnector.java
+++ b/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jdbc/JDBCConnector.java
@@ -1078,6 +1078,7 @@
 "        <option value=\"jtds:sybase://\" "+(jdbcProvider.equals("jtds:sybase:")?"selected=\"selected\"":"")+">Sybase (&gt;= V10)</option>\n"+
 "        <option value=\"mysql://\" "+(jdbcProvider.equals("mysql:")?"selected=\"selected\"":"")+">MySQL (&gt;= V5)</option>\n"+
 "        <option value=\"mariadb://\" "+(jdbcProvider.equals("mariadb:")?"selected=\"selected\"":"")+">MariaDB</option>\n"+
+"        <option value=\"xbib:csv:\" "+(jdbcProvider.equals("xbib:csv:")?"selected=\"selected\"":"")+">CSV</option>\n"+
 "      </select>\n"+
 "    </td>\n"+
 "  </tr>\n"+
diff --git a/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/jdbc/JDBCConnectionFactory.java b/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/jdbc/JDBCConnectionFactory.java
index cf2ef6d..ca01d01 100644
--- a/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/jdbc/JDBCConnectionFactory.java
+++ b/connectors/jdbc/connector/src/main/java/org/apache/manifoldcf/jdbc/JDBCConnectionFactory.java
@@ -49,6 +49,7 @@
     driverMap.put("jtds:sybase://", "net.sourceforge.jtds.jdbc.Driver");
     driverMap.put("mysql://", "com.mysql.jdbc.Driver");
     driverMap.put("mariadb://", "org.mariadb.jdbc.Driver");
+    driverMap.put("xbib:csv:", "org.xbib.jdbc.csv.CsvDriver");
     try
     {
       _pool = new ConnectionPoolManager(120,false);
diff --git a/connectors/jdbc/pom.xml b/connectors/jdbc/pom.xml
index 1f2f7c6..693acef 100644
--- a/connectors/jdbc/pom.xml
+++ b/connectors/jdbc/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/jira/pom.xml b/connectors/jira/pom.xml
index 5386b64..510d5c2 100644
--- a/connectors/jira/pom.xml
+++ b/connectors/jira/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.manifoldcf</groupId>
         <artifactId>mcf-connectors</artifactId>
-        <version>2.25-SNAPSHOT</version>
+        <version>2.26-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/kafka/pom.xml b/connectors/kafka/pom.xml
index 071569f..297f860 100644
--- a/connectors/kafka/pom.xml
+++ b/connectors/kafka/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/ldap/pom.xml b/connectors/ldap/pom.xml
index 87db52a..f113989 100644
--- a/connectors/ldap/pom.xml
+++ b/connectors/ldap/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/ldapmapper/pom.xml b/connectors/ldapmapper/pom.xml
index 778d5d6..4d76e5c 100755
--- a/connectors/ldapmapper/pom.xml
+++ b/connectors/ldapmapper/pom.xml
@@ -2,7 +2,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/mongodb/pom.xml b/connectors/mongodb/pom.xml
index f6ad6c8..2226365 100644
--- a/connectors/mongodb/pom.xml
+++ b/connectors/mongodb/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.manifoldcf</groupId>
         <artifactId>mcf-connectors</artifactId>
-        <version>2.25-SNAPSHOT</version>
+        <version>2.26-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/nullauthority/pom.xml b/connectors/nullauthority/pom.xml
index 88bac7a..69dbe10 100644
--- a/connectors/nullauthority/pom.xml
+++ b/connectors/nullauthority/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/nulloutput/pom.xml b/connectors/nulloutput/pom.xml
index 973c234..e35ef7d 100644
--- a/connectors/nulloutput/pom.xml
+++ b/connectors/nulloutput/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/nulltransformation/pom.xml b/connectors/nulltransformation/pom.xml
index a55cbff..73324c5 100644
--- a/connectors/nulltransformation/pom.xml
+++ b/connectors/nulltransformation/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/nuxeo/pom.xml b/connectors/nuxeo/pom.xml
index 686efef..90622d6 100755
--- a/connectors/nuxeo/pom.xml
+++ b/connectors/nuxeo/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
 
   <name>ManifoldCF - Connectors - Nuxeo Connector</name>
diff --git a/connectors/opennlp/pom.xml b/connectors/opennlp/pom.xml
index 7626be7..0b4bb13 100644
--- a/connectors/opennlp/pom.xml
+++ b/connectors/opennlp/pom.xml
@@ -21,7 +21,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/opensearchserver/pom.xml b/connectors/opensearchserver/pom.xml
index 465cc6c..9bd143c 100644
--- a/connectors/opensearchserver/pom.xml
+++ b/connectors/opensearchserver/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   
diff --git a/connectors/pom.xml b/connectors/pom.xml
index 8965db3..c48f525 100644
--- a/connectors/pom.xml
+++ b/connectors/pom.xml
@@ -20,13 +20,13 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-parent</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
   <groupId>org.apache.manifoldcf</groupId>
   <artifactId>mcf-connectors</artifactId>
-  <version>2.25-SNAPSHOT</version>
+  <version>2.26-SNAPSHOT</version>
 
   <name>ManifoldCF - Connectors</name>
   <packaging>pom</packaging>
diff --git a/connectors/regexpmapper/pom.xml b/connectors/regexpmapper/pom.xml
index 0b81e5e..2c839df 100644
--- a/connectors/regexpmapper/pom.xml
+++ b/connectors/regexpmapper/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/rocketchat/pom.xml b/connectors/rocketchat/pom.xml
index d17ddec..7e1f0da 100644
--- a/connectors/rocketchat/pom.xml
+++ b/connectors/rocketchat/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/rss/pom.xml b/connectors/rss/pom.xml
index cc1034d..504a896 100644
--- a/connectors/rss/pom.xml
+++ b/connectors/rss/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/searchblox/pom.xml b/connectors/searchblox/pom.xml
index 18a92c6..aae9f70 100644
--- a/connectors/searchblox/pom.xml
+++ b/connectors/searchblox/pom.xml
@@ -23,7 +23,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
 
   <artifactId>mcf-searchblox-connector</artifactId>
diff --git a/connectors/sharepoint/pom.xml b/connectors/sharepoint/pom.xml
index 29e2dfc..e201aaf 100644
--- a/connectors/sharepoint/pom.xml
+++ b/connectors/sharepoint/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/slack/pom.xml b/connectors/slack/pom.xml
index 18fa15a..4ec9661 100644
--- a/connectors/slack/pom.xml
+++ b/connectors/slack/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java b/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java
index 8d9d9ce..8ca4cd4 100644
--- a/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java
+++ b/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/HttpPoster.java
@@ -375,8 +375,9 @@
 
     // The only other kind of return code we know how to handle is 50x.
     // For these, we should retry for a while.
-    if (code == 500) {
-      final long currentTime = System.currentTimeMillis();
+    if (code == 500 || code == 502 || code == 503)
+    {
+      long currentTime = System.currentTimeMillis();
 
       // Log the error
       final String message = "Solr exception during " + context + " (" + e.code() + "): " + e.getMessage();
diff --git a/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttp2SolrClient.java b/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttp2SolrClient.java
index 90758ec..b353670 100644
--- a/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttp2SolrClient.java
+++ b/connectors/solr/connector/src/main/java/org/apache/manifoldcf/agents/output/solr/ModifiedHttp2SolrClient.java
@@ -197,7 +197,7 @@
         log.debug("Create Http2SolrClient with HTTP/1.1 transport");
       }
       transport = new HttpClientTransportOverHTTP(2);
-      httpClient = sslEnabled ? new HttpClient(transport, sslContextFactory) : new HttpClient(transport);
+      httpClient = sslEnabled ? new HttpClient(transport, sslContextFactory) : new HttpClient(transport, null);
       if (builder.maxConnectionsPerHost != null)
         httpClient.setMaxConnectionsPerDestination(builder.maxConnectionsPerHost);
     } else {
diff --git a/connectors/solr/pom.xml b/connectors/solr/pom.xml
index 688d91a..8cc395d 100644
--- a/connectors/solr/pom.xml
+++ b/connectors/solr/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/tika/pom.xml b/connectors/tika/pom.xml
index 665359c..a9987b3 100644
--- a/connectors/tika/pom.xml
+++ b/connectors/tika/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/tikaservice-rmeta/pom.xml b/connectors/tikaservice-rmeta/pom.xml
index 53b27c9..ffc3226 100755
--- a/connectors/tikaservice-rmeta/pom.xml
+++ b/connectors/tikaservice-rmeta/pom.xml
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/tikaservice/pom.xml b/connectors/tikaservice/pom.xml
index 0ad4c56..a17599a 100644
--- a/connectors/tikaservice/pom.xml
+++ b/connectors/tikaservice/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/webcrawler/pom.xml b/connectors/webcrawler/pom.xml
index 0c7ce5b..2ce48c9 100644
--- a/connectors/webcrawler/pom.xml
+++ b/connectors/webcrawler/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/connectors/wiki/pom.xml b/connectors/wiki/pom.xml
index ad5de39..679cfef 100644
--- a/connectors/wiki/pom.xml
+++ b/connectors/wiki/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-connectors</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/agents/pom.xml b/framework/agents/pom.xml
index ea06c46..4d868a6 100644
--- a/framework/agents/pom.xml
+++ b/framework/agents/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
     <relativePath>../pom.xml</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
diff --git a/framework/api-service/pom.xml b/framework/api-service/pom.xml
index 4d7d392..e5638a6 100644
--- a/framework/api-service/pom.xml
+++ b/framework/api-service/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/api-servlet/pom.xml b/framework/api-servlet/pom.xml
index a9457a9..c50f8c5 100644
--- a/framework/api-servlet/pom.xml
+++ b/framework/api-servlet/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/authority-service/pom.xml b/framework/authority-service/pom.xml
index 9a00cd9..f0d9827 100644
--- a/framework/authority-service/pom.xml
+++ b/framework/authority-service/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/authority-servlet/pom.xml b/framework/authority-servlet/pom.xml
index 7e37c06..1c39ee6 100644
--- a/framework/authority-servlet/pom.xml
+++ b/framework/authority-servlet/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/combined-service/pom.xml b/framework/combined-service/pom.xml
index 67f5522..0a674f0 100644
--- a/framework/combined-service/pom.xml
+++ b/framework/combined-service/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/connector-common/pom.xml b/framework/connector-common/pom.xml
index aeab133..86c19fa 100644
--- a/framework/connector-common/pom.xml
+++ b/framework/connector-common/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/core/pom.xml b/framework/core/pom.xml
index cf4c361..b1c94e1 100644
--- a/framework/core/pom.xml
+++ b/framework/core/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfacePostgreSQL.java b/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfacePostgreSQL.java
index ba13f07..d01a25a 100644
--- a/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfacePostgreSQL.java
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/database/DBInterfacePostgreSQL.java
@@ -1374,7 +1374,7 @@
       try
       {
         String eventDatum = statsAnalyzePrefix+tableName;
-        // Time to reindex this table!
+        // Time to analyze this table!
         analyzeTableInternal(tableName);
         // Now, clear out the data
         writeDatum(eventDatum,0);
@@ -1574,17 +1574,46 @@
         {
           String eventDatum = statsAnalyzePrefix+tableName;
           int oldEventCount = readDatum(eventDatum);
-          oldEventCount += ts.getEventCount();
-          if (oldEventCount >= analyzeThreshold)
+          int tsEventCount = ts.getEventCount();
+          oldEventCount += tsEventCount;
+          long currentTime = System.currentTimeMillis();
+          // If property "analyzeatstart" is set, then analyze this table when the job starts
+          boolean analyzeAtStart = lockManager.getSharedConfiguration().getBooleanProperty("org.apache.manifoldcf.db.postgres.analyzeatstart", false);
+          if (analyzeAtStart && ts.isFirstAnalyze())
           {
-            // Time to reindex this table!
             analyzeTableInternal(tableName);
-            // Now, clear out the data
             writeDatum(eventDatum,0);
+            // Set the firstAnalyze flag to false
+            ts.setFirstAnalyze(false);
+          }
+          else if (oldEventCount >= analyzeThreshold)
+          {
+            // If property "analyzeratethreshold" is set, then analyze this table only when events per second drops below the threshold
+            int analyzeRateThreshold = lockManager.getSharedConfiguration().getIntProperty("org.apache.manifoldcf.db.postgres.analyzeratethreshold", 0);
+            boolean skipAnalyze = false;
+            long previousTime = ts.getPreviousTime();
+            if (analyzeRateThreshold > 0 && previousTime > 0L)
+            {
+              long elapsedTime = currentTime - previousTime;
+              if (elapsedTime > 0)
+              {
+                int eventRate = (int)(tsEventCount * 1000L / elapsedTime);
+                if (eventRate >= analyzeRateThreshold)
+                  skipAnalyze = true;
+              }
+            }
+            if (!skipAnalyze)
+            {
+              // Time to analyze this table!
+              analyzeTableInternal(tableName);
+              // Now, clear out the data
+              writeDatum(eventDatum,0);
+            }
           }
           else
             writeDatum(eventDatum,oldEventCount);
           ts.reset();
+          ts.setPreviousTime(currentTime);
         }
         finally
         {
@@ -1605,6 +1634,8 @@
   protected static class TableStatistics
   {
     protected int eventCount = 0;
+    protected boolean firstAnalyze = true;
+    protected long timeMilliseconds = 0L;
     
     public TableStatistics()
     {
@@ -1624,6 +1655,26 @@
     {
       return eventCount;
     }
+
+    public boolean isFirstAnalyze()
+    {
+      return this.firstAnalyze;
+    }
+
+    public void setFirstAnalyze(boolean firstAnalyze)
+    {
+      this.firstAnalyze = firstAnalyze;
+    }
+
+    public long getPreviousTime()
+    {
+      return this.timeMilliseconds;
+    }
+
+    public void setPreviousTime(long timeMilliseconds)
+    {
+      this.timeMilliseconds = timeMilliseconds;
+    }
   }
   
 }
diff --git a/framework/crawler-ui/pom.xml b/framework/crawler-ui/pom.xml
index d159485..5d94555 100644
--- a/framework/crawler-ui/pom.xml
+++ b/framework/crawler-ui/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/crawler-ui/src/main/webapp/editjob.jsp b/framework/crawler-ui/src/main/webapp/editjob.jsp
index 01d8716..9e7d9ac 100644
--- a/framework/crawler-ui/src/main/webapp/editjob.jsp
+++ b/framework/crawler-ui/src/main/webapp/editjob.jsp
@@ -54,6 +54,13 @@
   INotificationConnectorPool notificationConnectorPool = NotificationConnectorPoolFactory.make(threadContext);
   ITransformationConnectorPool transformationConnectorPool = TransformationConnectorPoolFactory.make(threadContext);
 
+  ILockManager lockManager = LockManagerFactory.make(threadContext);
+
+  /** If the global cluster property "storehopcount" is set to false(defaults to true), disable support for hopcount handling completely,
+  * the "Hop Filters" tab should not appear in the UI for any job.
+  */
+  Boolean storeHopCount = lockManager.getSharedConfiguration().getBooleanProperty("org.apache.manifoldcf.crawler.jobs.storehopcount",true);
+
   // Figure out tab name and sequence number
   String tabName = variableContext.getParameter("tabname");
   String tabSequenceNumber = variableContext.getParameter("sequencenumber");
@@ -218,7 +225,7 @@
   {
     tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editjob.Scheduling"));
     sequenceArray.add(null);
-    if (relationshipTypes != null && relationshipTypes.length > 0)
+    if (storeHopCount && relationshipTypes != null && relationshipTypes.length > 0)
     {
       tabsArray.add(Messages.getString(pageContext.getRequest().getLocale(),"editjob.HopFilters"));
       sequenceArray.add(null);
@@ -902,7 +909,11 @@
   }
 
   // Hop Filters tab
-  if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editjob.HopFilters")) && tabSequenceInt == -1)
+  if (!storeHopCount)
+  {
+    // Do nothing
+  }
+  else if (tabName.equals(Messages.getString(pageContext.getRequest().getLocale(),"editjob.HopFilters")) && tabSequenceInt == -1)
   {
     if (relationshipTypes != null)
     {
diff --git a/framework/crawler-ui/src/main/webapp/viewjob.jsp b/framework/crawler-ui/src/main/webapp/viewjob.jsp
index 0ed0e56..8be7ed6 100644
--- a/framework/crawler-ui/src/main/webapp/viewjob.jsp
+++ b/framework/crawler-ui/src/main/webapp/viewjob.jsp
@@ -46,6 +46,13 @@
   INotificationConnectorPool notificationConnectorPool = NotificationConnectorPoolFactory.make(threadContext);
   ITransformationConnectorPool transformationConnectorPool = TransformationConnectorPoolFactory.make(threadContext);
 
+  ILockManager lockManager = LockManagerFactory.make(threadContext);
+
+  /** If the global cluster property "storehopcount" is set to false(defaults to true), disable support for hopcount handling completely,
+  * the hopcount information should not appear in the UI for any job.
+  */
+  Boolean storeHopCount = lockManager.getSharedConfiguration().getBooleanProperty("org.apache.manifoldcf.crawler.jobs.storehopcount",true);
+
   String jobID = variableContext.getParameter("jobid");
   IJobDescription job = manager.load(new Long(jobID));
   if (job == null)
@@ -595,7 +602,7 @@
       }
     }
 
-    if (relationshipTypes != null && relationshipTypes.length > 0)
+    if (storeHopCount && relationshipTypes != null && relationshipTypes.length > 0)
     {
       int k = 0;
       while (k < relationshipTypes.length)
diff --git a/framework/jetty-runner/pom.xml b/framework/jetty-runner/pom.xml
index 496cf3f..16cccf1 100644
--- a/framework/jetty-runner/pom.xml
+++ b/framework/jetty-runner/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/less-compiler/pom.xml b/framework/less-compiler/pom.xml
index 47c4330..c46fcd6 100644
--- a/framework/less-compiler/pom.xml
+++ b/framework/less-compiler/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/pom.xml b/framework/pom.xml
index 42a723e..de8c636 100644
--- a/framework/pom.xml
+++ b/framework/pom.xml
@@ -20,13 +20,13 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-parent</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
   <groupId>org.apache.manifoldcf</groupId>
   <artifactId>mcf-framework</artifactId>
-  <version>2.25-SNAPSHOT</version>
+  <version>2.26-SNAPSHOT</version>
 
   <name>ManifoldCF - Framework</name>
   <packaging>pom</packaging>
diff --git a/framework/pull-agent/pom.xml b/framework/pull-agent/pom.xml
index 7e1d5ad..220edb9 100644
--- a/framework/pull-agent/pom.xml
+++ b/framework/pull-agent/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/HopCount.java b/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/HopCount.java
index 5731be3..f5edb9d 100644
--- a/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/HopCount.java
+++ b/framework/pull-agent/src/main/java/org/apache/manifoldcf/crawler/jobs/HopCount.java
@@ -148,6 +148,14 @@
   /** Thread context */
   protected IThreadContext threadContext;
   
+  /** Lock manager */
+  protected final ILockManager lockManager;
+
+  /** If the global cluster property "storehopcount" is set to false(defaults to true), disable support for hopcount handling completely,
+  * the hopcount will never be recorded in the "intrinsiclink" or "hopcount" tables for any job at all.
+  */
+  protected static Boolean storeHopCount = true;
+
   /** Constructor.
   *@param database is the database handle.
   */
@@ -158,6 +166,8 @@
     this.threadContext = tc;
     intrinsicLinkManager = new IntrinsicLink(database);
     deleteDepsManager = new HopDeleteDeps(database);
+    lockManager = LockManagerFactory.make(tc);
+    storeHopCount = lockManager.getSharedConfiguration().getBooleanProperty("org.apache.manifoldcf.crawler.jobs.storehopcount",true);
   }
 
   /** Install or upgrade.
@@ -389,6 +399,12 @@
     // this method would need to be revised to not process any additions until the finishParents() call
     // is made.  At the moment, revertParents() is not used by any thread.
     // TBD, MHL
+    if (!storeHopCount)
+    {
+      // Do nothing
+      return null;
+    }
+
     boolean[] rval = new boolean[targetDocumentIDHashes.length];
     for (int i = 0; i < rval.length; i++)
     {
diff --git a/framework/script-engine/pom.xml b/framework/script-engine/pom.xml
index 981cb5a..6c6b564 100644
--- a/framework/script-engine/pom.xml
+++ b/framework/script-engine/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/framework/ui-core/pom.xml b/framework/ui-core/pom.xml
index faab5f4..dba3afe 100644
--- a/framework/ui-core/pom.xml
+++ b/framework/ui-core/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-framework</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/pom.xml b/pom.xml
index ac72074..fdb1040 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
 
   <groupId>org.apache.manifoldcf</groupId>
   <artifactId>mcf-parent</artifactId>
-  <version>2.25-SNAPSHOT</version>
+  <version>2.26-SNAPSHOT</version>
 
   <name>ManifoldCF</name>
   <packaging>pom</packaging>
diff --git a/test-materials/alfresco-4-war/pom.xml b/test-materials/alfresco-4-war/pom.xml
index c4a7a1d..07c5e4d 100644
--- a/test-materials/alfresco-4-war/pom.xml
+++ b/test-materials/alfresco-4-war/pom.xml
@@ -14,7 +14,7 @@
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <artifactId>alfresco-4-war</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
     <name>ManifoldCF - Test Materials - Alfresco WAR</name>
     <description>Alfresco WAR builder</description>
     <packaging>war</packaging>
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.manifoldcf</groupId>
         <artifactId>mcf-test-materials</artifactId>
-        <version>2.25-SNAPSHOT</version>
+        <version>2.26-SNAPSHOT</version>
     </parent>
     
     <properties>
diff --git a/test-materials/pom.xml b/test-materials/pom.xml
index 9824b67..eb3c4d7 100644
--- a/test-materials/pom.xml
+++ b/test-materials/pom.xml
@@ -19,7 +19,7 @@
   <parent>
     <groupId>org.apache.manifoldcf</groupId>
     <artifactId>mcf-parent</artifactId>
-    <version>2.25-SNAPSHOT</version>
+    <version>2.26-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <artifactId>mcf-test-materials</artifactId>
