Merge in contents of CONNECTORS-911 branch

git-svn-id: https://svn.apache.org/repos/asf/manifoldcf/branches/CONNECTORS-911-2@1584050 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/CHANGES.txt b/CHANGES.txt
index 3bcd171..f3b8ecd 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -3,6 +3,16 @@
 
 ======================= 1.6-dev =====================
 
+CONNECTORS-913: Only remove connector registration when connectors
+are being delivered.
+(Karl Wright)
+
+CONNECTORS-912: Revamp build system, so that individual connectors
+can build directly against a distribution.  This makes it much easier for
+developers to do their own connectors using our infrastructure, and
+contribute complete working connectors with tests as well.
+(Graeme Seaton, Karl Wright)
+
 CONNECTORS-909: Upgrade to Elasticsearch 1.0.1.
 (Shinichiro Abe)
 
diff --git a/build.xml b/build.xml
index 1103d50..560d53d 100644
--- a/build.xml
+++ b/build.xml
@@ -43,126 +43,6 @@
         <echo message="Overlay -lib package, or run 'make-core-deps' target first"/>
     </target>
 
-    <target name="clean">
-        <delete>
-          <fileset dir="." includes="apache-manifoldcf-*.zip"/>
-          <fileset dir="." includes="apache-manifoldcf-*.tar.gz"/>
-        </delete>
-        <delete dir="build"/>
-        <delete dir="dist"/>
-        <delete dir="test-output/"/>
-        <delete dir="test-derby-output"/>
-        <delete dir="test-postgresql-output"/>
-        <delete dir="test-mysql-output"/>
-        <delete dir="test-HSQLDB-output"/>
-        <delete dir="test-HSQLDBext-output"/>
-        <ant dir="site" target="clean"/>
-        <ant dir="framework" target="clean"/>
-        <ant dir="connectors/alfresco" target="clean"/>
-        <ant dir="connectors/cmis" target="clean"/>
-        <ant dir="connectors/dropbox" target="clean"/>
-        <ant dir="connectors/email" target="clean"/>
-        <ant dir="connectors/generic" target="clean"/>
-        <ant dir="connectors/googledrive" target="clean"/>
-        <ant dir="connectors/jira" target="clean"/>
-        <ant dir="connectors/activedirectory" target="clean"/>
-        <ant dir="connectors/ldap" target="clean"/>
-        <ant dir="connectors/documentum" target="clean"/>
-        <ant dir="connectors/filenet" target="clean"/>
-        <ant dir="connectors/filesystem" target="clean"/>
-        <ant dir="connectors/gts" target="clean"/>
-        <ant dir="connectors/hdfs" target="clean"/>
-        <ant dir="connectors/jcifs" target="clean"/>
-        <ant dir="connectors/jdbc" target="clean"/>
-        <ant dir="connectors/livelink" target="clean"/>
-        <ant dir="connectors/solr" target="clean"/>
-        <ant dir="connectors/memex" target="clean"/>
-        <ant dir="connectors/meridio" target="clean"/>
-        <ant dir="connectors/opensearchserver" target="clean"/>
-        <ant dir="connectors/elasticsearch" target="clean"/>
-        <ant dir="connectors/nullauthority" target="clean"/>
-        <ant dir="connectors/nulloutput" target="clean"/>
-        <ant dir="connectors/rss" target="clean"/>
-        <ant dir="connectors/regexpmapper" target="clean"/>
-        <ant dir="connectors/sharepoint" target="clean"/>
-        <ant dir="connectors/webcrawler" target="clean"/>
-        <ant dir="connectors/wiki" target="clean"/>
-        
-        <ant dir="tests/activedirectory" target="clean"/>
-        <ant dir="tests/alfresco" target="clean"/>
-        <ant dir="tests/cmis" target="clean"/>
-        <ant dir="tests/filesystem" target="clean"/>
-        <ant dir="tests/gts" target="clean"/>
-        <ant dir="tests/hdfs" target="clean"/>
-        <ant dir="tests/opensearchserver" target="clean"/>
-        <ant dir="tests/rss" target="clean"/>
-        <ant dir="tests/solr" target="clean"/>
-        <ant dir="tests/jcifs" target="clean"/>
-        <ant dir="tests/jdbc" target="clean"/>
-        <ant dir="tests/sharepoint" target="clean"/>
-        <ant dir="tests/webcrawler" target="clean"/>
-        <ant dir="tests/wiki" target="clean"/>
-        <ant dir="tests/elasticsearch" target="clean"/>
-
-    </target>
-
-    <target name="cleanup-afterbuild">
-        <delete dir="build"/>
-        <delete dir="test-output/"/>
-        <delete dir="test-derby-output"/>
-        <delete dir="test-postgresql-output"/>
-        <delete dir="test-mysql-output"/>
-        <delete dir="test-HSQLDB-output"/>
-        <delete dir="test-HSQLDBext-output"/>
-        <ant dir="site" target="clean"/>
-        <ant dir="framework" target="clean"/>
-        <ant dir="connectors/alfresco" target="clean"/>
-        <ant dir="connectors/cmis" target="clean"/>
-        <ant dir="connectors/dropbox" target="clean"/>
-        <ant dir="connectors/email" target="clean"/>
-        <ant dir="connectors/generic" target="clean"/>
-        <ant dir="connectors/googledrive" target="clean"/>
-        <ant dir="connectors/jira" target="clean"/>
-        <ant dir="connectors/activedirectory" target="clean"/>
-        <ant dir="connectors/ldap" target="clean"/>
-        <ant dir="connectors/documentum" target="clean"/>
-        <ant dir="connectors/filenet" target="clean"/>
-        <ant dir="connectors/filesystem" target="clean"/>
-        <ant dir="connectors/gts" target="clean"/>
-        <ant dir="connectors/hdfs" target="clean"/>
-        <ant dir="connectors/jcifs" target="clean"/>
-        <ant dir="connectors/jdbc" target="clean"/>
-        <ant dir="connectors/livelink" target="clean"/>
-        <ant dir="connectors/solr" target="clean"/>
-        <ant dir="connectors/memex" target="clean"/>
-        <ant dir="connectors/meridio" target="clean"/>
-        <ant dir="connectors/opensearchserver" target="clean"/>
-        <ant dir="connectors/elasticsearch" target="clean"/>
-        <ant dir="connectors/nullauthority" target="clean"/>
-        <ant dir="connectors/nulloutput" target="clean"/>
-        <ant dir="connectors/rss" target="clean"/>
-        <ant dir="connectors/regexpmapper" target="clean"/>
-        <ant dir="connectors/sharepoint" target="clean"/>
-        <ant dir="connectors/webcrawler" target="clean"/>
-        <ant dir="connectors/wiki" target="clean"/>
-
-        <ant dir="tests/activedirectory" target="clean"/>
-        <ant dir="tests/alfresco" target="clean"/>
-        <ant dir="tests/cmis" target="clean"/>
-        <ant dir="tests/filesystem" target="clean"/>
-        <ant dir="tests/gts" target="clean"/>
-        <ant dir="tests/hdfs" target="clean"/>
-        <ant dir="tests/opensearchserver" target="clean"/>
-        <ant dir="tests/rss" target="clean"/>
-        <ant dir="tests/solr" target="clean"/>
-        <ant dir="tests/jcifs" target="clean"/>
-        <ant dir="tests/jdbc" target="clean"/>
-        <ant dir="tests/sharepoint" target="clean"/>
-        <ant dir="tests/webcrawler" target="clean"/>
-        <ant dir="tests/wiki" target="clean"/>
-        <ant dir="tests/elasticsearch" target="clean"/>
-
-    </target>
     
     <target name="build-site" depends="downloaded-check" if="downloaded">
       <ant dir="site" target="all"/>
@@ -1181,6 +1061,12 @@
           </copy>
     </target>
 
+    <target name="preclean-registry">
+        <mkdir dir="dist"/>
+        <delete file="dist/connectors.xml"/>
+        <delete file="dist/connectors-proprietary.xml"/>
+    </target>
+
     <target name="preclean-for-delivery">
         <mkdir dir="dist"/>
         <mkdir dir="dist/example"/>
@@ -1189,8 +1075,6 @@
         <mkdir dir="dist/multiprocess-zk-example"/>
         <mkdir dir="dist/multiprocess-file-example-proprietary"/>
         <mkdir dir="dist/multiprocess-zk-example-proprietary"/>
-        <delete file="dist/connectors.xml"/>
-        <delete file="dist/connectors-proprietary.xml"/>
         <delete file="dist/example/properties.xml"/>
         <delete file="dist/example-proprietary/properties.xml"/>
         <delete file="dist/multiprocess-file-example/properties.xml"/>
@@ -1202,6 +1086,12 @@
     </target>
     
     <target name="deliver-framework" depends="preclean-for-delivery,build-framework" if="downloaded">
+        <mkdir dir="dist"/>
+        <copy todir="dist">
+            <fileset dir="framework/dist">
+                <include name="connector-build.xml"/>
+            </fileset>
+        </copy>
         <mkdir dir="dist/web"/>
         <copy todir="dist/web">
             <fileset dir="framework/dist/web"/>
@@ -1214,6 +1104,10 @@
         <copy todir="dist/lib">
             <fileset dir="framework/dist/lib"/>
         </copy>
+        <mkdir dir="dist/test-lib"/>
+        <copy todir="dist/test-lib">
+            <fileset dir="framework/dist/test-lib"/>
+        </copy>
         <mkdir dir="dist/lib-proprietary"/>
         <copy todir="dist/lib-proprietary">
             <fileset dir="framework/dist/lib-proprietary"/>
@@ -1280,1832 +1174,148 @@
         </copy>
     </target>
 
-    <target name="general-connector-integration-check">
-        <available file="connectors/${connector-name}/dist/integration" type="dir" property="${connector-name}.has-integration"/>
+    <!-- Connector crawler.  This iterates over all connector makefiles, invoking the specified target of each. -->
+    <macrodef name="connectors-crawl">
+        <attribute name="target" default=""/>
+        <attribute name="failonerror" default="true"/>
+        <sequential>
+            <subant target="@{target}" failonerror="@{failonerror}" inheritall="false">
+                <!-- propertyset refid="uptodate.and.compiled.properties"/ -->
+                <fileset dir="connectors" includes="*/build.xml" excludes="build/**,build-stubs/**,connector/**,dist/**,test-output*/**"/>
+            </subant>
+        </sequential>
+    </macrodef>
+
+    <!-- Generic connector targets -->
+    
+    <target name="download-connectors-dependencies" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="download-dependencies"/>
     </target>
 
-    <target name="general-connector-processes-check">
-        <available file="connectors/${connector-name}/dist/server-process" type="dir" property="${connector-name}.has-server-process"/>
-        <available file="connectors/${connector-name}/dist/registry-process" type="dir" property="${connector-name}.has-registry-process"/>
-        <condition property="${connector-name}.has-processes">
-          <and>
-              <isset property="${connector-name}.has-server-process"/>
-              <isset property="${connector-name}.has-registry-process"/>
-          </and>
-        </condition>
+    <target name="cleanup-connectors-dependencies" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="download-cleanup"/>
     </target>
 
-    <target name="general-connector-delivery-integration" depends="general-connector-integration-check" if="${connector-name}.has-integration">
-        <mkdir dir="dist/${connector-name}-integration"/>
-        <copy todir="dist/${connector-name}-integration">
-            <fileset dir="connectors/${connector-name}/dist/integration"/>
-        </copy>
-    </target>
-
-    <target name="general-connector-delivery-processes" depends="general-connector-processes-check" if="${connector-name}.has-processes">
-        <mkdir dir="dist/${connector-name}-server-process"/>
-        <copy todir="dist/${connector-name}-server-process">
-            <fileset dir="connectors/${connector-name}/dist/server-process"/>
-        </copy>
-        <mkdir dir="dist/${connector-name}-registry-process"/>
-        <copy todir="dist/${connector-name}-registry-process">
-            <fileset dir="connectors/${connector-name}/dist/registry-process"/>
-        </copy>
-    </target>
-
-    <target name="general-connector-proprietary-only-check">
-        <available file="connectors/${connector-name}/dist/lib-proprietary-only" type="dir" property="${connector-name}.has-proprietary-only"/>
-    </target>
-
-    <target name="general-connector-proprietary-only-delivery" depends="general-connector-proprietary-only-check" if="${connector-name}.has-proprietary-only">
-        <mkdir dir="dist/connector-lib-proprietary"/>
-        <copy todir="dist/connector-lib-proprietary">
-            <fileset dir="connectors/${connector-name}/dist/lib-proprietary-only"/>
-        </copy>
-    </target>
-
-    <target name="general-connector-delivery" depends="general-connector-proprietary-only-delivery,general-connector-delivery-integration,general-connector-delivery-processes">
-        <mkdir dir="dist/connector-lib"/>
-        <copy todir="dist/connector-lib">
-            <fileset dir="connectors/${connector-name}/dist/lib"/>
-        </copy>
-    </target>
-
-    <target name="general-connector-doc-check">
-        <available file="connectors/${connector-name}/dist/doc" type="dir" property="${connector-name}.has-doc"/>
-    </target>
-
-    <target name="general-connector-doc-delivery" depends="general-connector-doc-check" if="${connector-name}.has-doc">
-        <mkdir dir="dist/doc/api/${connector-name}"/>
-        <copy todir="dist/doc/api/${connector-name}">
-            <fileset dir="connectors/${connector-name}/dist/doc"/>
-        </copy>
-    </target>
-
-    <target name="general-connector-proprietary-runnable-check">
-        <available file="connectors/${connector-name}/dist/lib-proprietary-only/${connector-name}-PLACEHOLDER.txt" property="${connector-name}.has-placeholder"/>
-        <condition property="${connector-name}.is-proprietary-runnable">
-            <not>
-                <isset property="${connector-name}.has-placeholder"/>
-            </not>
-        </condition>
-    </target>
-
-    <target name="general-connector-runnable-check" depends="general-connector-proprietary-runnable-check">
-        <available file="connectors/${connector-name}/lib-proprietary" type="dir" property="${connector-name}.has-lib-proprietary"/>
-        <condition property="${connector-name}.is-runnable">
-            <not>
-                <isset property="${connector-name}.has-lib-proprietary"/>
-            </not>
-        </condition>
+    <target name="deliver-connectors" depends="preclean-registry,deliver-framework" if="downloaded">
+        <connectors-crawl target="deliver-connector"/>
     </target>
     
-    <target name="general-add-mapping-connector-commented" depends="general-connector-runnable-check" unless="${connector-name}.is-runnable">
-        <replace file="dist/connectors.xml" token="&lt;!-- Add your mapping connectors here --&gt;" value="&lt;!-- Add your mapping connectors here --&gt;&#0010;  &lt;!--mappingconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/--&gt;"/>
+    <target name="deliver-connectors-doc" depends="deliver-connectors,deliver-framework-doc" if="downloaded">
+        <connectors-crawl target="deliver-connector-doc"/>
     </target>
 
-    <target name="general-add-mapping-connector-non-commented" depends="general-connector-runnable-check" if="${connector-name}.is-runnable">
-        <replace file="dist/connectors.xml" token="&lt;!-- Add your mapping connectors here --&gt;" value="&lt;!-- Add your mapping connectors here --&gt;&#0010;  &lt;mappingconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/&gt;"/>
+    <target name="run-connectors-tests" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-tests"/>
     </target>
 
-    <target name="general-add-mapping-connector-proprietary-commented" depends="general-connector-proprietary-runnable-check" unless="${connector-name}.is-proprietary-runnable">
-        <replace file="dist/connectors-proprietary.xml" token="&lt;!-- Add your mapping connectors here --&gt;" value="&lt;!-- Add your mapping connectors here --&gt;&#0010;  &lt;!--mappingconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/--&gt;"/>
+    <target name="run-connectors-tests-derby" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-tests-derby"/>
     </target>
 
-    <target name="general-add-mapping-connector-proprietary-non-commented" depends="general-connector-proprietary-runnable-check" if="${connector-name}.is-proprietary-runnable">
-        <replace file="dist/connectors-proprietary.xml" token="&lt;!-- Add your mapping connectors here --&gt;" value="&lt;!-- Add your mapping connectors here --&gt;&#0010;  &lt;mappingconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/&gt;"/>
+    <target name="run-connectors-tests-HSQLDB" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-tests-HSQLDB"/>
     </target>
 
-    <target name="general-add-mapping-connector" depends="general-add-mapping-connector-commented,general-add-mapping-connector-non-commented,general-add-mapping-connector-proprietary-commented,general-add-mapping-connector-proprietary-non-commented">
+    <target name="run-connectors-tests-HSQLDBext" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-tests-HSQLDBext"/>
     </target>
 
-    <target name="general-add-authority-connector-commented" depends="general-connector-runnable-check" unless="${connector-name}.is-runnable">
-        <replace file="dist/connectors.xml" token="&lt;!-- Add your authority connectors here --&gt;" value="&lt;!-- Add your authority connectors here --&gt;&#0010;  &lt;!--authorityconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/--&gt;"/>
+    <target name="run-connectors-tests-postgresql" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-tests-postgresql"/>
     </target>
 
-    <target name="general-add-authority-connector-non-commented" depends="general-connector-runnable-check" if="${connector-name}.is-runnable">
-        <replace file="dist/connectors.xml" token="&lt;!-- Add your authority connectors here --&gt;" value="&lt;!-- Add your authority connectors here --&gt;&#0010;  &lt;authorityconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/&gt;"/>
+    <target name="run-connectors-tests-mysql" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-tests-mysql"/>
     </target>
 
-    <target name="general-add-authority-connector-proprietary-commented" depends="general-connector-proprietary-runnable-check" unless="${connector-name}.is-proprietary-runnable">
-        <replace file="dist/connectors-proprietary.xml" token="&lt;!-- Add your authority connectors here --&gt;" value="&lt;!-- Add your authority connectors here --&gt;&#0010;  &lt;!--authorityconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/--&gt;"/>
+    <target name="run-connectors-IT-derby" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-IT-derby"/>
     </target>
 
-    <target name="general-add-authority-connector-proprietary-non-commented" depends="general-connector-proprietary-runnable-check" if="${connector-name}.is-proprietary-runnable">
-        <replace file="dist/connectors-proprietary.xml" token="&lt;!-- Add your authority connectors here --&gt;" value="&lt;!-- Add your authority connectors here --&gt;&#0010;  &lt;authorityconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/&gt;"/>
+    <target name="run-connectors-IT-HSQLDB" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-IT-HSQLDB"/>
     </target>
 
-    <target name="general-add-authority-connector" depends="general-add-authority-connector-commented,general-add-authority-connector-non-commented,general-add-authority-connector-proprietary-commented,general-add-authority-connector-proprietary-non-commented">
+    <target name="run-connectors-IT-HSQLDBext" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-IT-HSQLDBext"/>
     </target>
 
-    <target name="general-add-output-connector-commented" depends="general-connector-runnable-check" unless="${connector-name}.is-runnable">
-        <replace file="dist/connectors.xml" token="&lt;!-- Add your output connectors here --&gt;" value="&lt;!-- Add your output connectors here --&gt;&#0010;  &lt;!--outputconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/--&gt;"/>
+    <target name="run-connectors-IT-postgresql" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-IT-postgresql"/>
     </target>
 
-    <target name="general-add-output-connector-non-commented" depends="general-connector-runnable-check" if="${connector-name}.is-runnable">
-        <replace file="dist/connectors.xml" token="&lt;!-- Add your output connectors here --&gt;" value="&lt;!-- Add your output connectors here --&gt;&#0010;  &lt;outputconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/&gt;"/>
+    <target name="run-connectors-IT-mysql" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-IT-mysql"/>
     </target>
 
-    <target name="general-add-output-connector-proprietary-commented" depends="general-connector-proprietary-runnable-check" unless="${connector-name}.is-proprietary-runnable">
-        <replace file="dist/connectors-proprietary.xml" token="&lt;!-- Add your output connectors here --&gt;" value="&lt;!-- Add your output connectors here --&gt;&#0010;  &lt;!--outputconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/--&gt;"/>
+    <target name="run-connectors-UI-derby" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-UI-derby"/>
     </target>
 
-    <target name="general-add-output-connector-proprietary-non-commented" depends="general-connector-proprietary-runnable-check" if="${connector-name}.is-proprietary-runnable">
-        <replace file="dist/connectors-proprietary.xml" token="&lt;!-- Add your output connectors here --&gt;" value="&lt;!-- Add your output connectors here --&gt;&#0010;  &lt;outputconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/&gt;"/>
+    <target name="run-connectors-UI-HSQLDB" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-UI-HSQLDB"/>
     </target>
 
-    <target name="general-add-output-connector" depends="general-add-output-connector-commented,general-add-output-connector-non-commented,general-add-output-connector-proprietary-commented,general-add-output-connector-proprietary-non-commented">
+    <target name="run-connectors-UI-HSQLDBext" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-UI-HSQLDBext"/>
     </target>
 
-    <target name="general-add-repository-connector-commented" depends="general-connector-runnable-check" unless="${connector-name}.is-runnable">
-        <replace file="dist/connectors.xml" token="&lt;!-- Add your repository connectors here --&gt;" value="&lt;!-- Add your repository connectors here --&gt;&#0010;  &lt;!--repositoryconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/--&gt;"/>
+    <target name="run-connectors-UI-postgresql" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-UI-postgresql"/>
     </target>
 
-    <target name="general-add-repository-connector-non-commented" depends="general-connector-runnable-check" if="${connector-name}.is-runnable">
-        <replace file="dist/connectors.xml" token="&lt;!-- Add your repository connectors here --&gt;" value="&lt;!-- Add your repository connectors here --&gt;&#0010;  &lt;repositoryconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/&gt;"/>
+    <target name="run-connectors-UI-mysql" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-UI-mysql"/>
     </target>
 
-    <target name="general-add-repository-connector-proprietary-commented" depends="general-connector-proprietary-runnable-check" unless="${connector-name}.is-proprietary-runnable">
-        <replace file="dist/connectors-proprietary.xml" token="&lt;!-- Add your repository connectors here --&gt;" value="&lt;!-- Add your repository connectors here --&gt;&#0010;  &lt;!--repositoryconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/--&gt;"/>
+    <target name="run-connectors-LT-derby" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-LT-derby"/>
     </target>
 
-    <target name="general-add-repository-connector-proprietary-non-commented" depends="general-connector-proprietary-runnable-check" if="${connector-name}.is-proprietary-runnable">
-        <replace file="dist/connectors-proprietary.xml" token="&lt;!-- Add your repository connectors here --&gt;" value="&lt;!-- Add your repository connectors here --&gt;&#0010;  &lt;repositoryconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/&gt;"/>
+    <target name="run-connectors-LT-HSQLDB" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-LT-HSQLDB"/>
     </target>
 
-    <target name="general-add-repository-connector" depends="general-add-repository-connector-commented,general-add-repository-connector-non-commented,general-add-repository-connector-proprietary-commented,general-add-repository-connector-proprietary-non-commented">
+    <target name="run-connectors-LT-HSQLDBext" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-LT-HSQLDBext"/>
+    </target>
+
+    <target name="run-connectors-LT-postgresql" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-LT-postgresql"/>
+    </target>
+
+    <target name="run-connectors-LT-mysql" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="run-LT-mysql"/>
+    </target>
+
+    <!-- General connectors utility targets -->
+    
+    <target name="clean-connectors" depends="deliver-framework" if="downloaded">
+        <connectors-crawl target="clean"/>
     </target>
     
-    <target name="calculate-activedirectory-condition" depends="build-activedirectory-connector">
-        <available file="connectors/activedirectory/dist/lib" type="dir" property="activedirectory.exists"/>
-        <condition property="activedirectory.include">
-            <and>
-                <isset property="activedirectory.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
+    <!-- General targets -->
+    <target name="clean" depends="clean-connectors">
+        <delete>
+          <fileset dir="." includes="apache-manifoldcf-*.zip"/>
+          <fileset dir="." includes="apache-manifoldcf-*.tar.gz"/>
+        </delete>
+        <delete dir="build"/>
+        <delete dir="dist"/>
+        <ant dir="site" target="clean"/>
+        <ant dir="framework" target="clean"/>
     </target>
 
-    <target name="calculate-activedirectory-doc-condition" depends="doc-activedirectory-connector">
-        <available file="connectors/activedirectory/dist/doc" type="dir" property="activedirectory-doc.exists"/>
-        <condition property="activedirectory-doc.include">
-            <and>
-                <isset property="activedirectory-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
+    <target name="cleanup-afterbuild" depends="clean-connectors">
+        <delete dir="build"/>
+        <ant dir="site" target="clean"/>
+        <ant dir="framework" target="clean"/>
     </target>
 
-    <target name="deliver-activedirectory-connector" depends="calculate-activedirectory-condition" if="activedirectory.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="activedirectory"/>
-        </antcall>
-        <antcall target="general-add-authority-connector">
-            <param name="connector-name" value="activedirectory"/>
-            <param name="connector-label" value="Active Directory"/>
-            <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.activedirectory.ActiveDirectoryAuthority"/>
-        </antcall>
-    </target>
-
-    <target name="deliver-activedirectory-connector-doc" depends="calculate-activedirectory-doc-condition" if="activedirectory-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="activedirectory"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-ldap-condition" depends="build-ldap-connector">
-        <available file="connectors/ldap/dist/lib" type="dir" property="ldap.exists"/>
-        <condition property="ldap.include">
-            <and>
-                <isset property="ldap.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-ldap-doc-condition" depends="doc-ldap-connector">
-        <available file="connectors/ldap/dist/doc" type="dir" property="ldap-doc.exists"/>
-        <condition property="ldap-doc.include">
-            <and>
-                <isset property="ldap-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-ldap-connector" depends="calculate-ldap-condition" if="ldap.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="ldap"/>
-        </antcall>
-        <antcall target="general-add-authority-connector">
-            <param name="connector-name" value="ldap"/>
-            <param name="connector-label" value="LDAP"/>
-            <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.ldap.LDAPAuthority"/>
-        </antcall>
-    </target>
-
-    <target name="deliver-ldap-connector-doc" depends="calculate-ldap-doc-condition" if="ldap-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="ldap"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-alfresco-condition" depends="build-alfresco-connector">
-        <available file="connectors/alfresco/dist/lib" type="dir" property="alfresco.exists"/>
-        <condition property="alfresco.include">
-            <and>
-                <isset property="alfresco.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-alfresco-testmaterials-condition" depends="calculate-alfresco-condition,build-alfresco-connector-testmaterials">
-        <available file="connectors/alfresco/build/alfresco-4-war" type="dir" property="alfresco-testmaterials.exists"/>
-        <condition property="alfresco-testmaterials.include">
-          <and>
-              <isset property="alfresco-testmaterials.exists"/>
-              <isset property="alfresco.include"/>
-              <isset property="downloaded"/>
-          </and>
-        </condition>
-    </target>
-
-    <target name="calculate-alfresco-doc-condition" depends="doc-alfresco-connector">
-        <available file="connectors/alfresco/dist/doc" type="dir" property="alfresco-doc.exists"/>
-        <condition property="alfresco-doc.include">
-            <and>
-                <isset property="alfresco-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-alfresco-connector" depends="calculate-alfresco-condition" if="alfresco.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="alfresco"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="alfresco"/>
-            <param name="connector-label" value="Alfresco"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.alfresco.AlfrescoRepositoryConnector"/>
-        </antcall>
-    </target>
-
-    <target name="deliver-alfresco-connector-doc" depends="calculate-alfresco-doc-condition" if="alfresco-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="alfresco"/>
-        </antcall>
-    </target>
-    
-    <target name="calculate-cmis-condition" depends="build-cmis-connector">
-        <available file="connectors/cmis/dist/lib" type="dir" property="cmis.exists"/>
-        <condition property="cmis.include">
-            <and>
-                <isset property="cmis.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-    
-    
-    <target name="calculate-dropbox-condition" depends="build-dropbox-connector">
-        <available file="connectors/dropbox/dist/lib" type="dir" property="dropbox.exists"/>
-        <condition property="dropbox.include">
-            <and>
-                <isset property="dropbox.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-dropbox-doc-condition" depends="doc-dropbox-connector">
-        <available file="connectors/dropbox/dist/doc" type="dir" property="dropbox-doc.exists"/>
-        <condition property="dropbox-doc.include">
-            <and>
-                <isset property="dropbox-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-generic-condition" depends="build-generic-connector">
-        <available file="connectors/generic/dist/lib" type="dir" property="generic.exists"/>
-        <condition property="generic.include">
-            <and>
-                <isset property="generic.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-generic-doc-condition" depends="doc-generic-connector">
-        <available file="connectors/generic/dist/doc" type="dir" property="generic-doc.exists"/>
-        <condition property="generic-doc.include">
-            <and>
-                <isset property="generic-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-	
-    <target name="calculate-googledrive-condition" depends="build-googledrive-connector">
-        <available file="connectors/googledrive/dist/lib" type="dir" property="googledrive.exists"/>
-        <condition property="googledrive.include">
-            <and>
-                <isset property="googledrive.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-googledrive-doc-condition" depends="doc-googledrive-connector">
-        <available file="connectors/googledrive/dist/doc" type="dir" property="googledrive-doc.exists"/>
-        <condition property="googledrive-doc.include">
-            <and>
-                <isset property="googledrive-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-jira-condition" depends="build-jira-connector">
-        <available file="connectors/jira/dist/lib" type="dir" property="jira.exists"/>
-        <condition property="jira.include">
-            <and>
-                <isset property="jira.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-jira-doc-condition" depends="doc-jira-connector">
-        <available file="connectors/jira/dist/doc" type="dir" property="jira-doc.exists"/>
-        <condition property="jira-doc.include">
-            <and>
-                <isset property="jira-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-
-
-    <target name="calculate-cmis-doc-condition" depends="doc-cmis-connector">
-        <available file="connectors/cmis/dist/doc" type="dir" property="cmis-doc.exists"/>
-        <condition property="cmis-doc.include">
-            <and>
-                <isset property="cmis-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-cmis-connector" depends="calculate-cmis-condition" if="cmis.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="cmis"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="cmis"/>
-            <param name="connector-label" value="CMIS"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.cmis.CmisRepositoryConnector"/>
-        </antcall>
-        <antcall target="general-add-authority-connector">
-            <param name="connector-name" value="cmis"/>
-            <param name="connector-label" value="CMIS"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.cmis.CmisAuthorityConnector"/>
-        </antcall>
-    </target>
-
-    <target name="deliver-dropbox-connector" depends="calculate-dropbox-condition" if="dropbox.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="dropbox"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="dropbox"/>
-            <param name="connector-label" value="DropBox"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.dropbox.DropboxRepositoryConnector"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-dropbox-connector-doc" depends="calculate-dropbox-doc-condition" if="dropbox-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="dropbox"/>
-        </antcall>
-    </target>
-
-    <target name="deliver-generic-connector" depends="calculate-generic-condition" if="generic.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="generic"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="generic"/>
-            <param name="connector-label" value="Generic"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.generic.GenericConnector"/>
-        </antcall>
-        <antcall target="general-add-authority-connector">
-            <param name="connector-name" value="generic"/>
-            <param name="connector-label" value="Generic"/>
-            <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.generic.GenericAuthority"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-generic-connector-doc" depends="calculate-generic-doc-condition" if="generic-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="generic"/>
-        </antcall>
-    </target>
-
-    <target name="deliver-googledrive-connector" depends="calculate-googledrive-condition" if="googledrive.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="googledrive"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="googledrive"/>
-            <param name="connector-label" value="GoogleDrive"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.googledrive.GoogleDriveRepositoryConnector"/>
-        </antcall>
-    </target>
-
-    <target name="deliver-googledrive-connector-doc" depends="calculate-googledrive-doc-condition" if="googledrive-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="googledrive"/>
-        </antcall>
-    </target>
-
-    <target name="deliver-jira-connector" depends="calculate-jira-condition" if="jira.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="jira"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="jira"/>
-            <param name="connector-label" value="Jira"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.jira.JiraRepositoryConnector"/>
-        </antcall>
-        <antcall target="general-add-authority-connector">
-            <param name="connector-name" value="jira"/>
-            <param name="connector-label" value="Jira"/>
-            <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.jira.JiraAuthorityConnector"/>
-        </antcall>
-    </target>
-
-    <target name="deliver-jira-connector-doc" depends="calculate-jira-doc-condition" if="jira-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="jira"/>
-        </antcall>
-    </target>
-
-	
-    <target name="deliver-cmis-connector-doc" depends="calculate-cmis-doc-condition" if="cmis-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="cmis"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-documentum-condition" depends="build-documentum-connector">
-        <available file="connectors/documentum/dist/lib" type="dir" property="documentum.exists"/>
-        <condition property="documentum.include">
-            <and>
-                <isset property="documentum.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-documentum-doc-condition" depends="doc-documentum-connector">
-        <available file="connectors/documentum/dist/doc" type="dir" property="documentum-doc.exists"/>
-        <condition property="documentum-doc.include">
-            <and>
-                <isset property="documentum-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-documentum-connector" depends="calculate-documentum-condition" if="documentum.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="documentum"/>
-        </antcall>
-        <antcall target="general-add-authority-connector">
-            <param name="connector-name" value="documentum"/>
-            <param name="connector-label" value="Documentum"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.authorities.DCTM.AuthorityConnector"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="documentum"/>
-            <param name="connector-label" value="Documentum"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.DCTM.DCTM"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-documentum-connector-doc" depends="calculate-documentum-doc-condition" if="documentum-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="documentum"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-filenet-condition" depends="build-filenet-connector">
-        <available file="connectors/filenet/dist/lib" type="dir" property="filenet.exists"/>
-        <condition property="filenet.include">
-            <and>
-                <isset property="filenet.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-filenet-doc-condition" depends="doc-filenet-connector">
-        <available file="connectors/filenet/dist/doc" type="dir" property="filenet-doc.exists"/>
-        <condition property="filenet-doc.include">
-            <and>
-                <isset property="filenet-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-filenet-connector" depends="calculate-filenet-condition" if="filenet.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="filenet"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="filenet"/>
-            <param name="connector-label" value="FileNet"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.filenet.FilenetConnector"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-filenet-connector-doc" depends="calculate-filenet-doc-condition" if="filenet-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="filenet"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-filesystem-condition" depends="build-filesystem-connector">
-        <available file="connectors/filesystem/dist/lib" type="dir" property="filesystem.exists"/>
-        <condition property="filesystem.include">
-            <and>
-                <isset property="filesystem.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-filesystem-doc-condition" depends="doc-filesystem-connector">
-        <available file="connectors/filesystem/dist/doc" type="dir" property="filesystem-doc.exists"/>
-        <condition property="filesystem-doc.include">
-            <and>
-                <isset property="filesystem-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-filesystem-connector" depends="calculate-filesystem-condition" if="filesystem.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="filesystem"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="filesystem"/>
-            <param name="connector-label" value="File system"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector"/>
-        </antcall>
-        <antcall target="general-add-output-connector">
-            <param name="connector-name" value="filesystem"/>
-            <param name="connector-label" value="File system"/>
-            <param name="connector-class" value="org.apache.manifoldcf.agents.output.filesystem.FileOutputConnector"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-filesystem-connector-doc" depends="calculate-filesystem-doc-condition" if="filesystem-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="filesystem"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-gts-condition" depends="build-gts-connector">
-        <available file="connectors/gts/dist/lib" type="dir" property="gts.exists"/>
-        <condition property="gts.include">
-            <and>
-                <isset property="gts.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-gts-doc-condition" depends="doc-gts-connector">
-        <available file="connectors/gts/dist/doc" type="dir" property="gts-doc.exists"/>
-        <condition property="gts-doc.include">
-            <and>
-                <isset property="gts-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-gts-connector" depends="calculate-gts-condition" if="gts.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="gts"/>
-        </antcall>
-        <antcall target="general-add-output-connector">
-            <param name="connector-name" value="gts"/>
-            <param name="connector-label" value="MetaCarta GTS"/>
-            <param name="connector-class" value="org.apache.manifoldcf.agents.output.gts.GTSConnector"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-gts-connector-doc" depends="calculate-gts-doc-condition" if="gts-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="gts"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-jdbc-condition" depends="build-jdbc-connector">
-        <available file="connectors/jdbc/dist/lib" type="dir" property="jdbc.exists"/>
-        <condition property="jdbc.include">
-            <and>
-                <isset property="jdbc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-hdfs-condition" depends="build-hdfs-connector">
-        <available file="connectors/hdfs/dist/lib" type="dir" property="hdfs.exists"/>
-        <condition property="hdfs.include">
-            <and>
-                <isset property="hdfs.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-hdfs-doc-condition" depends="doc-hdfs-connector">
-        <available file="connectors/hdfs/dist/doc" type="dir" property="hdfs-doc.exists"/>
-        <condition property="hdfs-doc.include">
-            <and>
-                <isset property="hdfs-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-hdfs-connector" depends="calculate-hdfs-condition" if="hdfs.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="hdfs"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="hdfs"/>
-            <param name="connector-label" value="HDFS"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.hdfs.HDFSRepositoryConnector"/>
-        </antcall>
-        <antcall target="general-add-output-connector">
-            <param name="connector-name" value="hdfs"/>
-            <param name="connector-label" value="HDFS"/>
-            <param name="connector-class" value="org.apache.manifoldcf.agents.output.hdfs.HDFSOutputConnector"/>
-        </antcall>
-    </target>
-
-    <target name="deliver-hdfs-connector-doc" depends="calculate-hdfs-doc-condition" if="hdfs-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="hdfs"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-jdbc-doc-condition" depends="doc-jdbc-connector">
-        <available file="connectors/jdbc/dist/doc" type="dir" property="jdbc-doc.exists"/>
-        <condition property="jdbc-doc.include">
-            <and>
-                <isset property="jdbc-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-jdbc-connector" depends="calculate-jdbc-condition" if="jdbc.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="jdbc"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="jdbc"/>
-            <param name="connector-label" value="JDBC"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.jdbc.JDBCConnector"/>
-        </antcall>
-        <antcall target="general-add-authority-connector">
-            <param name="connector-name" value="jdbc"/>
-            <param name="connector-label" value="JDBC"/>
-            <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.jdbc.JDBCAuthority"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-jdbc-connector-doc" depends="calculate-jdbc-doc-condition" if="jdbc-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="jdbc"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-jcifs-condition" depends="build-jcifs-connector">
-        <available file="connectors/jcifs/dist/lib" type="dir" property="jcifs.exists"/>
-        <condition property="jcifs.include">
-            <and>
-                <isset property="jcifs.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-jcifs-doc-condition" depends="doc-jcifs-connector">
-        <available file="connectors/jcifs/dist/doc" type="dir" property="jcifs-doc.exists"/>
-        <condition property="jcifs-doc.include">
-            <and>
-                <isset property="jcifs-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-jcifs-connector" depends="calculate-jcifs-condition" if="jcifs.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="jcifs"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="jcifs"/>
-            <param name="connector-label" value="Windows shares"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.sharedrive.SharedDriveConnector"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-jcifs-connector-doc" depends="calculate-jcifs-doc-condition" if="jcifs-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="jcifs"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-livelink-condition" depends="build-livelink-connector">
-        <available file="connectors/livelink/dist/lib" type="dir" property="livelink.exists"/>
-        <condition property="livelink.include">
-            <and>
-                <isset property="livelink.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-livelink-doc-condition" depends="doc-livelink-connector">
-        <available file="connectors/livelink/dist/doc" type="dir" property="livelink-doc.exists"/>
-        <condition property="livelink-doc.include">
-            <and>
-                <isset property="livelink-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-livelink-connector" depends="calculate-livelink-condition" if="livelink.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="livelink"/>
-        </antcall>
-        <antcall target="general-add-authority-connector">
-            <param name="connector-name" value="livelink"/>
-            <param name="connector-label" value="LiveLink"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.livelink.LivelinkAuthority"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="livelink"/>
-            <param name="connector-label" value="LiveLink"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.livelink.LivelinkConnector"/>
-        </antcall>
-    </target>
-
-    <target name="deliver-livelink-connector-doc" depends="calculate-livelink-doc-condition" if="livelink-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="livelink"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-solr-condition" depends="build-solr-connector">
-        <available file="connectors/solr/dist/lib" type="dir" property="solr.exists"/>
-        <condition property="solr.include">
-            <and>
-                <isset property="solr.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-solr-doc-condition" depends="doc-solr-connector">
-        <available file="connectors/solr/dist/doc" type="dir" property="solr-doc.exists"/>
-        <condition property="solr-doc.include">
-            <and>
-                <isset property="solr-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-solr-connector" depends="calculate-solr-condition" if="solr.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="solr"/>
-        </antcall>
-        <antcall target="general-add-output-connector">
-            <param name="connector-name" value="solr"/>
-            <param name="connector-label" value="Solr"/>
-            <param name="connector-class" value="org.apache.manifoldcf.agents.output.solr.SolrConnector"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-solr-connector-doc" depends="calculate-solr-doc-condition" if="solr-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="solr"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-memex-condition" depends="build-memex-connector">
-        <available file="connectors/memex/dist/lib" type="dir" property="memex.exists"/>
-        <condition property="memex.include">
-            <and>
-                <isset property="memex.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-memex-doc-condition" depends="doc-memex-connector">
-        <available file="connectors/memex/dist/doc" type="dir" property="memex-doc.exists"/>
-        <condition property="memex-doc.include">
-            <and>
-                <isset property="memex-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-memex-connector" depends="calculate-memex-condition" if="memex.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="memex"/>
-        </antcall>
-        <antcall target="general-add-authority-connector">
-            <param name="connector-name" value="memex"/>
-            <param name="connector-label" value="Memex Patriarch"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.memex.MemexAuthority"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="memex"/>
-            <param name="connector-label" value="Memex Patriarch"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.memex.MemexConnector"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-memex-connector-doc" depends="calculate-memex-doc-condition" if="memex-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="memex"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-meridio-condition" depends="build-meridio-connector">
-        <available file="connectors/meridio/dist/lib" type="dir" property="meridio.exists"/>
-        <condition property="meridio.include">
-            <and>
-                <isset property="meridio.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-meridio-doc-condition" depends="doc-meridio-connector">
-        <available file="connectors/meridio/dist/doc" type="dir" property="meridio-doc.exists"/>
-        <condition property="meridio-doc.include">
-            <and>
-                <isset property="meridio-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-meridio-connector" depends="calculate-meridio-condition" if="meridio.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="meridio"/>
-        </antcall>
-        <antcall target="general-add-authority-connector">
-            <param name="connector-name" value="meridio"/>
-            <param name="connector-label" value="Meridio"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.meridio.MeridioAuthority"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="meridio"/>
-            <param name="connector-label" value="Meridio"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.meridio.MeridioConnector"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-meridio-connector-doc" depends="calculate-meridio-doc-condition" if="meridio-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="meridio"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-opensearchserver-condition" depends="build-opensearchserver-connector">
-        <available file="connectors/opensearchserver/dist/lib" type="dir" property="opensearchserver.exists"/>
-        <condition property="opensearchserver.include">
-            <and>
-                <isset property="opensearchserver.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-opensearchserver-doc-condition" depends="doc-opensearchserver-connector">
-        <available file="connectors/opensearchserver/dist/doc" type="dir" property="opensearchserver-doc.exists"/>
-        <condition property="opensearchserver-doc.include">
-            <isset property="opensearchserver-doc.exists"/>
-        </condition>
-    </target>
-
-   <target name="deliver-opensearchserver-connector" depends="calculate-opensearchserver-condition" if="opensearchserver.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="opensearchserver"/>
-        </antcall>
-        <antcall target="general-add-output-connector">
-            <param name="connector-name" value="opensearchserver"/>
-            <param name="connector-label" value="OpenSearchServer"/>
-            <param name="connector-class" value="org.apache.manifoldcf.agents.output.opensearchserver.OpenSearchServerConnector"/>
-        </antcall>
-    </target>
-
-    <target name="deliver-opensearchserver-connector-doc" depends="calculate-opensearchserver-doc-condition" if="opensearchserver-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="opensearchserver"/>
-        </antcall>
-    </target>
-  
-
-    <target name="calculate-elasticsearch-condition" depends="build-elasticsearch-connector">
-        <available file="connectors/elasticsearch/dist/lib" type="dir" property="elasticsearch.exists"/>
-        <condition property="elasticsearch.include">
-            <and>
-                <isset property="elasticsearch.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-elasticsearch-testmaterials-condition" depends="calculate-elasticsearch-condition">
-        <available file="connectors/elasticsearch/test-materials-proprietary/elasticsearch-1.0.1" type="dir" property="elasticsearch-testmaterials.exists"/>
-        <condition property="elasticsearch-testmaterials.include">
-          <and>
-              <isset property="elasticsearch-testmaterials.exists"/>
-              <isset property="elasticsearch.include"/>
-          </and>
-        </condition>
-    </target>
-
-    <target name="calculate-elasticsearch-tests-condition" depends="calculate-elasticsearch-testmaterials-condition,calculate-elasticsearch-condition,calculate-cmis-condition">
-      <condition property="elasticsearch-tests.include">
-        <and>
-            <isset property="elasticsearch.include"/>
-            <isset property="elasticsearch-testmaterials.include"/>
-            <isset property="cmis.include"/>
-        </and>
-      </condition>
-    </target>
-
-    <target name="calculate-elasticsearch-doc-condition" depends="doc-elasticsearch-connector">
-        <available file="connectors/elasticsearch/dist/doc" type="dir" property="elasticsearch-doc.exists"/>
-        <condition property="elasticsearch-doc.include">
-            <and>
-                <isset property="elasticsearch-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-   <target name="deliver-elasticsearch-connector" depends="calculate-elasticsearch-condition" if="elasticsearch.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="elasticsearch"/>
-        </antcall>
-        <antcall target="general-add-output-connector">
-            <param name="connector-name" value="elasticsearch"/>
-            <param name="connector-label" value="ElasticSearch"/>
-            <param name="connector-class" value="org.apache.manifoldcf.agents.output.elasticsearch.ElasticSearchConnector"/>
-        </antcall>
-    </target>
-
-    <target name="deliver-elasticsearch-connector-doc" depends="calculate-elasticsearch-doc-condition" if="elasticsearch-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="elasticsearch"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-nullauthority-condition" depends="build-nullauthority-connector">
-        <available file="connectors/nullauthority/dist/lib" type="dir" property="nullauthority.exists"/>
-        <condition property="nullauthority.include">
-            <and>
-                <isset property="nullauthority.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-nullauthority-doc-condition" depends="doc-nullauthority-connector">
-        <available file="connectors/nullauthority/dist/doc" type="dir" property="nullauthority-doc.exists"/>
-        <condition property="nullauthority-doc.include">
-            <and>
-                <isset property="nullauthority-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-nullauthority-connector" depends="calculate-nullauthority-condition" if="nullauthority.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="nullauthority"/>
-        </antcall>
-        <antcall target="general-add-authority-connector">
-            <param name="connector-name" value="nullauthority"/>
-            <param name="connector-label" value="Null"/>
-            <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.nullauthority.NullAuthority"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-nullauthority-connector-doc" depends="calculate-nullauthority-doc-condition" if="nullauthority-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="nullauthority"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-nulloutput-condition" depends="build-nulloutput-connector">
-        <available file="connectors/nulloutput/dist/lib" type="dir" property="nulloutput.exists"/>
-        <condition property="nulloutput.include">
-            <and>
-                <isset property="nulloutput.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-nulloutput-doc-condition" depends="doc-nulloutput-connector">
-        <available file="connectors/nulloutput/dist/doc" type="dir" property="nulloutput-doc.exists"/>
-        <condition property="nulloutput-doc.include">
-            <and>
-                <isset property="nulloutput-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-nulloutput-connector" depends="calculate-nulloutput-condition" if="nulloutput.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="nulloutput"/>
-        </antcall>
-        <antcall target="general-add-output-connector">
-            <param name="connector-name" value="nulloutput"/>
-            <param name="connector-label" value="Null"/>
-            <param name="connector-class" value="org.apache.manifoldcf.agents.output.nullconnector.NullConnector"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-nulloutput-connector-doc" depends="calculate-nulloutput-doc-condition" if="nulloutput-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="nulloutput"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-rss-condition" depends="build-rss-connector">
-        <available file="connectors/rss/dist/lib" type="dir" property="rss.exists"/>
-        <condition property="rss.include">
-            <and>
-                <isset property="rss.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-rss-doc-condition" depends="doc-rss-connector">
-        <available file="connectors/rss/dist/doc" type="dir" property="rss-doc.exists"/>
-        <condition property="rss-doc.include">
-            <and>
-                <isset property="rss-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-rss-connector" depends="calculate-rss-condition" if="rss.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="rss"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="rss"/>
-            <param name="connector-label" value="RSS"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.rss.RSSConnector"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-rss-connector-doc" depends="calculate-rss-doc-condition" if="rss-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="rss"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-regexpmapper-condition" depends="build-regexp-mapper">
-        <available file="connectors/regexpmapper/dist/lib" type="dir" property="regexpmapper.exists"/>
-        <condition property="regexpmapper.include">
-            <and>
-                <isset property="regexpmapper.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-regexpmapper-doc-condition" depends="doc-regexp-mapper">
-        <available file="connectors/regexpmapper/dist/doc" type="dir" property="regexpmapper-doc.exists"/>
-        <condition property="regexpmapper-doc.include">
-            <and>
-                <isset property="regexpmapper-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-regexp-mapper" depends="calculate-regexpmapper-condition" if="regexpmapper.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="regexpmapper"/>
-        </antcall>
-        <antcall target="general-add-mapping-connector">
-            <param name="connector-name" value="regexpmapper"/>
-            <param name="connector-label" value="Regular expression mapper"/>
-            <param name="connector-class" value="org.apache.manifoldcf.authorities.mappers.regexp.RegexpMapper"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-regexp-mapper-doc" depends="calculate-regexpmapper-doc-condition" if="regexpmapper-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="regexpmapper"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-sharepoint-condition" depends="build-sharepoint-connector">
-        <available file="connectors/sharepoint/dist/lib" type="dir" property="sharepoint.exists"/>
-        <condition property="sharepoint.include">
-            <and>
-                <isset property="sharepoint.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-sharepoint-doc-condition" depends="doc-sharepoint-connector">
-        <available file="connectors/sharepoint/dist/doc" type="dir" property="sharepoint-doc.exists"/>
-        <condition property="sharepoint-doc.include">
-            <and>
-                <isset property="sharepoint-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-sharepoint-connector" depends="calculate-sharepoint-condition" if="sharepoint.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="sharepoint"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="sharepoint"/>
-            <param name="connector-label" value="SharePoint"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.sharepoint.SharePointRepository"/>
-        </antcall>
-        <antcall target="general-add-authority-connector">
-            <param name="connector-name" value="sharepoint"/>
-            <param name="connector-label" value="SharePoint/ActiveDirectory"/>
-            <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.sharepoint.SharePointADAuthority"/>
-        </antcall>
-        <antcall target="general-add-authority-connector">
-            <param name="connector-name" value="sharepoint"/>
-            <param name="connector-label" value="SharePoint/Native"/>
-            <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.sharepoint.SharePointAuthority"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-sharepoint-connector-doc" depends="calculate-sharepoint-doc-condition" if="sharepoint-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="sharepoint"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-webcrawler-condition" depends="build-webcrawler-connector">
-        <available file="connectors/webcrawler/dist/lib" type="dir" property="webcrawler.exists"/>
-        <condition property="webcrawler.include">
-            <and>
-                <isset property="webcrawler.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-webcrawler-doc-condition" depends="doc-webcrawler-connector">
-        <available file="connectors/webcrawler/dist/doc" type="dir" property="webcrawler-doc.exists"/>
-        <condition property="webcrawler-doc.include">
-            <and>
-                <isset property="webcrawler-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-webcrawler-connector" depends="calculate-webcrawler-condition" if="webcrawler.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="webcrawler"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="webcrawler"/>
-            <param name="connector-label" value="Web"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.webcrawler.WebcrawlerConnector"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-webcrawler-connector-doc" depends="calculate-webcrawler-doc-condition" if="webcrawler-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="webcrawler"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-wiki-condition" depends="build-wiki-connector">
-        <available file="connectors/wiki/dist/lib" type="dir" property="wiki.exists"/>
-        <condition property="wiki.include">
-            <and>
-                <isset property="wiki.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-wiki-doc-condition" depends="doc-wiki-connector">
-        <available file="connectors/wiki/dist/doc" type="dir" property="wiki-doc.exists"/>
-        <condition property="wiki-doc.include">
-            <and>
-                <isset property="wiki-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-wiki-connector" depends="calculate-wiki-condition" if="wiki.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="wiki"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="wiki"/>
-            <param name="connector-label" value="Wiki"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.wiki.WikiConnector"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-wiki-connector-doc" depends="calculate-wiki-doc-condition" if="wiki-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="wiki"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-email-condition" depends="build-email-connector">
-        <available file="connectors/email/dist/lib" type="dir" property="email.exists"/>
-        <condition property="email.include">
-            <and>
-                <isset property="email.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="calculate-email-doc-condition" depends="doc-email-connector">
-        <available file="connectors/email/dist/doc" type="dir" property="email-doc.exists"/>
-        <condition property="email-doc.include">
-            <and>
-                <isset property="email-doc.exists"/>
-                <isset property="downloaded"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="deliver-email-connector" depends="calculate-email-condition" if="email.include">
-        <antcall target="general-connector-delivery">
-            <param name="connector-name" value="email"/>
-        </antcall>
-        <antcall target="general-add-repository-connector">
-            <param name="connector-name" value="email"/>
-            <param name="connector-label" value="EMail"/>
-            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.email.EmailConnector"/>
-        </antcall>
-    </target>
-    
-    <target name="deliver-email-connector-doc" depends="calculate-email-doc-condition" if="email-doc.include">
-        <antcall target="general-connector-doc-delivery">
-            <param name="connector-name" value="email"/>
-        </antcall>
-    </target>
-
-    <target name="calculate-filesystem-tests-condition" depends="calculate-filesystem-condition,calculate-nulloutput-condition">
-      <condition property="filesystem-tests.include">
-        <and>
-            <isset property="filesystem.include"/>
-            <isset property="nulloutput.include"/>
-        </and>
-      </condition>
-    </target>
-
-    <target name="calculate-hdfs-tests-condition" depends="calculate-hdfs-condition,calculate-nulloutput-condition">
-      <condition property="hdfs-tests.include">
-        <and>
-            <isset property="hdfs.include"/>
-            <isset property="nulloutput.include"/>
-        </and>
-      </condition>
-    </target>
-
-	<target name="calculate-jcifs-tests-condition" depends="calculate-jcifs-condition,calculate-nulloutput-condition">
-      <condition property="jcifs-tests.include">
-        <and>
-            <isset property="jcifs.include"/>
-            <isset property="nulloutput.include"/>
-        </and>
-      </condition>
-    </target>
-
-    <target name="calculate-jdbc-tests-condition" depends="calculate-jdbc-condition,calculate-nulloutput-condition">
-      <condition property="jdbc-tests.include">
-        <and>
-            <isset property="jdbc.include"/>
-            <isset property="nulloutput.include"/>
-        </and>
-      </condition>
-    </target>
-
-    <target name="calculate-activedirectory-tests-condition" depends="calculate-activedirectory-condition">
-      <condition property="activedirectory-tests.include">
-        <and>
-            <isset property="activedirectory.include"/>
-        </and>
-      </condition>
-    </target>
-
-    <target name="calculate-ldap-tests-condition" depends="calculate-ldap-condition">
-      <condition property="ldap-tests.include">
-        <and>
-            <isset property="ldap.include"/>
-        </and>
-      </condition>
-    </target>
-
-    <target name="calculate-solr-tests-condition" depends="calculate-filesystem-condition,calculate-solr-condition">
-      <condition property="solr-tests.include">
-        <and>
-            <isset property="filesystem.include"/>
-            <isset property="solr.include"/>
-        </and>
-      </condition>
-    </target>
-
-    <target name="calculate-gts-tests-condition" depends="calculate-filesystem-condition,calculate-gts-condition">
-      <condition property="gts-tests.include">
-        <and>
-            <isset property="filesystem.include"/>
-            <isset property="gts.include"/>
-        </and>
-      </condition>
-    </target>
-
-    <target name="calculate-opensearchserver-tests-condition" depends="calculate-filesystem-condition,calculate-opensearchserver-condition">
-      <condition property="opensearchserver-tests.include">
-        <and>
-            <isset property="filesystem.include"/>
-            <isset property="opensearchserver.include"/>
-        </and>
-      </condition>
-    </target>
-
-    <target name="calculate-rss-tests-condition" depends="calculate-rss-condition,calculate-nulloutput-condition">
-      <condition property="rss-tests.include">
-        <and>
-            <isset property="rss.include"/>
-            <isset property="nulloutput.include"/>
-        </and>
-      </condition>
-    </target>
-
-    <target name="calculate-sharepoint-tests-condition" depends="calculate-sharepoint-condition,calculate-nulloutput-condition">
-      <condition property="sharepoint-tests.include">
-        <and>
-            <isset property="sharepoint.include"/>
-            <isset property="nulloutput.include"/>
-        </and>
-      </condition>
-    </target>
-    
-    <target name="calculate-alfresco-tests-condition" depends="calculate-alfresco-testmaterials-condition,calculate-nulloutput-condition">
-      <condition property="alfresco-tests.include">
-        <and>
-            <isset property="alfresco-testmaterials.include"/>
-            <isset property="nulloutput.include"/>
-        </and>
-      </condition>
-    </target>
-
-    <target name="calculate-cmis-tests-condition" depends="calculate-cmis-condition,calculate-nulloutput-condition">
-      <condition property="cmis-tests.include">
-        <and>
-            <isset property="cmis.include"/>
-            <isset property="nulloutput.include"/>
-        </and>
-      </condition>
-    </target>
-
-    <target name="calculate-webcrawler-tests-condition" depends="calculate-webcrawler-condition,calculate-nulloutput-condition">
-      <condition property="webcrawler-tests.include">
-        <and>
-            <isset property="webcrawler.include"/>
-            <isset property="nulloutput.include"/>
-        </and>
-      </condition>
-    </target>
-
-    <target name="calculate-wiki-tests-condition" depends="calculate-wiki-condition,calculate-nulloutput-condition">
-      <condition property="wiki-tests.include">
-        <and>
-            <isset property="wiki.include"/>
-            <isset property="nulloutput.include"/>
-        </and>
-      </condition>
-    </target>
-
-    <target name="run-activedirectory-UI-tests-derby" depends="build-tests-framework,build-tests-activedirectory-connector,calculate-activedirectory-tests-condition" if="activedirectory-tests.include">
-        <ant dir="tests/activedirectory" target="run-UI-derby"/>
-    </target>
-
-    <target name="run-ldap-UI-tests-derby" depends="build-tests-framework,build-tests-ldap-connector,calculate-ldap-tests-condition" if="ldap-tests.include">
-        <ant dir="tests/ldap" target="run-UI-derby"/>
-    </target>
-
-    <target name="run-filesystem-tests-derby" depends="build-tests-framework,build-tests-filesystem-connector,build-tests-nulloutput-connector,calculate-filesystem-tests-condition" if="filesystem-tests.include">
-        <ant dir="tests/filesystem" target="run-derby"/>
-    </target>
-
-    <target name="run-filesystem-UI-tests-derby" depends="build-tests-framework,build-tests-filesystem-connector,build-tests-nulloutput-connector,calculate-filesystem-tests-condition" if="filesystem-tests.include">
-        <ant dir="tests/filesystem" target="run-UI-derby"/>
-    </target>
-
-    <target name="run-filesystem-loadtests-derby" depends="build-tests-framework,build-tests-filesystem-connector,build-tests-nulloutput-connector,calculate-filesystem-tests-condition" if="filesystem-tests.include">
-        <ant dir="tests/filesystem" target="run-load-derby"/>
-    </target>
-
-    <target name="run-hdfs-UI-tests-derby" depends="build-tests-framework,build-tests-hdfs-connector,build-tests-nulloutput-connector,calculate-hdfs-tests-condition" if="hdfs-tests.include">
-        <ant dir="tests/hdfs" target="run-UI-derby"/>
-    </target>
-
-    <target name="run-jcifs-UI-tests-derby" depends="build-tests-framework,build-tests-jcifs-connector,build-tests-nulloutput-connector,calculate-jcifs-tests-condition" if="jcifs-tests.include">
-        <ant dir="tests/jcifs" target="run-UI-derby"/>
-    </target>
-
-    <target name="run-jdbc-UI-tests-derby" depends="build-tests-framework,build-tests-jdbc-connector,build-tests-nulloutput-connector,calculate-jdbc-tests-condition" if="jdbc-tests.include">
-        <ant dir="tests/jdbc" target="run-UI-derby"/>
-    </target>
-
-    <target name="run-solr-tests-derby" depends="build-tests-framework,build-tests-filesystem-connector,build-tests-solr-connector,calculate-solr-tests-condition" if="solr-tests.include">
-        <ant dir="tests/solr" target="run-derby"/>
-    </target>
-
-    <target name="run-solr-UI-tests-derby" depends="build-tests-framework,build-tests-solr-connector,build-tests-filesystem-connector,calculate-solr-tests-condition" if="solr-tests.include">
-        <ant dir="tests/solr" target="run-UI-derby"/>
-    </target>
-
-    <target name="run-gts-UI-tests-derby" depends="build-tests-framework,build-tests-filesystem-connector,build-tests-gts-connector,calculate-gts-tests-condition" if="gts-tests.include">
-        <ant dir="tests/gts" target="run-UI-derby"/>
-    </target>
-
-    <target name="run-opensearchserver-UI-tests-derby" depends="build-tests-framework,build-tests-filesystem-connector,build-tests-opensearchserver-connector,calculate-opensearchserver-tests-condition" if="opensearchserver-tests.include">
-        <ant dir="tests/opensearchserver" target="run-UI-derby"/>
-    </target>
-
-    <target name="run-rss-UI-tests-derby" depends="build-tests-framework,build-tests-rss-connector,build-tests-nulloutput-connector,calculate-rss-tests-condition" if="rss-tests.include">
-        <ant dir="tests/rss" target="run-UI-derby"/>
-    </target>
-
-    <target name="run-rss-loadtests-derby" depends="build-tests-framework,build-tests-rss-connector,build-tests-nulloutput-connector,calculate-rss-tests-condition" if="rss-tests.include">
-        <ant dir="tests/rss" target="run-load-derby"/>
-    </target>
-
-    <target name="run-rss-loadtests-postgresql" depends="build-tests-framework,build-tests-rss-connector,build-tests-nulloutput-connector,calculate-rss-tests-condition" if="rss-tests.include">
-        <ant dir="tests/rss" target="run-load-postgresql"/>
-    </target>
-
-    <target name="run-rss-loadtests-mysql" depends="build-tests-framework,build-tests-rss-connector,build-tests-nulloutput-connector,calculate-rss-tests-condition" if="rss-tests.include">
-        <ant dir="tests/rss" target="run-load-mysql"/>
-    </target>
-
-    <target name="run-rss-loadtests-HSQLDB" depends="build-tests-framework,build-tests-rss-connector,build-tests-nulloutput-connector,calculate-rss-tests-condition" if="rss-tests.include">
-        <ant dir="tests/rss" target="run-load-HSQLDB"/>
-    </target>
-
-    <target name="run-rss-tests-derby" depends="build-tests-framework,build-tests-rss-connector,build-tests-nulloutput-connector,calculate-rss-tests-condition" if="rss-tests.include">
-        <ant dir="tests/rss" target="run-derby"/>
-    </target>
-
-    <target name="run-rss-tests-HSQLDB" depends="build-tests-framework,build-tests-rss-connector,build-tests-nulloutput-connector,calculate-rss-tests-condition" if="rss-tests.include">
-        <ant dir="tests/rss" target="run-HSQLDB"/>
-    </target>
-
-    <target name="run-rss-tests-mysql" depends="build-tests-framework,build-tests-rss-connector,build-tests-nulloutput-connector,calculate-rss-tests-condition" if="rss-tests.include">
-        <ant dir="tests/rss" target="run-mysql"/>
-    </target>
-
-    <target name="run-rss-tests-postgresql" depends="build-tests-framework,build-tests-rss-connector,build-tests-nulloutput-connector,calculate-rss-tests-condition" if="rss-tests.include">
-        <ant dir="tests/rss" target="run-postgresql"/>
-    </target>
-
-    <target name="run-webcrawler-tests-derby" depends="build-tests-framework,build-tests-webcrawler-connector,build-tests-nulloutput-connector,calculate-webcrawler-tests-condition" if="webcrawler-tests.include">
-        <ant dir="tests/webcrawler" target="run-derby"/>
-    </target>
-
-    <target name="run-webcrawler-tests-postgresql" depends="build-tests-framework,build-tests-webcrawler-connector,build-tests-nulloutput-connector,calculate-webcrawler-tests-condition" if="webcrawler-tests.include">
-        <ant dir="tests/webcrawler" target="run-postgresql"/>
-    </target>
-
-    <target name="run-webcrawler-loadtests-derby" depends="build-tests-framework,build-tests-webcrawler-connector,build-tests-nulloutput-connector,calculate-webcrawler-tests-condition" if="webcrawler-tests.include">
-        <ant dir="tests/webcrawler" target="run-load-derby"/>
-    </target>
-
-    <target name="run-webcrawler-loadtests-postgresql" depends="build-tests-framework,build-tests-webcrawler-connector,build-tests-nulloutput-connector,calculate-webcrawler-tests-condition" if="webcrawler-tests.include">
-        <ant dir="tests/webcrawler" target="run-load-postgresql"/>
-    </target>
-
-    <target name="run-webcrawler-tests-mysql" depends="build-tests-framework,build-tests-webcrawler-connector,build-tests-nulloutput-connector,calculate-webcrawler-tests-condition" if="webcrawler-tests.include">
-        <ant dir="tests/webcrawler" target="run-mysql"/>
-    </target>
-
-    <target name="run-webcrawler-loadtests-mysql" depends="build-tests-framework,build-tests-webcrawler-connector,build-tests-nulloutput-connector,calculate-webcrawler-tests-condition" if="webcrawler-tests.include">
-        <ant dir="tests/webcrawler" target="run-load-mysql"/>
-    </target>
-
-    <target name="run-webcrawler-UI-tests-derby" depends="build-tests-framework,build-tests-webcrawler-connector,build-tests-nulloutput-connector,calculate-webcrawler-tests-condition" if="webcrawler-tests.include">
-        <ant dir="tests/webcrawler" target="run-UI-derby"/>
-    </target>
-
-    <target name="run-wiki-tests-derby" depends="build-tests-framework,build-tests-wiki-connector,build-tests-nulloutput-connector,calculate-wiki-tests-condition" if="wiki-tests.include">
-        <ant dir="tests/wiki" target="run-derby"/>
-    </target>
-
-    <target name="run-wiki-UI-tests-derby" depends="build-tests-framework,build-tests-wiki-connector,build-tests-nulloutput-connector,calculate-wiki-tests-condition" if="wiki-tests.include">
-        <ant dir="tests/wiki" target="run-UI-derby"/>
-    </target>
-
-    <target name="run-wiki-loadtests-derby" depends="build-tests-framework,build-tests-wiki-connector,build-tests-nulloutput-connector,calculate-wiki-tests-condition" if="wiki-tests.include">
-        <ant dir="tests/wiki" target="run-load-derby"/>
-    </target>
-    
-    <target name="run-alfresco-tests-derby" depends="build-tests-framework,build-tests-alfresco-connector,build-tests-nulloutput-connector,calculate-alfresco-tests-condition" if="alfresco-tests.include">
-        <ant dir="tests/alfresco" target="run-derby"/>
-    </target>
-
-    <target name="run-cmis-tests-derby" depends="build-tests-framework,build-tests-cmis-connector,build-tests-nulloutput-connector,calculate-cmis-tests-condition" if="cmis-tests.include">
-        <ant dir="tests/cmis" target="run-derby"/>
-    </target>
-
-    <target name="run-cmis-UI-tests-derby" depends="build-tests-framework,build-tests-cmis-connector,build-tests-nulloutput-connector,calculate-cmis-tests-condition" if="cmis-tests.include">
-        <ant dir="tests/cmis" target="run-UI-derby"/>
-    </target>
-
-    <target name="run-cmis-loadtests-derby" depends="build-tests-framework,build-tests-cmis-connector,build-tests-nulloutput-connector,calculate-cmis-tests-condition" if="cmis-tests.include">
-        <ant dir="tests/cmis" target="run-load-derby"/>
-    </target>
-	
-    <target name="run-elasticsearch-tests-derby" depends="build-tests-framework,build-tests-cmis-connector,build-tests-elasticsearch-connector,calculate-cmis-tests-condition,calculate-elasticsearch-tests-condition" if="elasticsearch-tests.include">
-        <ant dir="tests/elasticsearch" target="run-derby"/>
-    </target>
-
-    <target name="run-elasticsearch-UI-tests-derby" depends="build-tests-framework,build-tests-cmis-connector,build-tests-elasticsearch-connector,calculate-cmis-tests-condition,calculate-elasticsearch-tests-condition" if="elasticsearch-tests.include">
-        <ant dir="tests/elasticsearch" target="run-UI-derby"/>
-    </target>
-    	
-    <target name="run-alfresco-loadtests-derby" depends="build-tests-framework,build-tests-alfresco-connector,build-tests-nulloutput-connector,calculate-alfresco-tests-condition" if="alfresco-tests.include">
-        <ant dir="tests/alfresco" target="run-load-derby"/>
-    </target>
-
-    <target name="run-sharepoint-tests-derby" depends="build-tests-framework,build-tests-sharepoint-connector,build-tests-nulloutput-connector,calculate-sharepoint-tests-condition" if="sharepoint-tests.include">
-        <ant dir="tests/sharepoint" target="run-derby"/>
-    </target>
-
-    <target name="run-sharepoint-loadtests-derby" depends="build-tests-framework,build-tests-sharepoint-connector,build-tests-nulloutput-connector,calculate-sharepoint-tests-condition" if="sharepoint-tests.include">
-        <ant dir="tests/sharepoint" target="run-load-derby"/>
-    </target>
-
-    <target name="run-filesystem-tests-postgresql" depends="build-tests-framework,build-tests-filesystem-connector,build-tests-nulloutput-connector,calculate-filesystem-tests-condition" if="filesystem-tests.include">
-        <ant dir="tests/filesystem" target="run-postgresql"/>
-    </target>
-
-    <target name="run-filesystem-tests-mysql" depends="build-tests-framework,build-tests-filesystem-connector,build-tests-nulloutput-connector,calculate-filesystem-tests-condition" if="filesystem-tests.include">
-        <ant dir="tests/filesystem" target="run-mysql"/>
-    </target>
-
-    <target name="run-filesystem-loadtests-postgresql" depends="build-tests-framework,build-tests-filesystem-connector,build-tests-nulloutput-connector,calculate-filesystem-tests-condition" if="filesystem-tests.include">
-        <ant dir="tests/filesystem" target="run-load-postgresql"/>
-    </target>
-
-    <target name="run-filesystem-loadtests-mysql" depends="build-tests-framework,build-tests-filesystem-connector,build-tests-nulloutput-connector,calculate-filesystem-tests-condition" if="filesystem-tests.include">
-        <ant dir="tests/filesystem" target="run-load-mysql"/>
-    </target>
-
-    <target name="run-hdfs-tests-postgresql" depends="build-tests-framework,build-tests-hdfs-connector,build-tests-nulloutput-connector,calculate-hdfs-tests-condition" if="hdfs-tests.include">
-        <ant dir="tests/hdfs" target="run-postgresql"/>
-    </target>
-
-    <target name="run-hdfs-tests-mysql" depends="build-tests-framework,build-tests-hdfs-connector,build-tests-nulloutput-connector,calculate-hdfs-tests-condition" if="hdfs-tests.include">
-        <ant dir="tests/hdfs" target="run-mysql"/>
-    </target>
-
-    <target name="run-hdfs-loadtests-postgresql" depends="build-tests-framework,build-tests-hdfs-connector,build-tests-nulloutput-connector,calculate-hdfs-tests-condition" if="hdfs-tests.include">
-        <ant dir="tests/hdfs" target="run-load-postgresql"/>
-    </target>
-
-    <target name="run-hdfs-loadtests-mysql" depends="build-tests-framework,build-tests-hdfs-connector,build-tests-nulloutput-connector,calculate-hdfs-tests-condition" if="hdfs-tests.include">
-        <ant dir="tests/hdfs" target="run-load-mysql"/>
-    </target>
-
-    <target name="run-wiki-tests-postgresql" depends="build-tests-framework,build-tests-wiki-connector,build-tests-nulloutput-connector,calculate-wiki-tests-condition" if="wiki-tests.include">
-        <ant dir="tests/wiki" target="run-postgresql"/>
-    </target>
-
-    <target name="run-wiki-tests-mysql" depends="build-tests-framework,build-tests-wiki-connector,build-tests-nulloutput-connector,calculate-wiki-tests-condition" if="wiki-tests.include">
-        <ant dir="tests/wiki" target="run-mysql"/>
-    </target>
-
-    <target name="run-wiki-loadtests-postgresql" depends="build-tests-framework,build-tests-wiki-connector,build-tests-nulloutput-connector,calculate-wiki-tests-condition" if="wiki-tests.include">
-        <ant dir="tests/wiki" target="run-load-postgresql"/>
-    </target>
-
-    <target name="run-wiki-loadtests-mysql" depends="build-tests-framework,build-tests-wiki-connector,build-tests-nulloutput-connector,calculate-wiki-tests-condition" if="wiki-tests.include">
-        <ant dir="tests/wiki" target="run-load-mysql"/>
-    </target>
-
-    <target name="run-alfresco-tests-postgresql" depends="build-tests-framework,build-tests-alfresco-connector,build-tests-nulloutput-connector,calculate-alfresco-tests-condition" if="alfresco-tests.include">
-        <ant dir="tests/alfresco" target="run-postgresql"/>
-    </target>
-
-    <target name="run-alfresco-tests-mysql" depends="build-tests-framework,build-tests-alfresco-connector,build-tests-nulloutput-connector,calculate-alfresco-tests-condition" if="alfresco-tests.include">
-        <ant dir="tests/alfresco" target="run-mysql"/>
-    </target>
-  
-    <target name="run-alfresco-UI-tests-derby" depends="build-tests-framework,build-tests-alfresco-connector,build-tests-nulloutput-connector,calculate-alfresco-tests-condition" if="alfresco-tests.include">
-        <ant dir="tests/alfresco" target="run-UI-derby"/>
-    </target>
-
-    <target name="run-cmis-tests-postgresql" depends="build-tests-framework,build-tests-cmis-connector,build-tests-nulloutput-connector,calculate-cmis-tests-condition" if="cmis-tests.include">
-        <ant dir="tests/cmis" target="run-postgresql"/>
-    </target>
-
-    <target name="run-cmis-tests-mysql" depends="build-tests-framework,build-tests-cmis-connector,build-tests-nulloutput-connector,calculate-cmis-tests-condition" if="cmis-tests.include">
-        <ant dir="tests/cmis" target="run-mysql"/>
-    </target>
-
-    <target name="run-alfresco-loadtests-postgresql" depends="build-tests-framework,build-tests-alfresco-connector,build-tests-nulloutput-connector,calculate-alfresco-tests-condition" if="alfresco-tests.include">
-        <ant dir="tests/alfresco" target="run-load-postgresql"/>
-    </target>
-
-    <target name="run-alfresco-loadtests-mysql" depends="build-tests-framework,build-tests-alfresco-connector,build-tests-nulloutput-connector,calculate-alfresco-tests-condition" if="alfresco-tests.include">
-        <ant dir="tests/alfresco" target="run-load-mysql"/>
-    </target>
-
-    <target name="run-cmis-loadtests-postgresql" depends="build-tests-framework,build-tests-cmis-connector,build-tests-nulloutput-connector,calculate-cmis-tests-condition" if="cmis-tests.include">
-        <ant dir="tests/cmis" target="run-load-postgresql"/>
-    </target>
-
-    <target name="run-cmis-loadtests-mysql" depends="build-tests-framework,build-tests-cmis-connector,build-tests-nulloutput-connector,calculate-cmis-tests-condition" if="cmis-tests.include">
-        <ant dir="tests/cmis" target="run-load-mysql"/>
-    </target>
-
-    <target name="run-filesystem-tests-HSQLDB" depends="build-tests-framework,build-tests-filesystem-connector,build-tests-nulloutput-connector,calculate-filesystem-tests-condition" if="filesystem-tests.include">
-        <ant dir="tests/filesystem" target="run-HSQLDB"/>
-    </target>
-
-    <target name="run-filesystem-UI-tests-HSQLDB" depends="build-tests-framework,build-tests-filesystem-connector,build-tests-nulloutput-connector,calculate-filesystem-tests-condition" if="filesystem-tests.include">
-        <ant dir="tests/filesystem" target="run-UI-HSQLDB"/>
-    </target>
-
-    <target name="run-filesystem-loadtests-HSQLDB" depends="build-tests-framework,build-tests-filesystem-connector,build-tests-nulloutput-connector,calculate-filesystem-tests-condition" if="filesystem-tests.include">
-        <ant dir="tests/filesystem" target="run-load-HSQLDB"/>
-    </target>
-
-    <target name="run-hdfs-tests-HSQLDB" depends="build-tests-framework,build-tests-hdfs-connector,build-tests-nulloutput-connector,calculate-hdfs-tests-condition" if="hdfs-tests.include">
-        <ant dir="tests/hdfs" target="run-HSQLDB"/>
-    </target>
-
-    <target name="run-hdfs-UI-tests-HSQLDB" depends="build-tests-framework,build-tests-hdfs-connector,build-tests-nulloutput-connector,calculate-hdfs-tests-condition" if="hdfs-tests.include">
-        <ant dir="tests/hdfs" target="run-UI-HSQLDB"/>
-    </target>
-
-    <target name="run-hdfs-loadtests-HSQLDB" depends="build-tests-framework,build-tests-hdfs-connector,build-tests-nulloutput-connector,calculate-hdfs-tests-condition" if="hdfs-tests.include">
-        <ant dir="tests/hdfs" target="run-load-HSQLDB"/>
-    </target>
-
-    <target name="run-wiki-tests-HSQLDB" depends="build-tests-framework,build-tests-wiki-connector,build-tests-nulloutput-connector,calculate-wiki-tests-condition" if="wiki-tests.include">
-        <ant dir="tests/wiki" target="run-HSQLDB"/>
-    </target>
-
-    <target name="run-wiki-loadtests-HSQLDB" depends="build-tests-framework,build-tests-wiki-connector,build-tests-nulloutput-connector,calculate-wiki-tests-condition" if="wiki-tests.include">
-        <ant dir="tests/wiki" target="run-load-HSQLDB"/>
-    </target>
-
-    <target name="run-sharepoint-tests-postgresql" depends="build-tests-framework,build-tests-sharepoint-connector,build-tests-nulloutput-connector,calculate-sharepoint-tests-condition" if="sharepoint-tests.include">
-        <ant dir="tests/sharepoint" target="run-postgresql"/>
-    </target>
-
-    <target name="run-sharepoint-tests-mysql" depends="build-tests-framework,build-tests-sharepoint-connector,build-tests-nulloutput-connector,calculate-sharepoint-tests-condition" if="sharepoint-tests.include">
-        <ant dir="tests/sharepoint" target="run-mysql"/>
-    </target>
-
-    <target name="run-sharepoint-loadtests-postgresql" depends="build-tests-framework,build-tests-sharepoint-connector,build-tests-nulloutput-connector,calculate-sharepoint-tests-condition" if="sharepoint-tests.include">
-        <ant dir="tests/sharepoint" target="run-load-postgreql"/>
-    </target>
-
-    <target name="run-sharepoint-loadtests-mysql" depends="build-tests-framework,build-tests-sharepoint-connector,build-tests-nulloutput-connector,calculate-sharepoint-tests-condition" if="sharepoint-tests.include">
-        <ant dir="tests/sharepoint" target="run-load-mysql"/>
-    </target>
-
-    <target name="run-alfresco-tests-HSQLDB" depends="build-tests-framework,build-tests-alfresco-connector,build-tests-nulloutput-connector,calculate-alfresco-tests-condition" if="alfresco-tests.include">
-        <ant dir="tests/alfresco" target="run-HSQLDB"/>
-    </target>
-
-    <target name="run-cmis-tests-HSQLDB" depends="build-tests-framework,build-tests-cmis-connector,build-tests-nulloutput-connector,calculate-cmis-tests-condition" if="cmis-tests.include">
-        <ant dir="tests/cmis" target="run-HSQLDB"/>
-    </target>
-    
-    <target name="run-alfresco-loadtests-HSQLDB" depends="build-tests-framework,build-tests-alfresco-connector,build-tests-nulloutput-connector,calculate-alfresco-tests-condition" if="alfresco-tests.include">
-        <ant dir="tests/alfresco" target="run-load-HSQLDB"/>
-    </target>
-
-    <target name="run-cmis-loadtests-HSQLDB" depends="build-tests-framework,build-tests-cmis-connector,build-tests-nulloutput-connector,calculate-cmis-tests-condition" if="cmis-tests.include">
-        <ant dir="tests/cmis" target="run-load-HSQLDB"/>
-    </target>
-
-    <target name="run-sharepoint-tests-HSQLDB" depends="build-tests-framework,build-tests-sharepoint-connector,build-tests-nulloutput-connector,calculate-sharepoint-tests-condition" if="sharepoint-tests.include">
-        <ant dir="tests/sharepoint" target="run-HSQLDB"/>
-    </target>
-
-    <target name="run-sharepoint-loadtests-HSQLDB" depends="build-tests-framework,build-tests-sharepoint-connector,build-tests-nulloutput-connector,calculate-sharepoint-tests-condition" if="sharepoint-tests.include">
-        <ant dir="tests/sharepoint" target="run-load-HSQLDB"/>
-    </target>
-
-    <target name="run-tests-open-connectors" depends="run-tests-activedirectory-connector,run-tests-ldap-connector,run-tests-alfresco-connector,run-tests-cmis-connector,run-tests-filesystem-connector,run-tests-nullauthority-connector,run-tests-nulloutput-connector,run-tests-rss-connector,run-tests-solr-connector,run-tests-webcrawler-connector,run-tests-wiki-connector,run-tests-jdbc-connector,run-tests-hdfs-connector"/>
-    <target name="run-tests-lgpl-connectors" depends="run-tests-jcifs-connector"/>
-    <target name="run-tests-proprietary-connectors" depends="run-tests-documentum-connector,run-tests-filenet-connector,run-tests-livelink-connector,run-tests-memex-connector,run-tests-meridio-connector,run-tests-sharepoint-connector"/>
-
-    <target name="run-tests-derby-open-connectors" depends="run-tests-derby-activedirectory-connector,run-tests-derby-ldap-connector,run-tests-derby-alfresco-connector,run-tests-derby-cmis-connector,run-tests-derby-filesystem-connector,run-tests-derby-hdfs-connector,run-tests-derby-nullauthority-connector,run-tests-derby-nulloutput-connector,run-tests-derby-rss-connector,run-tests-derby-solr-connector,run-tests-derby-webcrawler-connector,run-tests-derby-wiki-connector,run-tests-derby-jdbc-connector"/>
-    <target name="run-tests-derby-lgpl-connectors" depends="run-tests-derby-jcifs-connector"/>
-    <target name="run-tests-derby-proprietary-connectors" depends="run-tests-derby-documentum-connector,run-tests-derby-filenet-connector,run-tests-derby-livelink-connector,run-tests-derby-memex-connector,run-tests-derby-meridio-connector,run-tests-derby-sharepoint-connector"/>
-    
-    <target name="end-to-end-tests-derby" depends="run-filesystem-tests-derby,run-webcrawler-tests-derby,run-rss-tests-derby,run-solr-tests-derby,run-wiki-tests-derby,run-alfresco-tests-derby,run-cmis-tests-derby,run-sharepoint-tests-derby"/>
-
-    <target name="run-tests-postgresql-open-connectors" depends="run-tests-postgresql-activedirectory-connector,run-tests-postgresql-ldap-connector,run-tests-postgresql-alfresco-connector,run-tests-postgresql-cmis-connector,run-tests-postgresql-filesystem-connector,run-tests-postgresql-hdfs-connector,run-tests-postgresql-nullauthority-connector,run-tests-postgresql-nulloutput-connector,run-tests-postgresql-rss-connector,run-tests-postgresql-solr-connector,run-tests-postgresql-webcrawler-connector,run-tests-postgresql-wiki-connector,run-tests-postgresql-jdbc-connector,run-tests-postgresql-opensearchserver-connector,run-tests-postgresql-elasticsearch-connector"/>
-    <target name="run-tests-postgresql-lgpl-connectors" depends="run-tests-postgresql-jcifs-connector"/>
-    <target name="run-tests-postgresql-proprietary-connectors" depends="run-tests-postgresql-documentum-connector,run-tests-postgresql-filenet-connector,run-tests-postgresql-livelink-connector,run-tests-postgresql-memex-connector,run-tests-postgresql-meridio-connector,run-tests-postgresql-sharepoint-connector"/>
-    
-    <target name="end-to-end-tests-postgresql" depends="run-rss-tests-postgresql,run-filesystem-tests-postgresql,run-hdfs-tests-postgresql,run-webcrawler-tests-postgresql,run-wiki-tests-postgresql,run-alfresco-tests-postgresql,run-cmis-tests-postgresql,run-sharepoint-tests-postgresql"/>
-
-    <target name="run-tests-mysql-open-connectors" depends="run-tests-mysql-activedirectory-connector,run-tests-mysql-ldap-connector,run-tests-mysql-alfresco-connector,run-tests-mysql-cmis-connector,run-tests-mysql-filesystem-connector,run-tests-mysql-hdfs-connector,run-tests-mysql-nullauthority-connector,run-tests-mysql-nulloutput-connector,run-tests-mysql-rss-connector,run-tests-mysql-solr-connector,run-tests-mysql-webcrawler-connector,run-tests-mysql-wiki-connector,run-tests-mysql-jdbc-connector,run-tests-mysql-opensearchserver-connector,run-tests-mysql-elasticsearch-connector"/>
-    <target name="run-tests-mysql-lgpl-connectors" depends="run-tests-mysql-jcifs-connector"/>
-    <target name="run-tests-mysql-proprietary-connectors" depends="run-tests-mysql-documentum-connector,run-tests-mysql-filenet-connector,run-tests-mysql-livelink-connector,run-tests-mysql-memex-connector,run-tests-mysql-meridio-connector,run-tests-mysql-sharepoint-connector"/>
-    
-    <target name="end-to-end-tests-mysql" depends="run-rss-tests-mysql,run-filesystem-tests-mysql,run-hdfs-tests-mysql,run-webcrawler-tests-mysql,run-wiki-tests-mysql,run-alfresco-tests-mysql,run-cmis-tests-mysql,run-sharepoint-tests-mysql"/>
-
-    <target name="run-tests-HSQLDB-open-connectors" depends="run-tests-HSQLDB-activedirectory-connector,run-tests-HSQLDB-ldap-connector,run-tests-HSQLDB-alfresco-connector,run-tests-HSQLDB-cmis-connector,run-tests-HSQLDB-filesystem-connector,run-tests-HSQLDB-hdfs-connector,run-tests-HSQLDB-nullauthority-connector,run-tests-HSQLDB-nulloutput-connector,run-tests-HSQLDB-rss-connector,run-tests-HSQLDB-solr-connector,run-tests-HSQLDB-webcrawler-connector,run-tests-HSQLDB-wiki-connector,run-tests-HSQLDB-jdbc-connector,run-tests-HSQLDB-opensearchserver-connector,run-tests-HSQLDB-elasticsearch-connector"/>
-    <target name="run-tests-HSQLDB-lgpl-connectors" depends="run-tests-HSQLDB-jcifs-connector"/>
-    <target name="run-tests-HSQLDB-proprietary-connectors" depends="run-tests-HSQLDB-documentum-connector,run-tests-HSQLDB-filenet-connector,run-tests-HSQLDB-livelink-connector,run-tests-HSQLDB-memex-connector,run-tests-HSQLDB-meridio-connector,run-tests-HSQLDB-sharepoint-connector"/>
-    
-    <target name="end-to-end-tests-HSQLDB" depends="run-filesystem-tests-HSQLDB,run-hdfs-tests-HSQLDB,run-rss-tests-HSQLDB,run-wiki-tests-HSQLDB,run-alfresco-tests-HSQLDB,run-cmis-tests-HSQLDB,run-sharepoint-tests-HSQLDB"/>
-
-    <target name="end-to-end-loadtests-derby" depends="run-filesystem-loadtests-derby,run-rss-loadtests-derby,run-wiki-loadtests-derby,run-alfresco-loadtests-derby,run-cmis-loadtests-derby,run-sharepoint-loadtests-derby"/>
-
-    <target name="end-to-end-loadtests-postgresql" depends="run-filesystem-loadtests-postgresql,run-hdfs-loadtests-postgresql,run-rss-loadtests-postgresql,run-wiki-loadtests-postgresql,run-alfresco-loadtests-postgresql,run-cmis-loadtests-postgresql,run-sharepoint-loadtests-postgresql"/>
-
-    <target name="end-to-end-loadtests-mysql" depends="run-filesystem-loadtests-mysql,run-hdfs-loadtests-mysql,run-rss-loadtests-mysql,run-wiki-loadtests-mysql,run-alfresco-loadtests-mysql,run-cmis-loadtests-mysql,run-sharepoint-loadtests-mysql"/>
-
-    <target name="end-to-end-loadtests-HSQLDB" depends="run-filesystem-loadtests-HSQLDB,run-hdfs-loadtests-HSQLDB,run-rss-loadtests-HSQLDB,run-wiki-loadtests-HSQLDB,run-alfresco-loadtests-HSQLDB,run-cmis-loadtests-HSQLDB,run-sharepoint-loadtests-HSQLDB"/>
-
-    <target name="deliver-open-connectors" depends="deliver-email-connector,deliver-generic-connector,deliver-jira-connector,deliver-googledrive-connector,deliver-dropbox-connector,deliver-nullauthority-connector,deliver-activedirectory-connector,deliver-ldap-connector,deliver-alfresco-connector,deliver-cmis-connector,deliver-filesystem-connector,deliver-hdfs-connector,deliver-rss-connector,deliver-webcrawler-connector,deliver-wiki-connector,deliver-jdbc-connector"/>
-    <target name="deliver-open-connectors-doc" depends="deliver-email-connector-doc,deliver-generic-connector-doc,deliver-jira-connector-doc,deliver-googledrive-connector-doc,deliver-dropbox-connector-doc,deliver-nullauthority-connector-doc,deliver-activedirectory-connector-doc,deliver-ldap-connector-doc,deliver-alfresco-connector-doc,deliver-cmis-connector-doc,deliver-filesystem-connector-doc,deliver-hdfs-connector-doc,deliver-rss-connector-doc,deliver-webcrawler-connector-doc,deliver-wiki-connector-doc,deliver-jdbc-connector-doc"/>
-
-    <target name="deliver-output-connectors" depends="deliver-gts-connector,deliver-solr-connector,deliver-nulloutput-connector,deliver-opensearchserver-connector,deliver-elasticsearch-connector"/>
-    <target name="deliver-output-connectors-doc" depends="deliver-gts-connector-doc,deliver-solr-connector-doc,deliver-nulloutput-connector-doc,deliver-opensearchserver-connector-doc,deliver-elasticsearch-connector-doc"/>
-    
-    <target name="deliver-mapping-connectors" depends="deliver-regexp-mapper"/>
-    <target name="deliver-mapping-connectors-doc" depends="deliver-regexp-mapper-doc"/>
-    
-    <target name="deliver-lgpl-connectors" depends="deliver-jcifs-connector"/>
-    <target name="deliver-lgpl-connectors-doc" depends="deliver-jcifs-connector-doc"/>
-    
-    <target name="deliver-proprietary-connectors" depends="deliver-documentum-connector,deliver-filenet-connector,deliver-livelink-connector,deliver-memex-connector,deliver-meridio-connector,deliver-sharepoint-connector"/>
-    <target name="deliver-proprietary-connectors-doc" depends="deliver-documentum-connector-doc,deliver-filenet-connector-doc,deliver-livelink-connector-doc,deliver-memex-connector-doc,deliver-meridio-connector-doc,deliver-sharepoint-connector-doc"/>
-
-    <target name="build" depends="deliver-framework,deliver-open-connectors,deliver-output-connectors,deliver-mapping-connectors,deliver-lgpl-connectors,deliver-proprietary-connectors"/>
+    <target name="build" depends="deliver-connectors"/>
     <target name="tmpclean" depends="cleanup-afterbuild"/>
     <target name="buildcln" depends="build,tmpclean"/>
-    <target name="javadoc" depends="deliver-framework-doc,deliver-open-connectors-doc,deliver-output-connectors-doc,deliver-mapping-connectors-doc,deliver-lgpl-connectors-doc,deliver-proprietary-connectors-doc"/>
+    <target name="javadoc" depends="deliver-connectors-doc"/>
     <target name="doc" depends="deliver-site-doc"/>
     
     <target name="set-version">
@@ -3226,27 +1436,27 @@
 
     <target name="image" depends="create-source-zip,create-source-tar,create-lib-zip,create-lib-tar,create-bin-zip,create-bin-tar"/>
     
-    <target name="test-dr" depends="run-tests-derby-framework,run-tests-derby-open-connectors,run-tests-derby-lgpl-connectors,run-tests-derby-proprietary-connectors,end-to-end-tests-derby"/>
+    <target name="test-dr" depends="run-tests-derby-framework,run-connectors-tests-derby,run-connectors-IT-derby"/>
 
-    <target name="test-pg" depends="run-tests-postgresql-framework,run-tests-postgresql-open-connectors,run-tests-postgresql-lgpl-connectors,run-tests-postgresql-proprietary-connectors,end-to-end-tests-postgresql"/>
+    <target name="test-pg" depends="run-tests-postgresql-framework,run-connectors-tests-postgresql,run-connectors-IT-postgresql"/>
 
-    <target name="test-my" depends="run-tests-mysql-framework,run-tests-mysql-open-connectors,run-tests-mysql-lgpl-connectors,run-tests-mysql-proprietary-connectors,end-to-end-tests-mysql"/>
+    <target name="test-my" depends="run-tests-mysql-framework,run-connectors-tests-mysql,run-connectors-IT-mysql"/>
 
-    <target name="test-hs" depends="run-tests-HSQLDB-framework,run-tests-HSQLDBext-framework,run-tests-HSQLDB-open-connectors,run-tests-HSQLDB-lgpl-connectors,run-tests-HSQLDB-proprietary-connectors,end-to-end-tests-HSQLDB"/>
+    <target name="test-hs" depends="run-tests-HSQLDB-framework,run-tests-HSQLDBext-framework,run-connectors-tests-HSQLDB,run-connectors-tests-HSQLDBext,run-connectors-IT-HSQLDB,run-connectors-IT-HSQLDBext"/>
 
-    <target name="load-dr" depends="end-to-end-loadtests-derby"/>
+    <target name="load-dr" depends="run-connectors-LT-derby"/>
 
-    <target name="load-pg" depends="end-to-end-loadtests-postgresql"/>
+    <target name="load-pg" depends="run-connectors-LT-postgresql"/>
 
-    <target name="load-my" depends="end-to-end-loadtests-mysql"/>
+    <target name="load-my" depends="run-connectors-LT-mysql"/>
 
-    <target name="load-hs" depends="end-to-end-loadtests-HSQLDB"/>
+    <target name="load-hs" depends="run-connectors-LT-HSQLDB,run-connectors-LT-HSQLDBext"/>
 
-    <target name="test" depends="run-tests-framework,run-tests-open-connectors,run-tests-lgpl-connectors,run-tests-proprietary-connectors,test-dr,test-hs"/>
+    <target name="test" depends="run-tests-framework,run-connectors-tests,test-dr,test-hs"/>
 
-    <target name="ldtest" depends="load-dr,load-hs"/>
+    <target name="ldtest" depends="run-connectors-LT-derby,run-connectors-LT-HSQLDB"/>
 
-    <target name="uitest" depends="run-filesystem-UI-tests-derby,run-hdfs-UI-tests-derby,run-filesystem-UI-tests-HSQLDB,run-hdfs-UI-tests-HSQLDB,run-jcifs-UI-tests-derby,run-jdbc-UI-tests-derby,run-activedirectory-UI-tests-derby,run-ldap-UI-tests-derby,run-rss-UI-tests-derby,run-webcrawler-UI-tests-derby,run-wiki-UI-tests-derby,run-solr-UI-tests-derby,run-cmis-UI-tests-derby,run-gts-UI-tests-derby,run-opensearchserver-UI-tests-derby"/>
+    <target name="uitest" depends="run-connectors-UI-derby,run-connectors-UI-HSQLDB"/>
     
     <target name="all" depends="build,javadoc,doc,image,test-dr,test-hs"/>
 
@@ -3343,8 +1553,14 @@
           <exclude name="**/surefire-reports/"/>
           <exclude name="**/target/"/>
           <exclude name="lib-proprietary/*.jar"/>
-          <exclude name="scripts/*.env"/>
-          <exclude name="scripts-jetty/*.env"/>
+          <exclude name="scripts/*.env.win"/>
+          <exclude name="scripts/*.env.unix"/>
+          <exclude name="scripts-jetty/*.env.win"/>
+          <exclude name="scripts-jetty/*.env.unix"/>
+          <exclude name="scripts-combined/*.env.win"/>
+          <exclude name="scripts-combined/*.env.unix"/>
+          <exclude name="engine-scripts/*.env.win"/>
+          <exclude name="engine-scripts/*.env.unix"/>
         </fileset>
         <fileset dir="site/">
           <exclude name="fonts/"/>
@@ -3353,18 +1569,6 @@
           <exclude name="src/documentation/skins/common/xslt/html/split.xsl"/>
           <exclude name="src/documentation/skins/lucene/note.txt"/>
         </fileset>
-        <fileset dir="tests/">
-          <exclude name="**/build/"/>
-          <exclude name="**/dist/"/>
-          <exclude name="**/test-output/"/>
-          <exclude name="**/test-derby-output/"/>
-          <exclude name="**/test-postgresql-output/"/>
-          <exclude name="**/test-HSQLDB-output/"/>
-          <exclude name="**/test-HSQLDBext-output/"/>
-          <exclude name="**/test-mysql-output/"/>
-          <exclude name="**/surefire-reports/"/>
-          <exclude name="**/target/"/>
-        </fileset>
         <fileset dir="test-materials/">
           <exclude name="**/build/"/>
           <exclude name="**/dist/"/>
@@ -4342,35 +2546,7 @@
 
     <target name="download-proprietary-dependencies" depends="download-mysql,download-jtds"/>
     
-    <target name="make-deps" depends="download-proprietary-dependencies">
-        <ant dir="connectors/alfresco" target="download-dependencies"/>
-        <ant dir="connectors/cmis" target="download-dependencies"/>
-        <ant dir="connectors/generic" target="download-dependencies"/>
-        <ant dir="connectors/dropbox" target="download-dependencies"/>
-        <ant dir="connectors/googledrive" target="download-dependencies"/>
-        <ant dir="connectors/jira" target="download-dependencies"/>
-        <ant dir="connectors/activedirectory" target="download-dependencies"/>
-        <ant dir="connectors/ldap" target="download-dependencies"/>
-        <ant dir="connectors/documentum" target="download-dependencies"/>
-        <ant dir="connectors/email" target="download-dependencies"/>
-        <ant dir="connectors/filenet" target="download-dependencies"/>
-        <ant dir="connectors/filesystem" target="download-dependencies"/>
-        <ant dir="connectors/gts" target="download-dependencies"/>
-        <ant dir="connectors/hdfs" target="download-dependencies"/>
-        <ant dir="connectors/jcifs" target="download-dependencies"/>
-        <ant dir="connectors/jdbc" target="download-dependencies"/>
-        <ant dir="connectors/livelink" target="download-dependencies"/>
-        <ant dir="connectors/solr" target="download-dependencies"/>
-        <ant dir="connectors/memex" target="download-dependencies"/>
-        <ant dir="connectors/meridio" target="download-dependencies"/>
-        <ant dir="connectors/opensearchserver" target="download-dependencies"/>
-        <ant dir="connectors/elasticsearch" target="download-dependencies"/>
-        <ant dir="connectors/nullauthority" target="download-dependencies"/>
-        <ant dir="connectors/nulloutput" target="download-dependencies"/>
-        <ant dir="connectors/rss" target="download-dependencies"/>
-        <ant dir="connectors/sharepoint" target="download-dependencies"/>
-        <ant dir="connectors/webcrawler" target="download-dependencies"/>
-        <ant dir="connectors/wiki" target="download-dependencies"/>
+    <target name="make-deps" depends="download-proprietary-dependencies,download-connectors-dependencies">
         <ant dir="site" target="download-dependencies"/>
     </target>
 
@@ -4384,34 +2560,7 @@
         <delete dir="lib"/>
     </target>
 
-    <target name="clean-deps" depends="download-proprietary-cleanup">
-        <ant dir="connectors/alfresco" target="download-cleanup"/>
-        <ant dir="connectors/cmis" target="download-cleanup"/>
-        <ant dir="connectors/generic" target="download-cleanup"/>        
-        <ant dir="connectors/dropbox" target="download-cleanup"/>        
-        <ant dir="connectors/googledrive" target="download-cleanup"/>
-        <ant dir="connectors/jira" target="download-cleanup"/>
-        <ant dir="connectors/activedirectory" target="download-cleanup"/>
-        <ant dir="connectors/ldap" target="download-cleanup"/>
-        <ant dir="connectors/documentum" target="download-cleanup"/>
-        <ant dir="connectors/filenet" target="download-cleanup"/>
-        <ant dir="connectors/filesystem" target="download-cleanup"/>
-        <ant dir="connectors/gts" target="download-cleanup"/>
-        <ant dir="connectors/hdfs" target="download-cleanup"/>
-        <ant dir="connectors/jcifs" target="download-cleanup"/>
-        <ant dir="connectors/jdbc" target="download-cleanup"/>
-        <ant dir="connectors/livelink" target="download-cleanup"/>
-        <ant dir="connectors/solr" target="download-cleanup"/>
-        <ant dir="connectors/memex" target="download-cleanup"/>
-        <ant dir="connectors/meridio" target="download-cleanup"/>
-        <ant dir="connectors/opensearchserver" target="download-cleanup"/>
-        <ant dir="connectors/elasticsearch" target="download-cleanup"/>
-        <ant dir="connectors/nullauthority" target="download-cleanup"/>
-        <ant dir="connectors/nulloutput" target="download-cleanup"/>
-        <ant dir="connectors/rss" target="download-cleanup"/>
-        <ant dir="connectors/sharepoint" target="download-cleanup"/>
-        <ant dir="connectors/webcrawler" target="download-cleanup"/>
-        <ant dir="connectors/wiki" target="download-cleanup"/>
+    <target name="clean-deps" depends="download-proprietary-cleanup,cleanup-connectors-dependencies">
         <ant dir="site" target="download-cleanup"/>
     </target>
     
diff --git a/connectors/activedirectory/build.xml b/connectors/activedirectory/build.xml
index 7c4560e..5cc5aee 100644
--- a/connectors/activedirectory/build.xml
+++ b/connectors/activedirectory/build.xml
@@ -17,7 +17,24 @@
 
 <project name="activedirectory" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
     
-    
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-authority-connector">
+            <param name="connector-label" value="Active Directory"/>
+            <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.activedirectory.ActiveDirectoryAuthority"/>
+        </antcall>
+    </target>
+
 </project>
diff --git a/tests/activedirectory/src/test/java/org/apache/manifoldcf/activedirectory_tests/BaseUIDerby.java b/connectors/activedirectory/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/activedirectory/tests/BaseUIDerby.java
similarity index 94%
rename from tests/activedirectory/src/test/java/org/apache/manifoldcf/activedirectory_tests/BaseUIDerby.java
rename to connectors/activedirectory/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/activedirectory/tests/BaseUIDerby.java
index b98d166..badbcd7 100644
--- a/tests/activedirectory/src/test/java/org/apache/manifoldcf/activedirectory_tests/BaseUIDerby.java
+++ b/connectors/activedirectory/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/activedirectory/tests/BaseUIDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.activedirectory_tests;
+package org.apache.manifoldcf.authorities.authorities.activedirectory.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
diff --git a/tests/activedirectory/src/test/java/org/apache/manifoldcf/activedirectory_tests/NavigationDerbyUI.java b/connectors/activedirectory/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/activedirectory/tests/NavigationDerbyUI.java
similarity index 98%
rename from tests/activedirectory/src/test/java/org/apache/manifoldcf/activedirectory_tests/NavigationDerbyUI.java
rename to connectors/activedirectory/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/activedirectory/tests/NavigationDerbyUI.java
index 4c35d0c..1f8e53d 100644
--- a/tests/activedirectory/src/test/java/org/apache/manifoldcf/activedirectory_tests/NavigationDerbyUI.java
+++ b/connectors/activedirectory/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/activedirectory/tests/NavigationDerbyUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.activedirectory_tests;
+package org.apache.manifoldcf.authorities.authorities.activedirectory.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
diff --git a/connectors/activedirectory/pom.xml b/connectors/activedirectory/pom.xml
index 6e8d319..9e7fbbf 100644
--- a/connectors/activedirectory/pom.xml
+++ b/connectors/activedirectory/pom.xml
@@ -24,29 +24,41 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-activedirectory-connector</artifactId>
   <name>ManifoldCF - Connectors - Active Directory</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
       <resource>
+        <directory>${basedir}/connector/src/main/native2ascii</directory>
+        <includes>
+          <include>**/*.properties</include>
+        </includes>
+      </resource>
+      <resource>
         <directory>${basedir}/connector/src/main/resources</directory>
         <includes>
           <include>**/*.html</include>
           <include>**/*.js</include>
         </includes>
       </resource>
-      <resource>
-        <directory>${basedir}/connector/src/main/native2ascii</directory>
-        <includes>
-          <include>**/*.properties</include>
-        </includes>
-      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -69,11 +81,103 @@
             </execution>
         </executions>
       </plugin>
+      
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
 
   </build>
 
   <dependencies>
+    <!-- Main build dependencies -->
     <dependency>
       <groupId>${project.groupId}</groupId>
       <artifactId>mcf-core</artifactId>
@@ -94,5 +198,164 @@
       <artifactId>mcf-ui-core</artifactId>
       <version>${project.version}</version>
     </dependency>
+
+    <!-- Testing dependencies -->
+    
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-core</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-agents</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-pull-agent</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>postgresql</groupId>
+      <artifactId>postgresql</artifactId>
+      <version>${postgresql.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hsqldb</groupId>
+      <artifactId>hsqldb</artifactId>
+      <version>${hsqldb.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.derby</groupId>
+      <artifactId>derby</artifactId>
+      <version>${derby.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+      <version>${mysql.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 </project>
\ No newline at end of file
diff --git a/connectors/alfresco/build.xml b/connectors/alfresco/build.xml
index 82d45bd..24cb388 100644
--- a/connectors/alfresco/build.xml
+++ b/connectors/alfresco/build.xml
@@ -17,8 +17,18 @@
 
 <project name="alfresco" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
 
+    <import file="${mcf-dist}/connector-build.xml"/>
   
     <target name="calculate-condition">
         <available file="lib-proprietary/alfresco-web-service-client-4.2.c.jar" property="alfrescoStatus"/>
@@ -46,15 +56,9 @@
         <path refid="mcf-connector-build.connector-classpath"/>
         <fileset dir="lib-proprietary" includes="*.jar"/>
         <fileset dir="../../lib">
-            <include name="axis*.jar"/>	
-            <include name="saaj*.jar"/>	
-            <include name="commons-discovery*.jar"/>
             <include name="jaxrpc*.jar"/>
             <include name="opensaml*.jar"/>
-            <include name="wsdl4j*.jar"/>
             <include name="wss4j*.jar"/>
-            <!--include name="xalan*.jar"/-->
-            <!--include name="xercesImpl*.jar"/-->
             <include name="xmlsec*.jar"/>
         </fileset>
     </path>
@@ -62,21 +66,16 @@
     <path id="connector-test-classpath">
         <path refid="mcf-connector-build.connector-test-classpath"/>
         <fileset file="../../lib/h2*.jar"/>
+        <fileset file="lib-proprietary/alfresco-web-service-client*.jar"/>
     </path>
     
     <target name="lib" depends="mcf-connector-build.lib,precompile-check" if="canBuild">
         <mkdir dir="dist/lib"/>
         <copy todir="dist/lib">
             <fileset dir="../../lib">
-                <include name="axis*.jar"/>	
-                <include name="saaj*.jar"/>	
-                <include name="commons-discovery*.jar"/>
                 <include name="jaxrpc*.jar"/>
                 <include name="opensaml*.jar"/>
-                <include name="wsdl4j*.jar"/>
                 <include name="wss4j*.jar"/>
-                <!--include name="xalan*.jar"/-->
-                <!--include name="xercesImpl*.jar"/-->
                 <include name="xmlsec*.jar"/>
             </fileset>
         </copy>
@@ -88,15 +87,6 @@
         </copy>
     </target>
 
-    <target name="build-test-materials" depends="pretest-check" if="canTest">
-        <mkdir dir="build/alfresco-4-war"/>
-        <copy todir="build/alfresco-4-war">
-            <fileset dir="test-materials-proprietary">
-                <include name="alfresco*.war"/>
-            </fileset>
-        </copy>
-    </target>
-
     <target name="download-alfresco-ws-client">
       <get src="https://artifacts.alfresco.com/nexus/service/local/repositories/releases/content/org/alfresco/alfresco-web-service-client/4.2.c/alfresco-web-service-client-4.2.c.jar" dest="lib-proprietary"/>
     </target>
@@ -109,4 +99,40 @@
         </delete>
     </target>
 
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-repository-connector">
+            <param name="connector-label" value="Alfresco"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.alfresco.AlfrescoRepositoryConnector"/>
+        </antcall>
+    </target>
+
+    <target name="run-IT-derby" depends="compile-tests,pretest-check" if="canTest">
+        <mkdir dir="test-derby-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-derby-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <jvmarg value="-DcrawlerWarPath=${mcf-dist}/web/war/mcf-crawler-ui.war"/>
+            <jvmarg value="-DauthorityserviceWarPath=${mcf-dist}/web/war/mcf-authority-service.war"/>
+            <jvmarg value="-DapiWarPath=${mcf-dist}/web/war/mcf-api-service.war"/>
+            <jvmarg value="-DcombinedWarPath=${mcf-dist}/web/war/mcf-combined-service.war"/>
+            <jvmarg value="-DalfrescoServerWarPath=../test-materials-proprietary/alfresco.war"/>
+            <jvmarg value="-Xms512m"/>
+            <jvmarg value="-Xmx1024m"/>
+            <jvmarg value="-Xss1024k"/>
+            <jvmarg value="-XX:MaxPermSize=256m"/>
+            <jvmarg value="-XX:NewSize=256m"/>
+            <classpath>
+                <fileset dir="${env.JAVA_HOME}/lib">
+                    <include name="tools.jar"/>
+                </fileset>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-derby-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*DerbyIT.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+
 </project>
diff --git a/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/editConfiguration.js b/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/editConfiguration.js
index 64af925..fe8f550 100644
--- a/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/editConfiguration.js
+++ b/connectors/alfresco/connector/src/main/resources/org/apache/manifoldcf/crawler/connectors/alfresco/editConfiguration.js
@@ -45,7 +45,7 @@
     editconnection.server.focus();
     return false;
   }
-  else if(!editconnection.server.value.indexOf('/')==-1)
+  else if(editconnection.server.value.indexOf('/')!=-1)
   {
     alert("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('AlfrescoConnector.ServerNameCantContainSlash'))");
     SelectTab("$Encoder.bodyJavascriptEscape($ResourceBundle.getString('AlfrescoConnector.Server'))");
diff --git a/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/APISanityIT.java b/connectors/alfresco/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/alfresco/tests/APISanityIT.java
similarity index 98%
rename from tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/APISanityIT.java
rename to connectors/alfresco/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/alfresco/tests/APISanityIT.java
index b4f8fbd..20eb91c 100644
--- a/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/APISanityIT.java
+++ b/connectors/alfresco/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/alfresco/tests/APISanityIT.java
@@ -17,7 +17,7 @@
 * limitations under the License.
 */
 
-package org.apache.manifoldcf.alfresco_tests;
+package org.apache.manifoldcf.crawler.connectors.alfresco.tests;
 
 import java.io.IOException;
 import java.rmi.RemoteException;
@@ -55,7 +55,7 @@
 /**
  * @author Piergiorgio Lucidi
  */
-public class APISanityIT extends BaseDerby
+public class APISanityIT extends BaseITDerby
 {
   
   private static final String REPLACER = "?";
@@ -396,7 +396,7 @@
       connectionObject.addChild(connectionObject.getChildCount(),child);
       
       child = new ConfigurationNode("class_name");
-      child.setValue("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
+      child.setValue("org.apache.manifoldcf.agents.tests.TestingOutputConnector");
       connectionObject.addChild(connectionObject.getChildCount(),child);
       
       child = new ConfigurationNode("description");
diff --git a/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/BaseDerby.java b/connectors/alfresco/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/alfresco/tests/BaseITDerby.java
similarity index 93%
rename from tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/BaseDerby.java
rename to connectors/alfresco/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/alfresco/tests/BaseITDerby.java
index 7702ba8..b499c1e 100644
--- a/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/BaseDerby.java
+++ b/connectors/alfresco/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/alfresco/tests/BaseITDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.alfresco_tests;
+package org.apache.manifoldcf.crawler.connectors.alfresco.tests;
 
 import org.eclipse.jetty.security.HashLoginService;
 import org.eclipse.jetty.server.handler.ContextHandlerCollection;
@@ -32,7 +32,7 @@
  *  @author Piergiorgio Lucidi
  * 
  * */
-public class BaseDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
+public class BaseITDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
 {
   protected Server alfrescoServer = null;
 
@@ -54,7 +54,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
   
   // Setup/teardown
diff --git a/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/BaseUIDerby.java b/connectors/alfresco/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/alfresco/tests/BaseUIDerby.java
similarity index 89%
rename from tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/BaseUIDerby.java
rename to connectors/alfresco/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/alfresco/tests/BaseUIDerby.java
index 82cbd19..0e06558 100644
--- a/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/BaseUIDerby.java
+++ b/connectors/alfresco/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/alfresco/tests/BaseUIDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.alfresco_tests;
+package org.apache.manifoldcf.crawler.connectors.alfresco.tests;
 
 
 /** Tests that run the "agents daemon" should be derived from this */
@@ -39,7 +39,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
 
 }
diff --git a/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/NavigationDerbyUI.java b/connectors/alfresco/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/alfresco/tests/NavigationDerbyUI.java
similarity index 98%
rename from tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/NavigationDerbyUI.java
rename to connectors/alfresco/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/alfresco/tests/NavigationDerbyUI.java
index 0313c07..9a94b2e 100644
--- a/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/NavigationDerbyUI.java
+++ b/connectors/alfresco/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/alfresco/tests/NavigationDerbyUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.alfresco_tests;
+package org.apache.manifoldcf.crawler.connectors.alfresco.tests;
 
 import java.util.Locale;
 
@@ -71,7 +71,7 @@
     window = testerInstance.findWindow(null);
     form = window.findForm(testerInstance.createStringDescription("editconnection"));
     selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.output.nullconnector.NullConnector"));
+    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.tests.TestingOutputConnector"));
     button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
     button.click();
     // Visit the Throttling tab
diff --git a/connectors/alfresco/pom.xml b/connectors/alfresco/pom.xml
index 4e4f016..e89ef25 100644
--- a/connectors/alfresco/pom.xml
+++ b/connectors/alfresco/pom.xml
@@ -33,6 +33,11 @@
     </developer>
   </developers>
   
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-alfresco-connector</artifactId>
   <name>ManifoldCF - Connectors - Alfresco</name>
 
@@ -53,6 +58,7 @@
         <url>https://artifacts.alfresco.com/nexus/content/repositories/alfresco-docs</url>
     </repository>
   </repositories>
+
   <!-- 
   <pluginRepositories>
     <pluginRepository>
@@ -68,26 +74,34 @@
     </pluginRepository>
   </pluginRepositories>
 -->
+
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
       <resource>
+        <directory>${basedir}/connector/src/main/native2ascii</directory>
+        <includes>
+          <include>**/*.properties</include>
+        </includes>
+      </resource>
+      <resource>
         <directory>${basedir}/connector/src/main/resources</directory>
         <includes>
           <include>**/*.html</include>
           <include>**/*.js</include>
         </includes>
       </resource>
-      <resource>
-        <directory>${basedir}/connector/src/main/native2ascii</directory>
-        <includes>
-          <include>**/*.properties</include>
-        </includes>
-      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -110,6 +124,58 @@
             </execution>
         </executions>
       </plugin>
+
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>alfresco-4-war</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>alfresco.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
@@ -122,6 +188,43 @@
           <workingDirectory>target/test-output</workingDirectory>
         </configuration>
       </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+            <alfrescoServerWarPath>../dependency/alfresco.war</alfrescoServerWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+          <argLine>-Xms512m -Xmx1024m -Xss1024k -XX:MaxPermSize=256m -XX:NewSize=256m</argLine>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
   </build>
 
@@ -232,7 +335,8 @@
         <version>2.6</version>
     </dependency>
     
-    <!-- Test scope -->
+    <!-- Testing dependencies -->
+    
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
@@ -260,6 +364,7 @@
       <type>test-jar</type>
       <scope>test</scope>
     </dependency>
+
     <dependency>
       <groupId>postgresql</groupId>
       <artifactId>postgresql</artifactId>
@@ -284,5 +389,130 @@
       <version>${mysql.version}</version>
       <scope>test</scope>
     </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-plus</artifactId>
+      <version>${jetty.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>com.h2database</groupId>
+      <artifactId>h2</artifactId>
+      <version>1.3.158</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.httpcomponents</groupId>
+      <artifactId>httpclient</artifactId>
+      <version>${httpcomponent.httpclient.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <version>${commons-logging.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>commons-codec</groupId>
+      <artifactId>commons-codec</artifactId>
+      <version>${commons-codec.version}</version>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 </project>
\ No newline at end of file
diff --git a/connectors/cmis/build.xml b/connectors/cmis/build.xml
index 134c979..578376e 100644
--- a/connectors/cmis/build.xml
+++ b/connectors/cmis/build.xml
@@ -17,13 +17,23 @@
 
 <project name="cmis" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
     
     <path id="connector-classpath">
         <path refid="mcf-connector-build.connector-classpath"/>
         <fileset dir="../../lib">
             <include name="chemistry*.jar"/>
-            <include name="saaj*.jar"/>
             <include name="stax*.jar"/>
             <include name="streambuffer*.jar"/>
             <include name="jaxb*.jar"/>
@@ -32,7 +42,6 @@
             <include name="mimepull*.jar"/>
             <include name="resolver*.jar"/>
             <include name="org.osgi.core*.jar"/>
-            <include name="activation*.jar"/>
             <include name="commons-lang*.jar"/>
         </fileset>
     </path>
@@ -42,7 +51,6 @@
         <copy todir="dist/lib">
             <fileset dir="../../lib">
                 <include name="chemistry*.jar"/>
-                <include name="saaj*.jar"/>
                 <include name="stax*.jar"/>
                 <include name="streambuffer*.jar"/>
                 <include name="jaxb*.jar"/>
@@ -51,9 +59,19 @@
                 <include name="mimepull*.jar"/>
                 <include name="resolver*.jar"/>
                 <include name="org.osgi.core*.jar"/>
-                <include name="activation*.jar"/>
             </fileset>
         </copy>
     </target>
 
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-repository-connector">
+            <param name="connector-label" value="CMIS"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.cmis.CmisRepositoryConnector"/>
+        </antcall>
+        <antcall target="general-add-authority-connector">
+            <param name="connector-label" value="CMIS"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.cmis.CmisAuthorityConnector"/>
+        </antcall>
+    </target>
+
 </project>
diff --git a/tests/cmis/src/test/java/org/apache/manifoldcf/cmis_tests/APISanityIT.java b/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/APISanityIT.java
similarity index 98%
rename from tests/cmis/src/test/java/org/apache/manifoldcf/cmis_tests/APISanityIT.java
rename to connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/APISanityIT.java
index 404fcb1..f217e21 100644
--- a/tests/cmis/src/test/java/org/apache/manifoldcf/cmis_tests/APISanityIT.java
+++ b/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/APISanityIT.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.cmis_tests;
+package org.apache.manifoldcf.crawler.connectors.cmis.tests;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -51,7 +51,7 @@
 /**
  * @author Piergiorgio Lucidi
  */
-public class APISanityIT extends BaseDerby
+public class APISanityIT extends BaseITDerby
 {
   private static final String REPLACER = "?";
   private static final String CMIS_TEST_QUERY_CHANGE_DOC = "SELECT * FROM cmis:document WHERE cmis:name='"+REPLACER+"'";
@@ -290,7 +290,7 @@
       connectionObject.addChild(connectionObject.getChildCount(),child);
       
       child = new ConfigurationNode("class_name");
-      child.setValue("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
+      child.setValue("org.apache.manifoldcf.agents.tests.TestingOutputConnector");
       connectionObject.addChild(connectionObject.getChildCount(),child);
       
       child = new ConfigurationNode("description");
diff --git a/tests/cmis/src/test/java/org/apache/manifoldcf/cmis_tests/BaseDerby.java b/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/BaseITDerby.java
similarity index 89%
rename from tests/cmis/src/test/java/org/apache/manifoldcf/cmis_tests/BaseDerby.java
rename to connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/BaseITDerby.java
index 6e1e68a..2484a13 100644
--- a/tests/cmis/src/test/java/org/apache/manifoldcf/cmis_tests/BaseDerby.java
+++ b/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/BaseITDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.cmis_tests;
+package org.apache.manifoldcf.crawler.connectors.cmis.tests;
 
 import org.apache.manifoldcf.crawler.system.ManifoldCF;
 import org.junit.After;
@@ -27,7 +27,7 @@
  *  @author Piergiorgio Lucidi
  * 
  * */
-public class BaseDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
+public class BaseITDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
 {
   protected CMISServer cmisServer = null;
 
@@ -49,7 +49,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
   
   // Setup/teardown
diff --git a/tests/cmis/src/test/java/org/apache/manifoldcf/cmis_tests/BaseUIDerby.java b/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/BaseUIDerby.java
similarity index 91%
rename from tests/cmis/src/test/java/org/apache/manifoldcf/cmis_tests/BaseUIDerby.java
rename to connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/BaseUIDerby.java
index 91da4d8..ba3f344 100644
--- a/tests/cmis/src/test/java/org/apache/manifoldcf/cmis_tests/BaseUIDerby.java
+++ b/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/BaseUIDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.cmis_tests;
+package org.apache.manifoldcf.crawler.connectors.cmis.tests;
 
 /** Tests that run the "agents daemon" should be derived from this */
 public class BaseUIDerby extends org.apache.manifoldcf.crawler.tests.ConnectorBaseUIDerby
@@ -38,7 +38,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
 
   protected String[] getAuthorityClasses()
diff --git a/tests/cmis/src/test/java/org/apache/manifoldcf/cmis_tests/CMISServer.java b/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/CMISServer.java
similarity index 96%
rename from tests/cmis/src/test/java/org/apache/manifoldcf/cmis_tests/CMISServer.java
rename to connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/CMISServer.java
index 5ba7b3f..6fbd2dd 100644
--- a/tests/cmis/src/test/java/org/apache/manifoldcf/cmis_tests/CMISServer.java
+++ b/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/CMISServer.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.cmis_tests;
+package org.apache.manifoldcf.crawler.connectors.cmis.tests;
 
 import org.eclipse.jetty.server.handler.ContextHandlerCollection;
 import org.eclipse.jetty.server.Server;
diff --git a/tests/cmis/src/test/java/org/apache/manifoldcf/cmis_tests/NavigationDerbyUI.java b/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/NavigationDerbyUI.java
similarity index 98%
rename from tests/cmis/src/test/java/org/apache/manifoldcf/cmis_tests/NavigationDerbyUI.java
rename to connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/NavigationDerbyUI.java
index 1c650ca..985ece1 100644
--- a/tests/cmis/src/test/java/org/apache/manifoldcf/cmis_tests/NavigationDerbyUI.java
+++ b/connectors/cmis/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/cmis/tests/NavigationDerbyUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.cmis_tests;
+package org.apache.manifoldcf.crawler.connectors.cmis.tests;
 
 import java.util.Locale;
 
@@ -71,7 +71,7 @@
     window = testerInstance.findWindow(null);
     form = window.findForm(testerInstance.createStringDescription("editconnection"));
     selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.output.nullconnector.NullConnector"));
+    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.tests.TestingOutputConnector"));
     button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
     button.click();
     // Visit the Throttling tab
diff --git a/connectors/cmis/pom.xml b/connectors/cmis/pom.xml
index 5772c14..acca9c0 100644
--- a/connectors/cmis/pom.xml
+++ b/connectors/cmis/pom.xml
@@ -24,6 +24,11 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
   
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <developers>
     <developer>
       <name>Piergiorgio Lucidi</name>
@@ -37,25 +42,32 @@
   <name>ManifoldCF - Connectors - CMIS</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
       <resource>
+        <directory>${basedir}/connector/src/main/native2ascii</directory>
+        <includes>
+          <include>**/*.properties</include>
+        </includes>
+      </resource>
+      <resource>
         <directory>${basedir}/connector/src/main/resources</directory>
         <includes>
           <include>**/*.html</include>
           <include>**/*.js</include>
         </includes>
       </resource>
-      <resource>
-        <directory>${basedir}/connector/src/main/native2ascii</directory>
-        <includes>
-          <include>**/*.properties</include>
-        </includes>
-      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -78,6 +90,58 @@
             </execution>
         </executions>
       </plugin>
+
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>org.apache.chemistry.opencmis</groupId>
+                  <artifactId>chemistry-opencmis-server-inmemory</artifactId>
+                  <version>0.9.0</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>chemistry-opencmis-server-inmemory.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
@@ -90,6 +154,42 @@
           <workingDirectory>target/test-output</workingDirectory>
         </configuration>
       </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+            <openCmisServerWarPath>../dependency/chemistry-opencmis-server-inmemory.war</openCmisServerWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
   </build>
 
@@ -153,6 +253,15 @@
       <type>test-jar</type>
       <scope>test</scope>
     </dependency>
+
+    <dependency>
+      <groupId>org.apache.chemistry.opencmis</groupId>
+      <artifactId>chemistry-opencmis-server-inmemory</artifactId>
+      <version>0.9.0</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
     <dependency>
       <groupId>postgresql</groupId>
       <artifactId>postgresql</artifactId>
@@ -177,5 +286,109 @@
       <version>${mysql.version}</version>
       <scope>test</scope>
     </dependency>
+    
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 </project>
\ No newline at end of file
diff --git a/connectors/connector-build.xml b/connectors/connector-build.xml
deleted file mode 100644
index e0f01cc..0000000
--- a/connectors/connector-build.xml
+++ /dev/null
@@ -1,698 +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.
--->
-
-<project name="mcf-connector-build">
-
-    <import file="../common-build.xml"/>
-    
-    <target name="clean">
-        <delete dir="build"/>
-        <delete dir="dist"/>
-        <delete dir="test-derby-output"/>
-        <delete dir="test-postgresql-output"/>
-        <delete dir="test-mysql-output"/>
-        <delete dir="test-HSQLDB-output"/>
-        <delete dir="test-HSQLDBext-output"/>
-    </target>
-
-    <path id="mcf-connector-build.connector-classpath">
-        <fileset dir="../../lib">
-            <include name="json*.jar"/>
-            <include name="commons-codec*.jar"/>
-            <include name="commons-collections*.jar"/>
-            <include name="commons-el*.jar"/>
-            <include name="commons-fileupload*.jar"/>
-            <include name="httpcore*.jar"/>
-            <include name="httpclient*.jar"/>
-            <include name="commons-io*.jar"/>
-            <include name="commons-lang*.jar"/>
-            <include name="commons-logging*.jar"/>
-            <include name="eclipse*.jar"/>
-            <include name="jasper*.jar"/>
-            <include name="jetty*.jar"/>
-            <include name="slf4j*.jar"/>
-            <include name="jsp-2.1*.jar"/>
-            <include name="jsp-api*.jar"/>
-            <include name="junit*.jar"/>
-            <include name="log4j*.jar"/>
-            <include name="serializer*.jar"/>
-            <include name="servlet-api*.jar"/>
-            <include name="tomcat-juli*.jar"/>
-            <include name="xalan*.jar"/>
-            <include name="xercesImpl*.jar"/>
-            <include name="xml-apis*.jar"/>
-            <include name="velocity*.jar"/>
-        </fileset>
-        <fileset dir="../../lib">
-            <include name="axis*.jar"/>
-            <include name="saaj*.jar"/>
-            <include name="wsdl*.jar"/>
-            <include name="commons-discovery*.jar"/>
-            <include name="activation*.jar"/>
-        </fileset>
-        <fileset dir="../../lib">
-            <include name="castor*.jar"/>
-            <include name="geronimo-activation_1.1_spec*.jar"/>
-            <include name="geronimo-javamail_1.4_spec*.jar"/>
-            <include name="commons-discovery*.jar"/>
-        </fileset>
-        <fileset dir="../../framework/build/jar"/>
-        <pathelement location="build/stubclasses"/>
-        <pathelement location="build/wsdlclasses"/>
-        <pathelement location="build/xsdclasses"/>
-        <pathelement location="build/interface/classes"/>
-        <pathelement location="build/rmistub/classes"/>
-    </path>
-    
-    <path id="connector-classpath">
-        <path refid="mcf-connector-build.connector-classpath"/>
-    </path>
-
-    <path id="mcf-connector-build.connector-test-classpath">
-        <path refid="connector-classpath"/>
-        <pathelement location="build/connector/classes"/>
-        <fileset dir="../../framework/build/test-jar"/>
-        <fileset dir="../../lib">
-            <include name="postgresql*.jar"/>
-            <include name="derby*.jar"/>
-            <include name="hsqldb*.jar"/>
-        </fileset>
-        <fileset dir="../../lib-proprietary">
-            <include name="mysql*.jar"/>
-        </fileset>
-    </path>
-
-    <path id="connector-test-classpath">
-        <path refid="mcf-connector-build.connector-test-classpath"/>
-    </path>
-
-    <path id="mcf-connector-build.implementation-classpath">
-        <pathelement location="build/interface/classes"/>
-        <pathelement location="build/stubclasses"/>
-    </path>
-
-    <path id="implementation-classpath">
-        <path refid="mcf-connector-build.implementation-classpath"/>
-    </path>
-
-    <path id="mcf-connector-build.interface-classpath">
-    </path>
-
-    <path id="interface-classpath">
-        <path refid="mcf-connector-build.interface-classpath"/>
-    </path>
-
-    <!-- Standard connector proprietary/non-proprietary setup described below.
-    (1) If there's a lib-proprietary directory, we presume that the connector requires one or
-        more proprietary libraries to build and run.  We expect to find a README.txt file in
-        the directory, which describes what is needed at build time, and that if the required
-        libraries are not present, the connector's build.xml file will override "calculate-condition"
-        and "precompile-check" appropriately.  If there's a "proprietary-library-instructions.txt" file,
-	it will be copied to the connector-lib directory with the name {connector}-README.txt.
-        If the required libraries are not present, the same file will also be copied to {connector}-PLACEHOLDER.txt.
-    (2) If there's a build-stub directory, we presume that the connector requires one or
-        more proprietary libraries to run, but can be built without proprietary libraries through
-        the use of stubs.  In this case the connector MAY also have a
-        "proprietary-library-instructions.txt" file, if proprietary libraries are required at
-        runtime.  This file will be copied to the
-        connector-lib directory with the name {connector}-README.txt and to {connector}-PLACEHOLDER.txt,
-        as a placeholder for the required proprietary libraries.
-
-    A connector can have both a build-stub and a lib-proprietary directory.  In this case,
-    the connector will build against stubs but will deliver proprietary libraries to
-    connector-lib-proprietary for use at runtime, and the {connector}-README.txt
-    file will only be delivered to the connector-lib directory.
-    -->
-    
-    <target name="calculate-condition">
-        <available file="build.xml" property="build-present"/>
-    </target>
-
-    <target name="calculate-testcode-condition">
-        <available file="connector/src/test/java" property="tests-present"/>
-    </target>
-
-    <target name="calculate-run-condition">
-        <property name="libs-present" value="true"/>
-    </target>
-
-    <target name="precompile-warn" depends="calculate-condition" unless="build-present"/>
-
-    <target name="pretest-warn" depends="calculate-testcode-condition" unless="tests-present"/>
-
-    <target name="prerun-warn" depends="calculate-run-condition" unless="libs-present"/>
-
-
-    <target name="precompile-check" depends="precompile-warn">
-        <condition property="canBuild">
-            <isset property="build-present"/>
-        </condition>
-    </target>
-    
-    <target name="pretest-check" depends="precompile-warn,pretest-warn">
-        <condition property="canTest">
-            <and>
-                <isset property="build-present"/>
-                <isset property="tests-present"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="prerun-check" depends="precompile-warn,prerun-warn">
-        <condition property="canRun">
-            <and>
-                <isset property="build-present"/>
-                <isset property="libs-present"/>
-            </and>
-        </condition>
-    </target>
-
-    <target name="has-stubs-check" depends="precompile-check" if="canBuild">
-        <available file="build-stub/src/main/java" property="hasStubs"/>
-    </target>
-
-    <target name="has-proprietary-materials-check">
-    </target>
-    
-    <target name="build-stubs-check" depends="has-stubs-check,has-proprietary-materials-check" if="hasStubs">
-        <condition property="buildStubs">
-            <not>
-                <isset property="proprietaryMaterialsAvailable"/>
-            </not>
-        </condition>
-    </target>
-
-    <target name="include-README-lib-proprietary-check" depends="precompile-check" if="canBuild">
-        <available file="proprietary-library-instructions.txt" property="includeREADMELibProprietary"/>
-    </target>
-    
-    <target name="include-proprietary-instructions-lib-proprietary-check" depends="prerun-check" unless="canRun">
-        <available file="proprietary-library-instructions.txt" property="includeProprietaryInstructionsLibProprietary"/>
-    </target>
-
-    <target name="compile-stubs" depends="build-stubs-check" if="buildStubs">
-        <mkdir dir="build/stubclasses"/>
-        <javac srcdir="build-stub/src/main/java" destdir="build/stubclasses" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
-            <classpath>
-            </classpath>
-        </javac>
-    </target>
-
-    <target name="has-tests-check" depends="precompile-check" if="canBuild">
-        <available file="connector/src/test/java" property="hasTests"/>
-    </target>
-
-    <target name="has-test-resources-check" depends="has-tests-check" if="hasTests">
-        <available file="connector/src/test/resources" property="hasTestResources"/>
-    </target>
-
-    <target name="has-native2ascii-check" depends="precompile-check" if="canBuild">
-        <available file="connector/src/main/native2ascii" property="hasNative2Ascii"/>
-    </target>
-
-    <target name="has-resources-check" depends="precompile-check" if="canBuild">
-        <available file="connector/src/main/resources" property="hasResources"/>
-    </target>
-
-    <target name="has-RMI-check" depends="precompile-check" if="canBuild">
-        <available file="implementation" property="hasImplementation"/>
-        <available file="interface" property="hasInterface"/>
-        <available file="server" property="hasServer"/>
-        <available file="registry" property="hasRegistry"/>
-        <condition property="hasRMI">
-            <and>
-                <isset property="hasImplementation"/>
-                <isset property="hasInterface"/>
-                <isset property="hasServer"/>
-                <isset property="hasRegistry"/>
-            </and>
-        </condition>
-    </target>
-    
-    <target name="classcreate-wsdl">
-        <mkdir dir="build/wsdljava"/>
-        <java classname="org.apache.axis.wsdl.WSDL2Java" fork="true">
-            <classpath>
-                <fileset dir="../../lib">
-                    <include name="axis*.jar"/>
-                    <include name="saaj*.jar"/>
-                    <include name="wsdl*.jar"/>
-                    <include name="mail*.jar"/>
-                    <include name="activation*.jar"/>
-                    <include name="commons-discovery*.jar"/>
-                    <include name="commons-logging*.jar"/>
-                </fileset>
-            </classpath>
-            <jvmarg value="-Dfile.encoding=UTF-8"/>
-            <arg value="--timeout"/>
-            <arg value="0"/>
-            <arg value="--noImports"/>
-            <arg value="-o"/>
-            <arg value="build/wsdljava"/>
-            <arg value="${wsdlname}"/>
-        </java>
-    </target>
-
-    <target name="classcreate-xsd">
-        <mkdir dir="build/xsdjava"/>
-        <java classname="org.exolab.castor.builder.SourceGeneratorMain" fork="true">
-            <classpath>
-                <fileset dir="../../lib">
-                    <include name="castor*.jar"/>
-                    <include name="geronimo-activation_1.1_spec*.jar"/>
-                    <include name="geronimo-javamail_1.4_spec*.jar"/>
-                    <include name="xerces*.jar"/>
-                    <include name="commons-logging*.jar"/>
-                </fileset>
-            </classpath>
-            <jvmarg value="-Dfile.encoding=UTF-8"/>
-            <arg value="-i"/>
-            <arg value="${xsdname}"/>
-            <arg value="=f"/>
-            <arg value="-dest"/>
-            <arg value="build/xsdjava"/>
-            <arg value="-package"/>
-            <arg value="org.apache.manifoldcf.crawler.connectors.${packagename}"/>
-        </java>
-    </target>
-
-    <target name="classcreate-wsdls"/>
-
-    <target name="has-wsdls-check" depends="classcreate-wsdls,precompile-check" if="canBuild">
-        <available file="build/wsdljava" property="hasWSDLs"/>
-    </target>
-
-    <target name="compile-wsdls" depends="has-wsdls-check" if="hasWSDLs">
-        <mkdir dir="build/wsdlclasses"/>
-        <javac srcdir="build/wsdljava" destdir="build/wsdlclasses" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
-            <classpath>
-                <fileset dir="../../lib">
-                    <include name="axis*.jar"/>
-                    <include name="saaj*.jar"/>
-                    <include name="wsdl*.jar"/>
-                    <include name="activation*.jar"/>
-                    <include name="commons-discovery*.jar"/>
-                    <include name="commons-logging*.jar"/>
-                </fileset>
-            </classpath>
-        </javac>
-    </target>
-
-    <target name="classcreate-xsds"/>
-    
-    <target name="has-xsds-check" depends="classcreate-xsds,precompile-check" if="canBuild">
-        <available file="build/xsdjava" property="hasXSDs"/>
-    </target>
-
-    <target name="compile-xsds" depends="has-xsds-check" if="hasXSDs">
-        <mkdir dir="build/xsdclasses"/>
-        <javac srcdir="build/xsdjava" destdir="build/xsdclasses" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
-            <classpath>
-                <fileset dir="../../lib">
-                    <include name="castor*.jar"/>
-                </fileset>
-            </classpath>
-        </javac>
-    </target>
-
-    <target name="setup-rmic" depends="has-RMI-check" if="hasRMI">
-        <mkdir dir="build/rmijava"/>
-        <copy todir="build/rmijava">
-            <fileset dir="implementation/src/main/java"/>
-        </copy>
-    </target>
-
-    <target name="rmic-build">
-        <rmic base="build/rmijava" classname="${classname}">
-            <classpath>
-                <path refid="implementation-classpath"/>
-                <pathelement location="build/implementation/classes"/>
-            </classpath>
-        </rmic>
-    </target>
-
-    <target name="rmic-build-all" depends="compile-implementation,compile-interface,setup-rmic,has-RMI-check" if="hasRMI"/>
-
-    <target name="doc-rmi" depends="compile-wsdls,compile-xsds,has-RMI-check" if="hasRMI">
-        <mkdir dir="dist/doc"/>
-        <javadoc destdir="dist/doc" source="1.6">
-            <classpath>
-                <path refid="connector-classpath"/>
-            </classpath>
-            <fileset dir="interface/src/main/java" includes="**/*.java"/>
-            <fileset dir="connector/src/main/java" includes="**/*.java"/>
-        </javadoc>
-    </target>
-
-    <target name="doc" depends="compile-stubs,doc-rmi,compile-wsdls,compile-xsds,has-RMI-check,precompile-check" if="canBuild" unless="hasRMI">
-        <mkdir dir="dist/doc"/>
-        <javadoc destdir="dist/doc" source="1.6">
-            <classpath>
-                <path refid="connector-classpath"/>
-            </classpath>
-            <fileset dir="connector/src/main/java" includes="**/*.java"/>
-        </javadoc>
-    </target>
-
-    <target name="compile-connector-resources" depends="has-resources-check" if="hasResources">
-        <mkdir dir="build/connector/classes"/>
-        <copy todir="build/connector/classes">
-            <fileset dir="connector/src/main/resources"/>
-        </copy>
-    </target>
-
-    <target name="compile-connector-native2ascii" depends="has-native2ascii-check" if="hasNative2Ascii">
-        <mkdir dir="build/connector/classes"/>
-        <native2ascii encoding="UTF-8" src="connector/src/main/native2ascii" dest="build/connector/classes" includes="**/*.properties" />
-    </target>
-    
-    <target name="compile-rmic" depends="rmic-build-all,has-RMI-check" if="hasRMI">
-        <mkdir dir="build/rmiskel/classes"/>
-        <copy todir="build/rmiskel/classes">
-            <fileset dir="build/rmijava">
-                <include name="**/*_Skel.class"/>
-            </fileset>
-        </copy>
-        <mkdir dir="build/rmistub/classes"/>
-        <copy todir="build/rmistub/classes">
-            <fileset dir="build/rmijava">
-                <include name="**/*_Stub.class"/>
-            </fileset>
-        </copy>
-    </target>
-    
-    <target name="compile-server" depends="compile-interface,compile-implementation,compile-rmic,has-RMI-check" if="hasRMI">
-        <mkdir dir="build/server/classes"/>
-        <javac srcdir="server/src/main/java" destdir="build/server/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
-            <classpath>
-                <pathelement location="build/interface/classes"/>
-                <pathelement location="build/implementation/classes"/>
-                <pathelement location="build/rmistub/classes"/>
-                <pathelement location="build/rmiskel/classes"/>
-            </classpath>
-        </javac>
-    </target>
-
-    <target name="compile-registry" depends="compile-interface,has-RMI-check" if="hasRMI">
-        <mkdir dir="build/registry/classes"/>
-        <javac srcdir="registry/src/main/java" destdir="build/registry/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
-            <classpath>
-                <pathelement location="build/interface/classes"/>
-            </classpath>
-        </javac>
-    </target>
-
-    <target name="compile-connector" depends="compile-stubs,compile-connector-native2ascii,compile-connector-resources,compile-wsdls,compile-xsds,compile-interface,compile-rmic,precompile-check" if="canBuild">
-        <mkdir dir="build/connector/classes"/>
-        <javac srcdir="connector/src/main/java" destdir="build/connector/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
-            <classpath>
-                <path refid="connector-classpath"/>
-            </classpath>
-        </javac>
-    </target>
-
-    <target name="compile-implementation" depends="compile-stubs,compile-interface,has-RMI-check" if="hasRMI">
-        <mkdir dir="build/implementation/classes"/>
-        <javac srcdir="implementation/src/main/java" destdir="build/implementation/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
-            <classpath>
-                <path refid="implementation-classpath"/>
-            </classpath>
-        </javac>
-    </target>
-
-    <target name="compile-interface" depends="has-RMI-check" if="hasRMI">
-        <mkdir dir="build/interface/classes"/>
-        <javac srcdir="interface/src/main/java" destdir="build/interface/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
-            <classpath>
-                <path refid="interface-classpath"/>
-            </classpath>
-        </javac>
-    </target>
-
-    <target name="compile-test-resources" depends="has-test-resources-check" if="hasTestResources">
-        <mkdir dir="build/connector-test/classes"/>
-        <copy todir="build/connector-test/classes">
-            <fileset dir="connector/src/test/resources"/>
-        </copy>
-    </target>
-
-    <target name="compile-tests" depends="compile-connector,compile-test-resources,has-tests-check" if="hasTests">
-        <mkdir dir="build/connector-tests/classes"/>
-        <javac srcdir="connector/src/test/java" destdir="build/connector-tests/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
-            <classpath>
-                <path refid="connector-test-classpath"/>
-            </classpath>
-        </javac>
-    </target>
-
-    <target name="jar-connector" depends="compile-connector,precompile-check" if="canBuild">
-        <mkdir dir="build/xsdclasses"/>
-        <mkdir dir="build/wsdlclasses"/>
-        <mkdir dir="build/jar"/>
-        <jar destfile="build/jar/mcf-${ant.project.name}-connector.jar">
-        	<fileset dir="build/connector/classes"/>
-          <fileset dir="build/xsdclasses"/>
-          <fileset dir="build/wsdlclasses"/>
-        </jar>
-    </target>
-
-    <target name="jar-tests" depends="compile-tests,has-tests-check" if="hasTests">
-        <mkdir dir="build/test-jar"/>
-        <jar destfile="build/test-jar/mcf-${ant.project.name}-connector-tests.jar" basedir="build/connector-tests/classes"/>
-    </target>
-
-    <target name="jar-interface" depends="compile-interface,has-RMI-check" if="hasRMI">
-        <mkdir dir="build/jar"/>
-        <jar destfile="build/jar/mcf-${ant.project.name}-connector-interface.jar" basedir="build/interface/classes"/>
-    </target>
-
-    <target name="jar-implementation" depends="compile-implementation,has-RMI-check" if="hasRMI">
-        <mkdir dir="build/jar"/>
-        <jar destfile="build/jar/mcf-${ant.project.name}-connector-implementation.jar" basedir="build/implementation/classes"/>
-    </target>
-
-    <target name="jar-rmiskel" depends="compile-rmic,has-RMI-check" if="hasRMI">
-        <mkdir dir="build/jar"/>
-        <jar destfile="build/jar/mcf-${ant.project.name}-connector-rmiskel.jar" basedir="build/rmiskel/classes"/>
-    </target>
-
-    <target name="jar-rmistub" depends="compile-rmic,has-RMI-check" if="hasRMI">
-        <mkdir dir="build/jar"/>
-        <jar destfile="build/jar/mcf-${ant.project.name}-connector-rmistub.jar" basedir="build/rmistub/classes"/>
-    </target>
-
-    <target name="jar-server" depends="compile-server,has-RMI-check" if="hasRMI">
-        <mkdir dir="build/jar"/>
-        <jar destfile="build/jar/mcf-${ant.project.name}-connector-server.jar" basedir="build/server/classes"/>
-    </target>
-
-    <target name="jar-registry" depends="compile-registry,has-RMI-check" if="hasRMI">
-        <mkdir dir="build/jar"/>
-        <jar destfile="build/jar/mcf-${ant.project.name}-connector-registry.jar" basedir="build/registry/classes"/>
-    </target>
-
-    <target name="lib-rmi" depends="jar-interface,jar-rmistub,has-RMI-check" if="hasRMI">
-        <mkdir dir="dist/lib"/>
-        <copy todir="dist/lib" file="build/jar/mcf-${ant.project.name}-connector-rmistub.jar"/>
-        <copy todir="dist/lib" file="build/jar/mcf-${ant.project.name}-connector-interface.jar"/>
-    </target>
-    
-    <target name="lib-wsdls" depends="has-wsdls-check" if="hasWSDLs">
-        <mkdir dir="dist/lib"/>
-        <copy todir="dist/lib">
-            <fileset dir="../../lib">
-                <include name="axis*.jar"/>
-                <include name="saaj*.jar"/>
-                <include name="wsdl*.jar"/>
-                <include name="activation*.jar"/>
-                <include name="commons-discovery*.jar"/>
-            </fileset>
-        </copy>
-    </target>
-
-    <target name="lib-xsds" depends="has-xsds-check" if="hasXSDs">
-        <mkdir dir="dist/lib"/>
-        <copy todir="dist/lib">
-            <fileset dir="../../lib">
-                <include name="castor*.jar"/>
-                <include name="geronimo-activation_1.1_spec*.jar"/>
-                <include name="geronimo-javamail_1.4_spec*.jar"/>
-            </fileset>
-        </copy>
-    </target>
-
-    <target name="lib" depends="lib-rmi,lib-wsdls,lib-xsds,jar-connector,precompile-check" if="canBuild">
-        <mkdir dir="dist/lib"/>
-        <copy todir="dist/lib" file="build/jar/mcf-${ant.project.name}-connector.jar"/>
-    </target>
-
-    <target name="lib-proprietary-README" depends="include-README-lib-proprietary-check" if="includeREADMELibProprietary">
-        <mkdir dir="dist/lib-proprietary-only"/>
-        <copy tofile="dist/lib-proprietary-only/${ant.project.name}-README.txt" file="proprietary-library-instructions.txt"/>
-    </target>
-    
-    <target name="lib-proprietary-instructions" depends="include-proprietary-instructions-lib-proprietary-check" if="includeProprietaryInstructionsLibProprietary">
-        <mkdir dir="dist/lib-proprietary-only"/>
-        <copy tofile="dist/lib-proprietary-only/${ant.project.name}-PLACEHOLDER.txt" file="proprietary-library-instructions.txt"/>
-    </target>
-    
-    <target name="server-process" depends="jar-interface,jar-implementation,jar-rmiskel,jar-server,has-RMI-check" if="hasRMI">
-        <mkdir dir="dist/server-process/lib"/>
-        <copy todir="dist/server-process/lib">
-            <fileset dir="build/jar">
-                <include name="mcf-${ant.project.name}-connector-server.jar"/>
-                <include name="mcf-${ant.project.name}-connector-interface.jar"/>
-                <include name="mcf-${ant.project.name}-connector-rmiskel.jar"/>
-                <include name="mcf-${ant.project.name}-connector-implementation.jar"/>
-            </fileset>
-        </copy>
-        <copy todir="dist/server-process">
-            <fileset dir="server-scripts">
-                <include name="*.sh"/>
-                <include name="*.bat"/>
-            </fileset>
-        </copy>
-    </target>
-
-    <target name="registry-process" depends="jar-registry,has-RMI-check" if="hasRMI">
-        <mkdir dir="dist/registry-process/lib"/>
-        <copy todir="dist/registry-process/lib">
-            <fileset dir="build/jar">
-                <include name="mcf-${ant.project.name}-connector-registry.jar"/>
-                <include name="mcf-${ant.project.name}-connector-interface.jar"/>
-            </fileset>
-        </copy>
-        <copy todir="dist/registry-process">
-            <fileset dir="registry-scripts">
-                <include name="*.sh"/>
-                <include name="*.bat"/>
-            </fileset>
-        </copy>
-    </target>
-
-    <target name="integration"/>
-
-    <target name="build" depends="lib,lib-proprietary-instructions,lib-proprietary-README,server-process,registry-process,integration"/>
-    
-    <target name="build-tests" depends="build,jar-tests"/>
-
-    <target name="build-test-materials"/>
-
-    <target name="run-tests" depends="compile-tests,has-tests-check" if="hasTests">
-        <mkdir dir="test-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <classpath>
-                <path refid="connector-test-classpath"/>
-                <pathelement location="build/connector-tests/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-output">
-                <fileset dir="build/connector-tests/classes">
-                    <include name="**/*Test.class"/>
-                    <exclude name="**/*DerbyTest.class"/>
-                    <exclude name="**/*PostgresqlTest.class"/>
-                    <exclude name="**/*MySQLTest.class"/>
-                    <exclude name="**/*HSQLDBTest.class"/>
-                    <exclude name="**/*HSQLDBextTest.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-
-    <target name="run-tests-derby" depends="compile-tests,has-tests-check" if="hasTests">
-        <mkdir dir="test-derby-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-derby-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <classpath>
-                <path refid="connector-test-classpath"/>
-                <pathelement location="build/connector-tests/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-derby-output">
-                <fileset dir="build/connector-tests/classes">
-                    <include name="**/*DerbyTest.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-    
-    <target name="run-tests-postgresql" depends="compile-tests,has-tests-check" if="hasTests">
-        <mkdir dir="test-postgresql-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-postgresql-output" showoutput="true" haltonfailure="true">
-            <classpath>
-                <path refid="connector-test-classpath"/>
-                <pathelement location="build/connector-tests/classes"/>
-            </classpath>
-            <batchtest todir="test-postgresql-output">
-                <fileset dir="build/connector-tests/classes">
-                    <include name="**/*PostgresqlTest.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-
-    <target name="run-tests-mysql" depends="compile-tests,has-tests-check" if="hasTests">
-        <mkdir dir="test-mysql-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-mysql-output" showoutput="true" haltonfailure="true">
-            <classpath>
-                <path refid="connector-test-classpath"/>
-                <pathelement location="build/connector-tests/classes"/>
-            </classpath>
-            <batchtest todir="test-mysql-output">
-                <fileset dir="build/connector-tests/classes">
-                    <include name="**/*MySQLTest.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-
-    <target name="run-tests-HSQLDB" depends="compile-tests,has-tests-check" if="hasTests">
-        <mkdir dir="test-HSQLDB-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-HSQLDB-output" showoutput="true" haltonfailure="true">
-            <classpath>
-                <path refid="connector-test-classpath"/>
-                <pathelement location="build/connector-tests/classes"/>
-            </classpath>
-            <batchtest todir="test-HSQLDB-output">
-                <fileset dir="build/connector-tests/classes">
-                    <include name="**/*HSQLDBTest.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-
-    <target name="run-tests-HSQLDBext" depends="compile-tests,has-tests-check" if="hasTests">
-        <mkdir dir="test-HSQLDBext-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-HSQLDBext-output" showoutput="true" haltonfailure="true">
-            <classpath>
-                <path refid="connector-test-classpath"/>
-                <pathelement location="build/connector-tests/classes"/>
-            </classpath>
-            <batchtest todir="test-HSQLDBext-output">
-                <fileset dir="build/connector-tests/classes">
-                    <include name="**/*HSQLDBextTest.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-
-    <target name="download-dependencies"/>
-
-    <target name="download-cleanup"/>
-    
-    <target name="all" depends="build,doc,build-tests,run-tests,run-tests-derby,run-tests-HSQLDB"/>
-
-</project>
diff --git a/connectors/documentum/build.xml b/connectors/documentum/build.xml
index 8c6442a..ca59993 100644
--- a/connectors/documentum/build.xml
+++ b/connectors/documentum/build.xml
@@ -17,7 +17,18 @@
 
 <project name="documentum" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
 
     <target name="has-proprietary-materials-check">
         <available file="lib-proprietary/dfc.jar" property="dfcStatus"/>
@@ -64,4 +75,15 @@
         <copy todir="dist/server-process/lib-proprietary" file="server/README.txt"/>
     </target>
 
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-authority-connector">
+            <param name="connector-label" value="Documentum"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.authorities.DCTM.AuthorityConnector"/>
+        </antcall>
+        <antcall target="general-add-repository-connector">
+            <param name="connector-label" value="Documentum"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.DCTM.DCTM"/>
+        </antcall>
+    </target>
+
 </project>
diff --git a/connectors/dropbox/build.xml b/connectors/dropbox/build.xml
index bdfa11b..0f8cfbb 100644
--- a/connectors/dropbox/build.xml
+++ b/connectors/dropbox/build.xml
@@ -17,7 +17,18 @@
 

 <project name="dropbox" default="all">

 

-    <import file="../connector-build.xml"/>

+    <property environment="env"/>

+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">

+        <isset property="env.MCFDISTPATH"/>

+    </condition>

+    <property name="abs-dist" location="../../dist"/>

+    <condition property="mcf-dist" value="${abs-dist}">

+        <not>

+            <isset property="env.MCFDISTPATH"/>

+        </not>

+    </condition>

+

+    <import file="${mcf-dist}/connector-build.xml"/>

 

     <path id="connector-classpath">

         <path refid="mcf-connector-build.connector-classpath"/>

@@ -37,4 +48,11 @@
         </copy>

     </target>

 

+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">

+        <antcall target="general-add-repository-connector">

+            <param name="connector-label" value="DropBox"/>

+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.dropbox.DropboxRepositoryConnector"/>

+        </antcall>

+    </target>

+

 </project>

diff --git a/connectors/dropbox/pom.xml b/connectors/dropbox/pom.xml
index 946f465..9259cb2 100644
--- a/connectors/dropbox/pom.xml
+++ b/connectors/dropbox/pom.xml
@@ -37,33 +37,41 @@
         </developer>

     </developers>

 

+  <properties>

+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

+  </properties>

+

     <artifactId>mcf-dropbox-connector</artifactId>

     <name>ManifoldCF - Connectors - Dropbox</name>

 

-

-    <properties>

-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

-    </properties>

-

     <build>

+        <defaultGoal>integration-test</defaultGoal>

         <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>

         <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>

         <resources>

-            <resource>

-                <directory>${basedir}/connector/src/main/resources</directory>

-                <includes>

-                    <include>**/*.html</include>

-                    <include>**/*.js</include>

-                </includes>

-            </resource>

-            <resource>

-                <directory>${basedir}/connector/src/main/native2ascii</directory>

-                <includes>

-                    <include>**/*.properties</include>

-                </includes>

-            </resource>

-        </resources>

+          <resource>

+            <directory>${basedir}/connector/src/main/native2ascii</directory>

+            <includes>

+              <include>**/*.properties</include>

+            </includes>

+          </resource>

+          <resource>

+            <directory>${basedir}/connector/src/main/resources</directory>

+            <includes>

+              <include>**/*.html</include>

+              <include>**/*.js</include>

+            </includes>

+          </resource>

+        </resources> 

+        <testResources>

+          <testResource>

+            <directory>${basedir}/connector/src/test/resources</directory>

+          </testResource>

+        </testResources>

+    

         <plugins>

+

             <plugin>

                 <groupId>org.codehaus.mojo</groupId>

                 <artifactId>native2ascii-maven-plugin</artifactId>

@@ -88,22 +96,101 @@
             </plugin>

 

             <plugin>

-                <groupId>org.apache.maven.plugins</groupId>

-                <artifactId>maven-surefire-plugin</artifactId>

-                <configuration>

-                    <excludes>

-                        <exclude>**/*Postgresql*.java</exclude>

-                        <exclude>**/*MySQL*.java</exclude>

-                    </excludes>

-                    <forkMode>always</forkMode>

-                    <workingDirectory>target/test-output</workingDirectory>

-                </configuration>

+              <artifactId>maven-dependency-plugin</artifactId>

+              <executions>

+                 <execution>

+                  <id>copy-war</id>

+                  <phase>generate-resources</phase>

+                  <goals>

+                    <goal>copy</goal>

+                  </goals>

+                  <configuration>

+                    <outputDirectory>target/dependency</outputDirectory>

+                    <artifactItems>

+                      <artifactItem>

+                        <groupId>${project.groupId}</groupId>

+                        <artifactId>mcf-api-service</artifactId>

+                        <version>${project.version}</version>

+                        <type>war</type>

+                        <overWrite>false</overWrite>

+                        <destFileName>mcf-api-service.war</destFileName>

+                      </artifactItem>

+                      <artifactItem>

+                        <groupId>${project.groupId}</groupId>

+                        <artifactId>mcf-authority-service</artifactId>

+                        <version>${project.version}</version>

+                        <type>war</type>

+                        <overWrite>false</overWrite>

+                        <destFileName>mcf-authority-service.war</destFileName>

+                      </artifactItem>

+                      <artifactItem>

+                        <groupId>${project.groupId}</groupId>

+                        <artifactId>mcf-crawler-ui</artifactId>

+                        <version>${project.version}</version>

+                        <type>war</type>

+                        <overWrite>false</overWrite>

+                        <destFileName>mcf-crawler-ui.war</destFileName>

+                      </artifactItem>

+                    </artifactItems>

+                  </configuration>

+                </execution>

+              </executions>

+            </plugin>

+

+            <!-- Test plugin configuration -->

+            <plugin>

+              <groupId>org.apache.maven.plugins</groupId>

+              <artifactId>maven-surefire-plugin</artifactId>

+              <configuration>

+                <excludes>

+                  <exclude>**/*Postgresql*.java</exclude>

+                  <exclude>**/*MySQL*.java</exclude>

+                </excludes>

+                <forkMode>always</forkMode>

+                <workingDirectory>target/test-output</workingDirectory>

+              </configuration>

+            </plugin>

+

+            <plugin>

+              <groupId>org.apache.maven.plugins</groupId>

+              <artifactId>maven-failsafe-plugin</artifactId>

+              <version>2.12.3</version>

+              <configuration>

+                <skipTests>${skipITs}</skipTests>

+                <systemPropertyVariables>

+                  <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>

+                  <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>

+                  <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>

+                </systemPropertyVariables>

+                <excludes>

+                  <exclude>**/*Postgresql*.java</exclude>

+                  <exclude>**/*MySQL*.java</exclude>

+                </excludes>

+                <forkMode>always</forkMode>

+                <workingDirectory>target/test-output</workingDirectory>

+              </configuration>

+              <executions>

+                <execution>

+                  <id>integration-test</id>

+                  <goals>

+                    <goal>integration-test</goal>

+                  </goals>

+                </execution>

+                <execution>

+                  <id>verify</id>

+                  <goals>

+                    <goal>verify</goal>

+                  </goals>

+                </execution>

+              </executions>

             </plugin>

 

         </plugins>

     </build>

 

     <dependencies>

+

+        <!-- Main -->

         <dependency>

             <groupId>${project.groupId}</groupId>

             <artifactId>mcf-core</artifactId>

@@ -154,5 +241,163 @@
             <version>${log4j.version}</version>

             <type>jar</type>

         </dependency>

+        

+        <!-- Tests -->

+        <dependency>

+          <groupId>junit</groupId>

+          <artifactId>junit</artifactId>

+          <version>${junit.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-core</artifactId>

+          <version>${project.version}</version>

+          <type>test-jar</type>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-agents</artifactId>

+          <version>${project.version}</version>

+          <type>test-jar</type>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-pull-agent</artifactId>

+          <version>${project.version}</version>

+          <type>test-jar</type>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

+          <groupId>postgresql</groupId>

+          <artifactId>postgresql</artifactId>

+          <version>${postgresql.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.hsqldb</groupId>

+          <artifactId>hsqldb</artifactId>

+          <version>${hsqldb.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.apache.derby</groupId>

+          <artifactId>derby</artifactId>

+          <version>${derby.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>mysql</groupId>

+          <artifactId>mysql-connector-java</artifactId>

+          <version>${mysql.version}</version>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-api-service</artifactId>

+          <version>${project.version}</version>

+          <type>war</type>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-authority-service</artifactId>

+          <version>${project.version}</version>

+          <type>war</type>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-crawler-ui</artifactId>

+          <version>${project.version}</version>

+          <type>war</type>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-server</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-util</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-webapp</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-servlet</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-http</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-io</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-security</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-continuation</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-xml</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

+          <groupId>org.mortbay.jetty</groupId>

+          <artifactId>jsp-api-2.1-glassfish</artifactId>

+          <version>${glassfish.version}</version>

+          <scope>test</scope>

+        </dependency>    

+        <dependency>

+          <groupId>org.mortbay.jetty</groupId>

+          <artifactId>jsp-2.1-glassfish</artifactId>

+          <version>${glassfish.version}</version>

+          <scope>test</scope>

+        </dependency>

+        

+        <dependency>

+          <groupId>org.slf4j</groupId>

+          <artifactId>slf4j-api</artifactId>

+          <version>${slf4j.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.slf4j</groupId>

+          <artifactId>slf4j-simple</artifactId>

+          <version>${slf4j.version}</version>

+          <scope>test</scope>

+        </dependency>

+

     </dependencies>

 </project>

diff --git a/connectors/elasticsearch/build.xml b/connectors/elasticsearch/build.xml
index beffc64..d1eac70 100644
--- a/connectors/elasticsearch/build.xml
+++ b/connectors/elasticsearch/build.xml
@@ -17,7 +17,18 @@
 
 <project name="elasticsearch" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
 
     <target name="download-dependencies">
         
@@ -57,4 +68,23 @@
         </copy>
     </target>
 
+    <target name="calculate-testcode-condition">
+        <available file="test-materials-proprietary" property="tests-present"/>
+    </target>
+
+    <path id="connector-test-classpath">
+        <path refid="mcf-connector-build.connector-test-classpath"/>
+        <fileset dir="test-materials-proprietary/elasticsearch-1.0.1">
+            <include name="lib/*.jar"/>
+        	  <include name="plugins/mapper-attachments/*.jar"/>
+        </fileset>
+    </path>
+
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-output-connector">
+            <param name="connector-label" value="ElasticSearch"/>
+            <param name="connector-class" value="org.apache.manifoldcf.agents.output.elasticsearch.ElasticSearchConnector"/>
+        </antcall>
+    </target>
+
 </project>
diff --git a/connectors/elasticsearch/connector/src/test/java/org/apache/manifoldcf/agents/output/elasticsearch/tests/APISanityDerbyIT.java b/connectors/elasticsearch/connector/src/test/java/org/apache/manifoldcf/agents/output/elasticsearch/tests/APISanityDerbyIT.java
new file mode 100644
index 0000000..93043fb
--- /dev/null
+++ b/connectors/elasticsearch/connector/src/test/java/org/apache/manifoldcf/agents/output/elasticsearch/tests/APISanityDerbyIT.java
@@ -0,0 +1,351 @@
+/* $Id$ */
+
+/**
+* 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.
+*/
+package org.apache.manifoldcf.agents.output.elasticsearch.tests;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.math.BigInteger;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.manifoldcf.core.interfaces.Configuration;
+import org.apache.manifoldcf.core.interfaces.ConfigurationNode;
+import org.apache.manifoldcf.core.interfaces.ManifoldCFException;
+import org.apache.manifoldcf.crawler.system.ManifoldCF;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * @author Piergiorgio Lucidi
+ */
+public class APISanityDerbyIT extends BaseITDerby
+{
+  
+  @Test
+  public void sanityCheck()
+    throws Exception
+  {
+    try
+    {
+      
+      int i;
+
+      // Create a basic file system connection, and save it.
+      ConfigurationNode connectionObject;
+      ConfigurationNode child;
+      Configuration requestObject;
+      Configuration result;
+      
+      connectionObject = new ConfigurationNode("repositoryconnection");
+      
+      child = new ConfigurationNode("name");
+      child.setValue("Test Connection");
+      connectionObject.addChild(connectionObject.getChildCount(),child);
+      
+      child = new ConfigurationNode("class_name");
+      child.setValue("org.apache.manifoldcf.crawler.tests.TestingRepositoryConnector");
+      connectionObject.addChild(connectionObject.getChildCount(),child);
+      
+      child = new ConfigurationNode("description");
+      child.setValue("Test Connection");
+      connectionObject.addChild(connectionObject.getChildCount(),child);
+
+      child = new ConfigurationNode("max_connections");
+      child.setValue("10");
+      connectionObject.addChild(connectionObject.getChildCount(),child);
+      
+      child = new ConfigurationNode("configuration");
+      
+      //Testing Repository Connector parameters
+      
+      // MHL
+      
+      /*
+      ConfigurationNode cmisBindingNode = new ConfigurationNode("_PARAMETER_");
+      cmisBindingNode.setAttribute("name", CmisConfig.BINDING_PARAM);
+      cmisBindingNode.setValue(CmisConfig.BINDING_DEFAULT_VALUE);
+      child.addChild(child.getChildCount(), cmisBindingNode);
+      */
+      
+      connectionObject.addChild(connectionObject.getChildCount(),child);
+
+      requestObject = new Configuration();
+      requestObject.addChild(0,connectionObject);
+      
+      result = performAPIPutOperationViaNodes("repositoryconnections/Test%20Connection",201,requestObject);
+      
+      i = 0;
+      while (i < result.getChildCount())
+      {
+        ConfigurationNode resultNode = result.findChild(i++);
+        if (resultNode.getType().equals("error"))
+          throw new Exception(resultNode.getValue());
+      }
+      
+      // Create a basic null output connection, and save it.
+      connectionObject = new ConfigurationNode("outputconnection");
+      
+      child = new ConfigurationNode("name");
+      child.setValue("ElasticSearch");
+      connectionObject.addChild(connectionObject.getChildCount(),child);
+      
+      child = new ConfigurationNode("class_name");
+      child.setValue("org.apache.manifoldcf.agents.output.elasticsearch.ElasticSearchConnector");
+      connectionObject.addChild(connectionObject.getChildCount(),child);
+      
+      child = new ConfigurationNode("description");
+      child.setValue("ElasticSearch Connection");
+      connectionObject.addChild(connectionObject.getChildCount(),child);
+
+      child = new ConfigurationNode("max_connections");
+      child.setValue("100");
+      connectionObject.addChild(connectionObject.getChildCount(),child);
+
+      child = new ConfigurationNode("configuration");
+      
+      //ElasticSearch Output Connector parameters
+      
+      //serverlocation
+      ConfigurationNode serverLocation = new ConfigurationNode("_PARAMETER_");
+      serverLocation.setAttribute("name", "serverlocation");
+      serverLocation.setValue("http://localhost:9200");
+      child.addChild(child.getChildCount(), serverLocation);
+      
+      //indexname
+      ConfigurationNode indexName = new ConfigurationNode("_PARAMETER_");
+      indexName.setAttribute("name", "indexname");
+      indexName.setValue("index");
+      child.addChild(child.getChildCount(), indexName);
+      
+      //indextype
+      ConfigurationNode indexType = new ConfigurationNode("_PARAMETER_");
+      indexType.setAttribute("name", "indextype");
+      indexType.setValue("generictype");
+      child.addChild(child.getChildCount(), indexType);
+      
+      connectionObject.addChild(connectionObject.getChildCount(),child);
+      
+      requestObject = new Configuration();
+      requestObject.addChild(0,connectionObject);
+      
+      result = performAPIPutOperationViaNodes("outputconnections/ElasticSearch",201,requestObject);
+      
+      i = 0;
+      while (i < result.getChildCount())
+      {
+        ConfigurationNode resultNode = result.findChild(i++);
+        if (resultNode.getType().equals("error"))
+          throw new Exception(resultNode.getValue());
+      }
+
+      // Create a job.
+      ConfigurationNode jobObject = new ConfigurationNode("job");
+      
+      child = new ConfigurationNode("description");
+      child.setValue("Test Job");
+      jobObject.addChild(jobObject.getChildCount(),child);
+
+      child = new ConfigurationNode("repository_connection");
+      child.setValue("Test Connection");
+      jobObject.addChild(jobObject.getChildCount(),child);
+
+      child = new ConfigurationNode("output_connection");
+      child.setValue("ElasticSearch");
+      jobObject.addChild(jobObject.getChildCount(),child);
+
+      child = new ConfigurationNode("run_mode");
+      child.setValue("scan once");
+      jobObject.addChild(jobObject.getChildCount(),child);
+
+      child = new ConfigurationNode("start_mode");
+      child.setValue("manual");
+      jobObject.addChild(jobObject.getChildCount(),child);
+
+      child = new ConfigurationNode("hopcount_mode");
+      child.setValue("accurate");
+      jobObject.addChild(jobObject.getChildCount(),child);
+
+      child = new ConfigurationNode("document_specification");
+      
+      jobObject.addChild(jobObject.getChildCount(),child);
+      
+      requestObject = new Configuration();
+      requestObject.addChild(0,jobObject);
+      
+      result = performAPIPostOperationViaNodes("jobs",201,requestObject);
+      
+      String jobIDString = null;
+      i = 0;
+      while (i < result.getChildCount())
+      {
+        ConfigurationNode resultNode = result.findChild(i++);
+        if (resultNode.getType().equals("error"))
+          throw new Exception(resultNode.getValue());
+        else if (resultNode.getType().equals("job_id"))
+          jobIDString = resultNode.getValue();
+      }
+      if (jobIDString == null)
+        throw new Exception("Missing job_id from return!");
+      
+      // Now, start the job, and wait until it completes.
+      startJob(jobIDString);
+      waitJobInactive(jobIDString, 120000L);
+
+      // Check to be sure we actually processed the right number of documents.
+      // The test data area has 3 documents and one directory, and we have to count the root directory too.
+      long count;
+      count = getJobDocumentsProcessed(jobIDString);
+      if (count != 3)
+        throw new ManifoldCFException("Wrong number of documents processed - expected 3, saw "+new Long(count).toString());
+      
+      // Now, delete the job.
+      deleteJob(jobIDString);
+
+      waitJobDeleted(jobIDString, 120000L);
+      
+      // Cleanup is automatic by the base class, so we can feel free to leave jobs and connections lying around.
+    }
+    catch (Exception e)
+    {
+      e.printStackTrace();
+      throw e;
+    }
+  }
+  
+  protected void startJob(String jobIDString)
+    throws Exception
+  {
+    Configuration requestObject = new Configuration();
+    
+    Configuration result = performAPIPutOperationViaNodes("start/"+jobIDString,201,requestObject);
+    int i = 0;
+    while (i < result.getChildCount())
+    {
+      ConfigurationNode resultNode = result.findChild(i++);
+      if (resultNode.getType().equals("error"))
+        throw new Exception(resultNode.getValue());
+    }
+  }
+  
+  protected void deleteJob(String jobIDString)
+    throws Exception
+  {
+    Configuration result = performAPIDeleteOperationViaNodes("jobs/"+jobIDString,200);
+    int i = 0;
+    while (i < result.getChildCount())
+    {
+      ConfigurationNode resultNode = result.findChild(i++);
+      if (resultNode.getType().equals("error"))
+        throw new Exception(resultNode.getValue());
+    }
+
+  }
+  
+  protected String getJobStatus(String jobIDString)
+    throws Exception
+  {
+    Configuration result = performAPIGetOperationViaNodes("jobstatuses/"+jobIDString,200);
+    String status = null;
+    int i = 0;
+    while (i < result.getChildCount())
+    {
+      ConfigurationNode resultNode = result.findChild(i++);
+      if (resultNode.getType().equals("error"))
+        throw new Exception(resultNode.getValue());
+      else if (resultNode.getType().equals("jobstatus"))
+      {
+        int j = 0;
+        while (j < resultNode.getChildCount())
+        {
+          ConfigurationNode childNode = resultNode.findChild(j++);
+          if (childNode.getType().equals("status"))
+            status = childNode.getValue();
+        }
+      }
+    }
+    return status;
+  }
+
+  protected long getJobDocumentsProcessed(String jobIDString)
+    throws Exception
+  {
+    Configuration result = performAPIGetOperationViaNodes("jobstatuses/"+jobIDString,200);
+    String documentsProcessed = null;
+    int i = 0;
+    while (i < result.getChildCount())
+    {
+      ConfigurationNode resultNode = result.findChild(i++);
+      if (resultNode.getType().equals("error"))
+        throw new Exception(resultNode.getValue());
+      else if (resultNode.getType().equals("jobstatus"))
+      {
+        int j = 0;
+        while (j < resultNode.getChildCount())
+        {
+          ConfigurationNode childNode = resultNode.findChild(j++);
+          if (childNode.getType().equals("documents_processed"))
+            documentsProcessed = childNode.getValue();
+        }
+      }
+    }
+    if (documentsProcessed == null)
+      throw new Exception("Expected a documents_processed field, didn't find it");
+    return new Long(documentsProcessed).longValue();
+  }
+
+  protected void waitJobInactive(String jobIDString, long maxTime)
+    throws Exception
+  {
+    long startTime = System.currentTimeMillis();
+    while (System.currentTimeMillis() < startTime + maxTime)
+    {
+      String status = getJobStatus(jobIDString);
+      if (status == null)
+        throw new Exception("No such job: '"+jobIDString+"'");
+      if (status.equals("not yet run"))
+        throw new Exception("Job was never started.");
+      if (status.equals("done"))
+        return;
+      if (status.equals("error"))
+        throw new Exception("Job reports error.");
+      ManifoldCF.sleep(1000L);
+      continue;
+    }
+    throw new ManifoldCFException("ManifoldCF did not terminate in the allotted time of "+new Long(maxTime).toString()+" milliseconds");
+  }
+  
+  protected void waitJobDeleted(String jobIDString, long maxTime)
+    throws Exception
+  {
+    long startTime = System.currentTimeMillis();
+    while (System.currentTimeMillis() < startTime + maxTime)
+    {
+      String status = getJobStatus(jobIDString);
+      if (status == null)
+        return;
+      ManifoldCF.sleep(1000L);
+    }
+    throw new ManifoldCFException("ManifoldCF did not delete in the allotted time of "+new Long(maxTime).toString()+" milliseconds");
+  }
+    
+
+}
diff --git a/connectors/elasticsearch/connector/src/test/java/org/apache/manifoldcf/agents/output/elasticsearch/tests/BaseITDerby.java b/connectors/elasticsearch/connector/src/test/java/org/apache/manifoldcf/agents/output/elasticsearch/tests/BaseITDerby.java
new file mode 100644
index 0000000..8685b41
--- /dev/null
+++ b/connectors/elasticsearch/connector/src/test/java/org/apache/manifoldcf/agents/output/elasticsearch/tests/BaseITDerby.java
@@ -0,0 +1,78 @@
+/* $Id$ */
+
+/**
+* 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.
+*/
+package org.apache.manifoldcf.agents.output.elasticsearch.tests;
+
+import org.elasticsearch.node.Node;
+import org.junit.After;
+import org.junit.Before;
+
+import org.eclipse.jetty.server.handler.ContextHandlerCollection;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.webapp.WebAppContext;
+
+import static org.elasticsearch.node.NodeBuilder.*;
+
+/**  
+ *  Base integration tests class for Elastic Search tested against a CMIS repository
+ *  @author Piergiorgio Lucidi
+ * 
+ * */
+public class BaseITDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
+{
+  protected Node node = null;
+
+  protected String[] getConnectorNames()
+  {
+    return new String[]{"CMIS"};
+  }
+  
+  protected String[] getConnectorClasses()
+  {
+    return new String[]{"org.apache.manifoldcf.crawler.tests.TestingRepositoryConnector"};
+  }
+
+  protected String[] getOutputNames()
+  {
+    return new String[]{"ElasticSearch"};
+  }
+  
+  protected String[] getOutputClasses()
+  {
+    return new String[]{"org.apache.manifoldcf.agents.output.elasticsearch.ElasticSearchConnector"};
+  }
+
+  @Before
+  public void setupElasticSearch()
+    throws Exception
+  {
+    //Initialize ElasticSearch server
+    //the default port is 9200
+    System.out.println("ElasticSearch is starting...");
+    node = nodeBuilder().local(true).node();
+    System.out.println("ElasticSearch is started on port 9200");
+  }
+  
+  
+  @After
+  public void cleanUpElasticSearch(){
+    if(node!=null)
+      node.close();
+  }
+  
+}
diff --git a/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/BaseUIDerby.java b/connectors/elasticsearch/connector/src/test/java/org/apache/manifoldcf/agents/output/elasticsearch/tests/BaseUIDerby.java
similarity index 77%
copy from tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/BaseUIDerby.java
copy to connectors/elasticsearch/connector/src/test/java/org/apache/manifoldcf/agents/output/elasticsearch/tests/BaseUIDerby.java
index 82cbd19..ac0d4d7 100644
--- a/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/BaseUIDerby.java
+++ b/connectors/elasticsearch/connector/src/test/java/org/apache/manifoldcf/agents/output/elasticsearch/tests/BaseUIDerby.java
@@ -16,30 +16,29 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.alfresco_tests;
-
+package org.apache.manifoldcf.agents.output.elasticsearch.tests;
 
 /** Tests that run the "agents daemon" should be derived from this */
 public class BaseUIDerby extends org.apache.manifoldcf.crawler.tests.ConnectorBaseUIDerby
 {
   protected String[] getConnectorNames()
   {
-    return new String[]{"Alfresco Connector"};
+    return new String[]{"Test Connector"};
   }
   
   protected String[] getConnectorClasses()
   {
-    return new String[]{"org.apache.manifoldcf.crawler.connectors.alfresco.AlfrescoRepositoryConnector"};
+    return new String[]{"org.apache.manifoldcf.crawler.tests.TestingRepositoryConnector"};
   }
   
   protected String[] getOutputNames()
   {
-    return new String[]{"Null Output"};
+    return new String[]{"ElasticSearch"};
   }
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.output.elasticsearch.ElasticSearchConnector"};
   }
 
 }
diff --git a/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/NavigationDerbyUI.java b/connectors/elasticsearch/connector/src/test/java/org/apache/manifoldcf/agents/output/elasticsearch/tests/NavigationDerbyUI.java
similarity index 88%
copy from tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/NavigationDerbyUI.java
copy to connectors/elasticsearch/connector/src/test/java/org/apache/manifoldcf/agents/output/elasticsearch/tests/NavigationDerbyUI.java
index 0313c07..b496ca1 100644
--- a/tests/alfresco/src/test/java/org/apache/manifoldcf/alfresco_tests/NavigationDerbyUI.java
+++ b/connectors/elasticsearch/connector/src/test/java/org/apache/manifoldcf/agents/output/elasticsearch/tests/NavigationDerbyUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.alfresco_tests;
+package org.apache.manifoldcf.agents.output.elasticsearch.tests;
 
 import java.util.Locale;
 
@@ -43,7 +43,7 @@
     HTMLTester.Loop loop;
     
     window = testerInstance.openMainWindow("http://localhost:8346/mcf-crawler-ui/index.jsp");
-    
+
     // Login
     form = window.findForm(testerInstance.createStringDescription("loginform"));
     textarea = form.findTextarea(testerInstance.createStringDescription("userID"));
@@ -71,7 +71,7 @@
     window = testerInstance.findWindow(null);
     form = window.findForm(testerInstance.createStringDescription("editconnection"));
     selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.output.nullconnector.NullConnector"));
+    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.output.elasticsearch.ElasticSearchConnector"));
     button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
     button.click();
     // Visit the Throttling tab
@@ -82,6 +82,22 @@
     window = testerInstance.findWindow(null);
     link = window.findLink(testerInstance.createStringDescription("Name tab"));
     link.click();
+    // Parameters tab
+    window = testerInstance.findWindow(null);
+    link = window.findLink(testerInstance.createStringDescription("Parameters tab"));
+    link.click();
+    window = testerInstance.findWindow(null);
+    form = window.findForm(testerInstance.createStringDescription("editconnection"));
+    textarea = form.findTextarea(testerInstance.createStringDescription("serverlocation"));
+    textarea.setValue(testerInstance.createStringDescription("http://localhost:9200/"));
+    textarea = form.findTextarea(testerInstance.createStringDescription("indexname"));
+    textarea.setValue(testerInstance.createStringDescription("index"));
+    textarea = form.findTextarea(testerInstance.createStringDescription("indextype"));
+    textarea.setValue(testerInstance.createStringDescription("generictype"));
+    
+    // Go back to the Name tab
+    link = window.findLink(testerInstance.createStringDescription("Name tab"));
+    link.click();
     // Now save the connection.
     window = testerInstance.findWindow(null);
     button = window.findButton(testerInstance.createStringDescription("Save this output connection"));
@@ -105,38 +121,13 @@
     window = testerInstance.findWindow(null);
     form = window.findForm(testerInstance.createStringDescription("editconnection"));
     selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.crawler.connectors.alfresco.AlfrescoRepositoryConnector"));
+    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.crawler.tests.TestingRepositoryConnector"));
     button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
     button.click();
     // Visit the Throttling tab
     window = testerInstance.findWindow(null);
     link = window.findLink(testerInstance.createStringDescription("Throttling tab"));
     link.click();
-    // Server tab
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Server tab"));
-    link.click();
-    window = testerInstance.findWindow(null);
-    form = window.findForm(testerInstance.createStringDescription("editconnection"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("username"));
-    textarea.setValue(testerInstance.createStringDescription("admin"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("password"));
-    textarea.setValue(testerInstance.createStringDescription("admin"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("tenantDomain"));
-    textarea.setValue(testerInstance.createStringDescription(""));
-    selectbox = form.findSelectbox(testerInstance.createStringDescription("protocol"));
-    selectbox.selectValue(testerInstance.createStringDescription("http"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("server"));
-    textarea.setValue(testerInstance.createStringDescription("localhost"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("port"));
-    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();
     window = testerInstance.findWindow(null);
     // Now save the connection.
     button = window.findButton(testerInstance.createStringDescription("Save this connection"));
diff --git a/connectors/elasticsearch/pom.xml b/connectors/elasticsearch/pom.xml
index 21b17f3..658c962 100644
--- a/connectors/elasticsearch/pom.xml
+++ b/connectors/elasticsearch/pom.xml
@@ -24,6 +24,13 @@
   </parent>

   <modelVersion>4.0.0</modelVersion>

   

+  <repositories>

+    <repository>

+      <id>sonatype</id>

+      <url>https://oss.sonatype.org/content/repositories/releases</url>

+    </repository>

+  </repositories>

+

   <developers>

     <developer>

       <name>Luca Stancapiano</name>

@@ -31,31 +38,49 @@
       <organizationUrl>http://www.vige.it</organizationUrl>

       <url />

     </developer>

+    <developer>

+      <name>Piergiorgio Lucidi</name>

+      <organization>Sourcesense</organization>

+      <organizationUrl>http://www.sourcesense.com</organizationUrl>

+      <url>http://www.open4dev.com</url>

+    </developer>

   </developers>

   

+  <properties>

+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

+  </properties>

+

   <artifactId>mcf-elasticsearch-connector</artifactId>

   <name>ManifoldCF - Connectors - ElasticSearch</name>

 

   <build>

+    <defaultGoal>integration-test</defaultGoal>

     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>

     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>

     <resources>

       <resource>

+        <directory>${basedir}/connector/src/main/native2ascii</directory>

+        <includes>

+          <include>**/*.properties</include>

+        </includes>

+      </resource>

+      <resource>

         <directory>${basedir}/connector/src/main/resources</directory>

         <includes>

           <include>**/*.html</include>

           <include>**/*.js</include>

         </includes>

       </resource>

-      <resource>

-        <directory>${basedir}/connector/src/main/native2ascii</directory>

-        <includes>

-          <include>**/*.properties</include>

-        </includes>

-      </resource>

     </resources> 

+    <testResources>

+      <testResource>

+        <directory>${basedir}/connector/src/test/resources</directory>

+      </testResource>

+    </testResources>

 

     <plugins>

+

       <plugin>

         <groupId>org.codehaus.mojo</groupId>

         <artifactId>native2ascii-maven-plugin</artifactId>

@@ -78,10 +103,102 @@
             </execution>

         </executions>

       </plugin>

+

+      <plugin>

+        <artifactId>maven-dependency-plugin</artifactId>

+        <executions>

+           <execution>

+            <id>copy-war</id>

+            <phase>generate-resources</phase>

+            <goals>

+              <goal>copy</goal>

+            </goals>

+            <configuration>

+              <outputDirectory>target/dependency</outputDirectory>

+              <artifactItems>

+                <artifactItem>

+                  <groupId>${project.groupId}</groupId>

+                  <artifactId>mcf-api-service</artifactId>

+                  <version>${project.version}</version>

+                  <type>war</type>

+                  <overWrite>false</overWrite>

+                  <destFileName>mcf-api-service.war</destFileName>

+                </artifactItem>

+                <artifactItem>

+                  <groupId>${project.groupId}</groupId>

+                  <artifactId>mcf-authority-service</artifactId>

+                  <version>${project.version}</version>

+                  <type>war</type>

+                  <overWrite>false</overWrite>

+                  <destFileName>mcf-authority-service.war</destFileName>

+                </artifactItem>

+                <artifactItem>

+                  <groupId>${project.groupId}</groupId>

+                  <artifactId>mcf-crawler-ui</artifactId>

+                  <version>${project.version}</version>

+                  <type>war</type>

+                  <overWrite>false</overWrite>

+                  <destFileName>mcf-crawler-ui.war</destFileName>

+                </artifactItem>

+              </artifactItems>

+            </configuration>

+          </execution>

+        </executions>

+      </plugin>

+

+      <!-- Test plugin configuration -->

+      <plugin>

+        <groupId>org.apache.maven.plugins</groupId>

+        <artifactId>maven-surefire-plugin</artifactId>

+        <configuration>

+          <excludes>

+            <exclude>**/*Postgresql*.java</exclude>

+            <exclude>**/*MySQL*.java</exclude>

+          </excludes>

+          <forkMode>always</forkMode>

+          <workingDirectory>target/test-output</workingDirectory>

+        </configuration>

+      </plugin>

+

+      <plugin>

+        <groupId>org.apache.maven.plugins</groupId>

+        <artifactId>maven-failsafe-plugin</artifactId>

+        <version>2.12.3</version>

+        <configuration>

+          <skipTests>${skipITs}</skipTests>

+          <systemPropertyVariables>

+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>

+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>

+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>

+          </systemPropertyVariables>

+          <excludes>

+            <exclude>**/*Postgresql*.java</exclude>

+            <exclude>**/*MySQL*.java</exclude>

+          </excludes>

+          <forkMode>always</forkMode>

+          <workingDirectory>target/test-output</workingDirectory>

+        </configuration>

+        <executions>

+          <execution>

+            <id>integration-test</id>

+            <goals>

+              <goal>integration-test</goal>

+            </goals>

+          </execution>

+          <execution>

+            <id>verify</id>

+            <goals>

+              <goal>verify</goal>

+            </goals>

+          </execution>

+        </executions>

+      </plugin>

+

     </plugins>

   </build>

 

   <dependencies>

+    <!-- Main build dependencies -->

     <dependency>

       <groupId>${project.groupId}</groupId>

       <artifactId>mcf-core</artifactId>

@@ -117,6 +234,9 @@
       <artifactId>commons-codec</artifactId>

       <version>${commons-codec.version}</version>

     </dependency>

+    

+    <!-- Testing dependencies -->

+    

     <dependency>

       <groupId>junit</groupId>

       <artifactId>junit</artifactId>

@@ -162,5 +282,190 @@
       <version>${derby.version}</version>

       <scope>test</scope>

     </dependency>

+    <dependency>

+      <groupId>mysql</groupId>

+      <artifactId>mysql-connector-java</artifactId>

+      <version>${mysql.version}</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>${project.groupId}</groupId>

+      <artifactId>mcf-api-service</artifactId>

+      <version>${project.version}</version>

+      <type>war</type>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>${project.groupId}</groupId>

+      <artifactId>mcf-authority-service</artifactId>

+      <version>${project.version}</version>

+      <type>war</type>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>${project.groupId}</groupId>

+      <artifactId>mcf-crawler-ui</artifactId>

+      <version>${project.version}</version>

+      <type>war</type>

+      <scope>test</scope>

+    </dependency>

+

+    <dependency>

+      <groupId>org.eclipse.jetty</groupId>

+      <artifactId>jetty-server</artifactId>

+      <version>${jetty.version}</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.eclipse.jetty</groupId>

+      <artifactId>jetty-util</artifactId>

+      <version>${jetty.version}</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.eclipse.jetty</groupId>

+      <artifactId>jetty-webapp</artifactId>

+      <version>${jetty.version}</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.eclipse.jetty</groupId>

+      <artifactId>jetty-servlet</artifactId>

+      <version>${jetty.version}</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.eclipse.jetty</groupId>

+      <artifactId>jetty-http</artifactId>

+      <version>${jetty.version}</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.eclipse.jetty</groupId>

+      <artifactId>jetty-io</artifactId>

+      <version>${jetty.version}</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.eclipse.jetty</groupId>

+      <artifactId>jetty-security</artifactId>

+      <version>${jetty.version}</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.eclipse.jetty</groupId>

+      <artifactId>jetty-continuation</artifactId>

+      <version>${jetty.version}</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.eclipse.jetty</groupId>

+      <artifactId>jetty-xml</artifactId>

+      <version>${jetty.version}</version>

+      <scope>test</scope>

+    </dependency>

+

+    <dependency>

+      <groupId>org.mortbay.jetty</groupId>

+      <artifactId>jsp-api-2.1-glassfish</artifactId>

+      <version>${glassfish.version}</version>

+      <scope>test</scope>

+    </dependency>    

+    <dependency>

+      <groupId>org.mortbay.jetty</groupId>

+      <artifactId>jsp-2.1-glassfish</artifactId>

+      <version>${glassfish.version}</version>

+      <scope>test</scope>

+    </dependency>

+    

+    <dependency>

+      <groupId>org.slf4j</groupId>

+      <artifactId>slf4j-api</artifactId>

+      <version>${slf4j.version}</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.slf4j</groupId>

+      <artifactId>slf4j-simple</artifactId>

+      <version>${slf4j.version}</version>

+      <scope>test</scope>

+    </dependency>

+

+    <!-- Elastic Search dependencies -->

+    <dependency>

+      <groupId>org.elasticsearch</groupId>

+      <artifactId>elasticsearch</artifactId>

+      <version>1.0.1</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.apache.lucene</groupId>

+      <artifactId>lucene-core</artifactId>

+      <version>4.6.1</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>                 

+      <groupId>org.apache.lucene</groupId>

+      <artifactId>lucene-analyzers-common</artifactId>   

+      <version>4.6.1</version>                            

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.apache.lucene</groupId>

+      <artifactId>lucene-codecs</artifactId>

+      <version>4.6.1</version>                                                                    

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.apache.lucene</groupId>

+      <artifactId>lucene-queries</artifactId>

+      <version>4.6.1</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.apache.lucene</groupId>

+      <artifactId>lucene-memory</artifactId>

+      <version>4.6.1</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.apache.lucene</groupId>

+      <artifactId>lucene-highlighter</artifactId>

+      <version>4.6.1</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.apache.lucene</groupId>

+      <artifactId>lucene-queryparser</artifactId>

+      <version>4.6.1</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.apache.lucene</groupId>

+      <artifactId>lucene-misc</artifactId>

+      <version>4.6.1</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.apache.lucene</groupId>

+      <artifactId>lucene-join</artifactId>

+      <version>4.6.1</version>

+      <scope>test</scope>

+    </dependency>

+    <dependency>

+      <groupId>org.apache.lucene</groupId>

+      <artifactId>lucene-grouping</artifactId>

+      <version>4.6.1</version>

+      <scope>test</scope>

+    </dependency>

+    

+    <!-- Attachment Plugin -->

+    <dependency>

+      <groupId>org.elasticsearch</groupId>

+      <artifactId>elasticsearch-mapper-attachments</artifactId>

+      <version>2.0.0.RC1</version>

+      <scope>test</scope>

+    </dependency>

+

   </dependencies>

 </project>

diff --git a/connectors/email/build.xml b/connectors/email/build.xml
index 7e7e045..2e9b67e 100644
--- a/connectors/email/build.xml
+++ b/connectors/email/build.xml
@@ -17,6 +17,24 @@
 
 <project name="email" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
+
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-repository-connector">
+            <param name="connector-label" value="EMail"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.email.EmailConnector"/>
+        </antcall>
+    </target>
 
 </project>
\ No newline at end of file
diff --git a/connectors/email/pom.xml b/connectors/email/pom.xml
index 64c96c0..fd50a3a 100644
--- a/connectors/email/pom.xml
+++ b/connectors/email/pom.xml
@@ -24,29 +24,41 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-email-connector</artifactId>
   <name>ManifoldCF - Connectors - Email</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
       <resource>
+        <directory>${basedir}/connector/src/main/native2ascii</directory>
+        <includes>
+          <include>**/*.properties</include>
+        </includes>
+      </resource>
+      <resource>
         <directory>${basedir}/connector/src/main/resources</directory>
         <includes>
           <include>**/*.html</include>
           <include>**/*.js</include>
         </includes>
       </resource>
-      <resource>
-        <directory>${basedir}/connector/src/main/native2ascii</directory>
-        <includes>
-          <include>**/*.properties</include>
-        </includes>
-      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -69,6 +81,50 @@
             </execution>
         </executions>
       </plugin>
+      
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
@@ -81,6 +137,41 @@
           <workingDirectory>target/test-output</workingDirectory>
         </configuration>
       </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
   </build>
   
@@ -105,6 +196,9 @@
       <artifactId>mcf-ui-core</artifactId>
       <version>${project.version}</version>
     </dependency>
+    
+    <!-- Testing dependencies -->
+    
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
@@ -132,6 +226,7 @@
       <type>test-jar</type>
       <scope>test</scope>
     </dependency>
+
     <dependency>
       <groupId>postgresql</groupId>
       <artifactId>postgresql</artifactId>
@@ -156,10 +251,115 @@
       <version>${mysql.version}</version>
       <scope>test</scope>
     </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
     <dependency>
       <groupId>javax.mail</groupId>
       <artifactId>mail</artifactId>
       <version>1.4</version>
     </dependency> 
+
   </dependencies>
 </project>
diff --git a/connectors/filenet/build.xml b/connectors/filenet/build.xml
index f610141..2e562dc 100644
--- a/connectors/filenet/build.xml
+++ b/connectors/filenet/build.xml
@@ -17,7 +17,18 @@
 
 <project name="filenet" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
 
     <target name="has-proprietary-materials-check">
         <available file="lib-proprietary/Jace.jar" property="JaceStatus"/>
@@ -51,4 +62,11 @@
         <copy todir="dist/server-process/lib-proprietary" file="server/README.txt"/>
     </target>
 
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-repository-connector">
+            <param name="connector-label" value="FileNet"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.filenet.FilenetConnector"/>
+        </antcall>
+    </target>
+
 </project>
diff --git a/connectors/filesystem/build.xml b/connectors/filesystem/build.xml
index fdb3499..4a66194 100644
--- a/connectors/filesystem/build.xml
+++ b/connectors/filesystem/build.xml
@@ -17,6 +17,28 @@
 
 <project name="filesystem" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
+
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-repository-connector">
+            <param name="connector-label" value="File system"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector"/>
+        </antcall>
+        <antcall target="general-add-output-connector">
+            <param name="connector-label" value="File system"/>
+            <param name="connector-class" value="org.apache.manifoldcf.agents.output.filesystem.FileOutputConnector"/>
+        </antcall>
+    </target>
 
 </project>
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityCombinedHSQLDBIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityCombinedHSQLDBIT.java
similarity index 90%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityCombinedHSQLDBIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityCombinedHSQLDBIT.java
index 65da070..b5ddcab 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityCombinedHSQLDBIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityCombinedHSQLDBIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class APISanityCombinedHSQLDBIT extends BaseHSQLDB
+public class APISanityCombinedHSQLDBIT extends BaseITHSQLDB
 {
   protected APISanityTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityDerbyIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityDerbyIT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityDerbyIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityDerbyIT.java
index fa8c347..f239aa8 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityDerbyIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityDerbyIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class APISanityDerbyIT extends BaseDerby
+public class APISanityDerbyIT extends BaseITDerby
 {
   protected APISanityTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityHSQLDBIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityHSQLDBIT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityHSQLDBIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityHSQLDBIT.java
index 2674c02..c1d5237 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityHSQLDBIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityHSQLDBIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class APISanityHSQLDBIT extends BaseHSQLDB
+public class APISanityHSQLDBIT extends BaseITHSQLDB
 {
   protected APISanityTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityMySQLIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityMySQLIT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityMySQLIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityMySQLIT.java
index ae654e8..90727a2 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityMySQLIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityMySQLIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class APISanityMySQLIT extends BaseMySQL
+public class APISanityMySQLIT extends BaseITMySQL
 {
   protected APISanityTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityPostgresqlIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityPostgresqlIT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityPostgresqlIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityPostgresqlIT.java
index 5536937..349c644 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityPostgresqlIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityPostgresqlIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class APISanityPostgresqlIT extends BasePostgresql
+public class APISanityPostgresqlIT extends BaseITPostgresql
 {
   protected APISanityTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityTester.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityTester.java
similarity index 98%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityTester.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityTester.java
index 2113f9b..44dc10d 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/APISanityTester.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/APISanityTester.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -103,7 +103,7 @@
     connectionObject.addChild(connectionObject.getChildCount(),child);
       
     child = new ConfigurationNode("class_name");
-    child.setValue("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
+    child.setValue("org.apache.manifoldcf.agents.tests.TestingOutputConnector");
     connectionObject.addChild(connectionObject.getChildCount(),child);
       
     child = new ConfigurationNode("description");
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BasePostgresql.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseITDerby.java
similarity index 86%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BasePostgresql.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseITDerby.java
index 4973fd0..8e661f3 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BasePostgresql.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseITDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -28,7 +28,7 @@
 import org.junit.*;
 
 /** Tests that run the "agents daemon" should be derived from this */
-public class BasePostgresql extends org.apache.manifoldcf.crawler.tests.BaseITPostgresql
+public class BaseITDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
 {
   protected String[] getConnectorNames()
   {
@@ -47,6 +47,6 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
 }
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseUIHSQLDB.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseITHSQLDB.java
similarity index 83%
copy from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseUIHSQLDB.java
copy to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseITHSQLDB.java
index a8ab5d1..93a8288 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseUIHSQLDB.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseITHSQLDB.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -28,14 +28,14 @@
 import org.junit.*;
 
 /** Tests that run the "agents daemon" should be derived from this */
-public class BaseUIHSQLDB extends org.apache.manifoldcf.crawler.tests.ConnectorBaseUIHSQLDB
+public class BaseITHSQLDB extends org.apache.manifoldcf.crawler.tests.BaseITHSQLDB
 {
-  public BaseUIHSQLDB()
+  public BaseITHSQLDB()
   {
     super();
   }
   
-  public BaseUIHSQLDB(boolean singleWar)
+  public BaseITHSQLDB(boolean singleWar)
   {
     super(singleWar);
   }
@@ -57,7 +57,6 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
-
 }
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseMySQL.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseITMySQL.java
similarity index 86%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseMySQL.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseITMySQL.java
index 9ffec63..f5b52ba 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseMySQL.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseITMySQL.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -28,7 +28,7 @@
 import org.junit.*;
 
 /** Tests that run the "agents daemon" should be derived from this */
-public class BaseMySQL extends org.apache.manifoldcf.crawler.tests.BaseITMySQL
+public class BaseITMySQL extends org.apache.manifoldcf.crawler.tests.BaseITMySQL
 {
   protected String[] getConnectorNames()
   {
@@ -47,6 +47,6 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
 }
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BasePostgresql.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseITPostgresql.java
similarity index 86%
copy from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BasePostgresql.java
copy to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseITPostgresql.java
index 4973fd0..93f1ac9 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BasePostgresql.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseITPostgresql.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -28,7 +28,7 @@
 import org.junit.*;
 
 /** Tests that run the "agents daemon" should be derived from this */
-public class BasePostgresql extends org.apache.manifoldcf.crawler.tests.BaseITPostgresql
+public class BaseITPostgresql extends org.apache.manifoldcf.crawler.tests.BaseITPostgresql
 {
   protected String[] getConnectorNames()
   {
@@ -47,6 +47,6 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
 }
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseUIDerby.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseUIDerby.java
similarity index 90%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseUIDerby.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseUIDerby.java
index a0806d5..1e4288d 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseUIDerby.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseUIDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -47,7 +47,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
 
 }
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseUIHSQLDB.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseUIHSQLDB.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseUIHSQLDB.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseUIHSQLDB.java
index a8ab5d1..2fc8bd3 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseUIHSQLDB.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BaseUIHSQLDB.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -57,7 +57,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
 
 }
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlDerbyLT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BigCrawlDerbyLT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlDerbyLT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BigCrawlDerbyLT.java
index 2530b62..b44739a 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlDerbyLT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BigCrawlDerbyLT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class BigCrawlDerbyLT extends BaseDerby
+public class BigCrawlDerbyLT extends BaseITDerby
 {
   protected BigCrawlTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlHSQLDBLT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BigCrawlHSQLDBLT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlHSQLDBLT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BigCrawlHSQLDBLT.java
index efd7b7d..5a1fa73 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlHSQLDBLT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BigCrawlHSQLDBLT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class BigCrawlHSQLDBLT extends BaseHSQLDB
+public class BigCrawlHSQLDBLT extends BaseITHSQLDB
 {
   protected BigCrawlTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlMySQLLT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BigCrawlMySQLLT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlMySQLLT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BigCrawlMySQLLT.java
index 713b605..ef1deb1 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlMySQLLT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BigCrawlMySQLLT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class BigCrawlMySQLLT extends BaseMySQL
+public class BigCrawlMySQLLT extends BaseITMySQL
 {
   protected BigCrawlTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlPostgresqlLT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BigCrawlPostgresqlLT.java
similarity index 90%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlPostgresqlLT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BigCrawlPostgresqlLT.java
index ba8ad74..4fb5162 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlPostgresqlLT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BigCrawlPostgresqlLT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class BigCrawlPostgresqlLT extends BasePostgresql
+public class BigCrawlPostgresqlLT extends BaseITPostgresql
 {
   protected BigCrawlTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlTester.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BigCrawlTester.java
similarity index 97%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlTester.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BigCrawlTester.java
index 1731e76..6106495 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BigCrawlTester.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/BigCrawlTester.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -112,7 +112,7 @@
     IOutputConnection outputConn = outputMgr.create();
     outputConn.setName("Null Connection");
     outputConn.setDescription("Null Connection");
-    outputConn.setClassName("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
+    outputConn.setClassName("org.apache.manifoldcf.agents.tests.TestingOutputConnector");
     outputConn.setMaxConnections(100);
     // Now, save
     outputMgr.save(outputConn);
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/ExpirationDerbyIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/ExpirationDerbyIT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/ExpirationDerbyIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/ExpirationDerbyIT.java
index b93cac7..ef363bf 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/ExpirationDerbyIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/ExpirationDerbyIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a test which checks to see if document expiration works properly. */
-public class ExpirationDerbyIT extends BaseDerby
+public class ExpirationDerbyIT extends BaseITDerby
 {
   protected ExpirationTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/ExpirationHSQLDBIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/ExpirationHSQLDBIT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/ExpirationHSQLDBIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/ExpirationHSQLDBIT.java
index e87c8b7..028dae7 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/ExpirationHSQLDBIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/ExpirationHSQLDBIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a test which checks to see if document expiration works properly. */
-public class ExpirationHSQLDBIT extends BaseHSQLDB
+public class ExpirationHSQLDBIT extends BaseITHSQLDB
 {
   protected ExpirationTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/ExpirationMySQLIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/ExpirationMySQLIT.java
similarity index 92%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/ExpirationMySQLIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/ExpirationMySQLIT.java
index 1082492..c332ddc 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/ExpirationMySQLIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/ExpirationMySQLIT.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -28,7 +28,7 @@
 import org.junit.*;
 
 /** This is a test which checks to see if document expiration works properly. */
-public class ExpirationMySQLIT extends BaseMySQL
+public class ExpirationMySQLIT extends BaseITMySQL
 {
   protected ExpirationTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/ExpirationPostgresqlIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/ExpirationPostgresqlIT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/ExpirationPostgresqlIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/ExpirationPostgresqlIT.java
index fbb3a3f..4b26cfe 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/ExpirationPostgresqlIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/ExpirationPostgresqlIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a test which checks to see if document expiration works properly. */
-public class ExpirationPostgresqlIT extends BasePostgresql
+public class ExpirationPostgresqlIT extends BaseITPostgresql
 {
   protected ExpirationTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/ExpirationTester.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/ExpirationTester.java
similarity index 97%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/ExpirationTester.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/ExpirationTester.java
index fe91928..25429fd 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/ExpirationTester.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/ExpirationTester.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -73,7 +73,7 @@
     IOutputConnection outputConn = outputMgr.create();
     outputConn.setName("Null Connection");
     outputConn.setDescription("Null Connection");
-    outputConn.setClassName("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
+    outputConn.setClassName("org.apache.manifoldcf.agents.tests.TestingOutputConnector");
     outputConn.setMaxConnections(100);
     // Now, save
     outputMgr.save(outputConn);
diff --git a/tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/FileHelper.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/FileHelper.java
similarity index 96%
rename from tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/FileHelper.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/FileHelper.java
index 80d7e40..68b1cb2 100644
--- a/tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/FileHelper.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/FileHelper.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.solr_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/HopcountDerbyIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/HopcountDerbyIT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/HopcountDerbyIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/HopcountDerbyIT.java
index 9333777..a6811ba 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/HopcountDerbyIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/HopcountDerbyIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a test which checks to be sure hopcount functionality is working properly. */
-public class HopcountDerbyIT extends BaseDerby
+public class HopcountDerbyIT extends BaseITDerby
 {
   protected HopcountTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/HopcountHSQLDBIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/HopcountHSQLDBIT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/HopcountHSQLDBIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/HopcountHSQLDBIT.java
index 4d80081..309328c 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/HopcountHSQLDBIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/HopcountHSQLDBIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a test which checks to be sure hopcount functionality is working properly. */
-public class HopcountHSQLDBIT extends BaseHSQLDB
+public class HopcountHSQLDBIT extends BaseITHSQLDB
 {
   protected HopcountTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/HopcountMySQLIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/HopcountMySQLIT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/HopcountMySQLIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/HopcountMySQLIT.java
index 419f6d3..78856f4 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/HopcountMySQLIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/HopcountMySQLIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a test which checks to be sure hopcount functionality is working properly. */
-public class HopcountMySQLIT extends BaseMySQL
+public class HopcountMySQLIT extends BaseITMySQL
 {
   protected HopcountTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/HopcountPostgresqlIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/HopcountPostgresqlIT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/HopcountPostgresqlIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/HopcountPostgresqlIT.java
index 0f518b0..e077d5b 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/HopcountPostgresqlIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/HopcountPostgresqlIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a test which checks to be sure hopcount functionality is working properly. */
-public class HopcountPostgresqlIT extends BasePostgresql
+public class HopcountPostgresqlIT extends BaseITPostgresql
 {
   protected HopcountTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/HopcountTester.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/HopcountTester.java
similarity index 96%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/HopcountTester.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/HopcountTester.java
index 3100e6b..1d9c4c9 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/HopcountTester.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/HopcountTester.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -73,7 +73,7 @@
     IOutputConnection outputConn = outputMgr.create();
     outputConn.setName("Null Connection");
     outputConn.setDescription("Null Connection");
-    outputConn.setClassName("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
+    outputConn.setClassName("org.apache.manifoldcf.agents.tests.TestingOutputConnector");
     outputConn.setMaxConnections(100);
     // Now, save
     outputMgr.save(outputConn);
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/NavigationCombinedHSQLDBUI.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/NavigationCombinedHSQLDBUI.java
similarity index 95%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/NavigationCombinedHSQLDBUI.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/NavigationCombinedHSQLDBUI.java
index 7bfc8dc..b7f3a64 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/NavigationCombinedHSQLDBUI.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/NavigationCombinedHSQLDBUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/NavigationDerbyUI.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/NavigationDerbyUI.java
similarity index 94%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/NavigationDerbyUI.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/NavigationDerbyUI.java
index ca1bbb6..1606d50 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/NavigationDerbyUI.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/NavigationDerbyUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/NavigationUITester.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/NavigationUITester.java
similarity index 98%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/NavigationUITester.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/NavigationUITester.java
index 7004d3a..6ef3b8e 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/NavigationUITester.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/NavigationUITester.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -84,7 +84,7 @@
     window = testerInstance.findWindow(null);
     form = window.findForm(testerInstance.createStringDescription("editconnection"));
     selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.output.nullconnector.NullConnector"));
+    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.tests.TestingOutputConnector"));
     button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
     button.click();
     // Visit the Throttling tab
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/SanityDerbyIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/SanityDerbyIT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/SanityDerbyIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/SanityDerbyIT.java
index f43019a..890bc8b 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/SanityDerbyIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/SanityDerbyIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class SanityDerbyIT extends BaseDerby
+public class SanityDerbyIT extends BaseITDerby
 {
   protected SanityTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/SanityHSQLDBIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/SanityHSQLDBIT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/SanityHSQLDBIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/SanityHSQLDBIT.java
index 5c6546b..7dab3bf 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/SanityHSQLDBIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/SanityHSQLDBIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class SanityHSQLDBIT extends BaseHSQLDB
+public class SanityHSQLDBIT extends BaseITHSQLDB
 {
   protected SanityTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/SanityMySQLIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/SanityMySQLIT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/SanityMySQLIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/SanityMySQLIT.java
index fd526d1..68469dc 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/SanityMySQLIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/SanityMySQLIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class SanityMySQLIT extends BaseMySQL
+public class SanityMySQLIT extends BaseITMySQL
 {
   protected SanityTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/SanityPostgresqlIT.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/SanityPostgresqlIT.java
similarity index 91%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/SanityPostgresqlIT.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/SanityPostgresqlIT.java
index 5f97e86..b00551d 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/SanityPostgresqlIT.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/SanityPostgresqlIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class SanityPostgresqlIT extends BasePostgresql
+public class SanityPostgresqlIT extends BaseITPostgresql
 {
   protected SanityTester tester;
   
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/SanityTester.java b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/SanityTester.java
similarity index 97%
rename from tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/SanityTester.java
rename to connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/SanityTester.java
index 0407efe..9f92b91 100644
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/SanityTester.java
+++ b/connectors/filesystem/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/filesystem/tests/SanityTester.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.filesystem_tests;
+package org.apache.manifoldcf.crawler.connectors.filesystem.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -73,7 +73,7 @@
     IOutputConnection outputConn = outputMgr.create();
     outputConn.setName("Null Connection");
     outputConn.setDescription("Null Connection");
-    outputConn.setClassName("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
+    outputConn.setClassName("org.apache.manifoldcf.agents.tests.TestingOutputConnector");
     outputConn.setMaxConnections(100);
     // Now, save
     outputMgr.save(outputConn);
diff --git a/connectors/filesystem/pom.xml b/connectors/filesystem/pom.xml
index 7b6f5ad..f2cede6 100644
--- a/connectors/filesystem/pom.xml
+++ b/connectors/filesystem/pom.xml
@@ -24,29 +24,41 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-filesystem-connector</artifactId>
   <name>ManifoldCF - Connectors - Filesystem</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
       <resource>
+        <directory>${basedir}/connector/src/main/native2ascii</directory>
+        <includes>
+          <include>**/*.properties</include>
+        </includes>
+      </resource>
+      <resource>
         <directory>${basedir}/connector/src/main/resources</directory>
         <includes>
           <include>**/*.html</include>
           <include>**/*.js</include>
         </includes>
       </resource>
-      <resource>
-        <directory>${basedir}/connector/src/main/native2ascii</directory>
-        <includes>
-          <include>**/*.properties</include>
-        </includes>
-      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -69,6 +81,57 @@
             </execution>
         </executions>
       </plugin>
+      
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-combined-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <!-- Test plugin configuration -->
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
@@ -81,6 +144,42 @@
           <workingDirectory>target/test-output</workingDirectory>
         </configuration>
       </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+            <combinedWarPath>../dependency/mcf-combined-service-${project.version}.war</combinedWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
   </build>
   
@@ -105,6 +204,9 @@
       <artifactId>mcf-ui-core</artifactId>
       <version>${project.version}</version>
     </dependency>
+    
+    <!-- Testing dependencies -->
+    
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
@@ -132,6 +234,7 @@
       <type>test-jar</type>
       <scope>test</scope>
     </dependency>
+
     <dependency>
       <groupId>postgresql</groupId>
       <artifactId>postgresql</artifactId>
@@ -156,5 +259,116 @@
       <version>${mysql.version}</version>
       <scope>test</scope>
     </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-combined-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 </project>
diff --git a/connectors/generic/build.xml b/connectors/generic/build.xml
index 03ad71e..438e902 100644
--- a/connectors/generic/build.xml
+++ b/connectors/generic/build.xml
@@ -17,11 +17,22 @@
 

 <project name="generic" default="all">

 

-    <import file="../connector-build.xml"/>

+    <property environment="env"/>

+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">

+        <isset property="env.MCFDISTPATH"/>

+    </condition>

+    <property name="abs-dist" location="../../dist"/>

+    <condition property="mcf-dist" value="${abs-dist}">

+        <not>

+            <isset property="env.MCFDISTPATH"/>

+        </not>

+    </condition>

+

+    <import file="${mcf-dist}/connector-build.xml"/>

 

     <path id="connector-classpath">

         <path refid="mcf-connector-build.connector-classpath"/>

-        <fileset dir="../../lib">

+        <fileset dir="${mcf-dist}/lib">

             <include name="jaxb-impl*.jar"/>

         </fileset>

     </path>

@@ -29,10 +40,21 @@
     <target name="lib" depends="mcf-connector-build.lib,precompile-check" if="canBuild">

         <mkdir dir="dist/lib"/>

         <copy todir="dist/lib">

-            <fileset dir="../../lib">

+            <fileset dir="${mcf-dist}/lib">

                 <include name="jaxb-impl*.jar"/>

             </fileset>

         </copy>

     </target>

 

+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">

+        <antcall target="general-add-repository-connector">

+            <param name="connector-label" value="Generic"/>

+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.generic.GenericConnector"/>

+        </antcall>

+        <antcall target="general-add-authority-connector">

+            <param name="connector-label" value="Generic"/>

+            <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.generic.GenericAuthority"/>

+        </antcall>

+    </target>

+

 </project>

diff --git a/connectors/generic/pom.xml b/connectors/generic/pom.xml
index 089a40c..e5b0ae7 100644
--- a/connectors/generic/pom.xml
+++ b/connectors/generic/pom.xml
@@ -24,21 +24,41 @@
     </parent>

     <modelVersion>4.0.0</modelVersion>

 

+    <properties>

+      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

+      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

+    </properties>

+

     <artifactId>mcf-generic-connector</artifactId>

     <name>ManifoldCF - Connectors - Generic</name>

 

     <build>

+        <defaultGoal>integration-test</defaultGoal>

         <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>

         <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>

         <resources>

-            <resource>

-                <directory>${basedir}/connector/src/main/native2ascii</directory>

-                <includes>

-                    <include>**/*.properties</include>

-                </includes>

-            </resource>

-        </resources>

+          <resource>

+            <directory>${basedir}/connector/src/main/native2ascii</directory>

+            <includes>

+              <include>**/*.properties</include>

+            </includes>

+          </resource>

+          <resource>

+            <directory>${basedir}/connector/src/main/resources</directory>

+            <includes>

+              <include>**/*.html</include>

+              <include>**/*.js</include>

+            </includes>

+          </resource>

+        </resources> 

+        <testResources>

+          <testResource>

+            <directory>${basedir}/connector/src/test/resources</directory>

+          </testResource>

+        </testResources>

+

         <plugins>

+

             <plugin>

                 <groupId>org.codehaus.mojo</groupId>

                 <artifactId>native2ascii-maven-plugin</artifactId>

@@ -56,12 +76,104 @@
                         <configuration>

                             <encoding>UTF8</encoding>

                             <includes>

-								<include>**/*.properties</include>

-							</includes>

+                                  <include>**/*.properties</include>

+                            </includes>

                         </configuration>

                     </execution>

                 </executions>

             </plugin>

+            

+            <!-- Test plugin configuration -->

+            <plugin>

+              <artifactId>maven-dependency-plugin</artifactId>

+              <executions>

+                 <execution>

+                  <id>copy-war</id>

+                  <phase>generate-resources</phase>

+                  <goals>

+                    <goal>copy</goal>

+                  </goals>

+                  <configuration>

+                    <outputDirectory>target/dependency</outputDirectory>

+                    <artifactItems>

+                      <artifactItem>

+                        <groupId>${project.groupId}</groupId>

+                        <artifactId>mcf-api-service</artifactId>

+                        <version>${project.version}</version>

+                        <type>war</type>

+                        <overWrite>false</overWrite>

+                        <destFileName>mcf-api-service.war</destFileName>

+                      </artifactItem>

+                      <artifactItem>

+                        <groupId>${project.groupId}</groupId>

+                        <artifactId>mcf-authority-service</artifactId>

+                        <version>${project.version}</version>

+                        <type>war</type>

+                        <overWrite>false</overWrite>

+                        <destFileName>mcf-authority-service.war</destFileName>

+                      </artifactItem>

+                      <artifactItem>

+                        <groupId>${project.groupId}</groupId>

+                        <artifactId>mcf-crawler-ui</artifactId>

+                        <version>${project.version}</version>

+                        <type>war</type>

+                        <overWrite>false</overWrite>

+                        <destFileName>mcf-crawler-ui.war</destFileName>

+                      </artifactItem>

+                    </artifactItems>

+                  </configuration>

+                </execution>

+              </executions>

+            </plugin>

+

+            <plugin>

+              <groupId>org.apache.maven.plugins</groupId>

+              <artifactId>maven-surefire-plugin</artifactId>

+              <configuration>

+                <excludes>

+                  <exclude>**/*Postgresql*.java</exclude>

+                  <exclude>**/*MySQL*.java</exclude>

+                </excludes>

+                <forkMode>always</forkMode>

+                <workingDirectory>target/test-output</workingDirectory>

+              </configuration>

+            </plugin>

+

+            <plugin>

+              <groupId>org.apache.maven.plugins</groupId>

+              <artifactId>maven-failsafe-plugin</artifactId>

+              <version>2.12.3</version>

+              <configuration>

+                <skipTests>${skipITs}</skipTests>

+                <systemPropertyVariables>

+                  <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>

+                  <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>

+                  <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>

+                </systemPropertyVariables>

+                <excludes>

+                  <exclude>**/*Postgresql*.java</exclude>

+                  <exclude>**/*MySQL*.java</exclude>

+                </excludes>

+                <forkMode>always</forkMode>

+                <workingDirectory>target/test-output</workingDirectory>

+              </configuration>

+              <executions>

+                <execution>

+                  <id>integration-test</id>

+                  <goals>

+                    <goal>integration-test</goal>

+                  </goals>

+                </execution>

+                <execution>

+                  <id>verify</id>

+                  <goals>

+                    <goal>verify</goal>

+                  </goals>

+                </execution>

+              </executions>

+            </plugin>

+

+

         </plugins>

     </build>

 

@@ -91,14 +203,166 @@
             <artifactId>commons-logging</artifactId>

             <version>${commons-logging.version}</version>

         </dependency>

+	

+        <!-- Testing dependencies -->

+        

         <dependency>

-            <groupId>junit</groupId>

-            <artifactId>junit</artifactId>

-            <version>${junit.version}</version>

-            <scope>test</scope>

+          <groupId>junit</groupId>

+          <artifactId>junit</artifactId>

+          <version>${junit.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-core</artifactId>

+          <version>${project.version}</version>

+          <type>test-jar</type>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-agents</artifactId>

+          <version>${project.version}</version>

+          <type>test-jar</type>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-pull-agent</artifactId>

+          <version>${project.version}</version>

+          <type>test-jar</type>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

+          <groupId>postgresql</groupId>

+          <artifactId>postgresql</artifactId>

+          <version>${postgresql.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.hsqldb</groupId>

+          <artifactId>hsqldb</artifactId>

+          <version>${hsqldb.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.apache.derby</groupId>

+          <artifactId>derby</artifactId>

+          <version>${derby.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>mysql</groupId>

+          <artifactId>mysql-connector-java</artifactId>

+          <version>${mysql.version}</version>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-api-service</artifactId>

+          <version>${project.version}</version>

+          <type>war</type>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-authority-service</artifactId>

+          <version>${project.version}</version>

+          <type>war</type>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-crawler-ui</artifactId>

+          <version>${project.version}</version>

+          <type>war</type>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-server</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-util</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-webapp</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-servlet</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-http</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-io</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-security</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-continuation</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-xml</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

+          <groupId>org.mortbay.jetty</groupId>

+          <artifactId>jsp-api-2.1-glassfish</artifactId>

+          <version>${glassfish.version}</version>

+          <scope>test</scope>

+        </dependency>    

+        <dependency>

+          <groupId>org.mortbay.jetty</groupId>

+          <artifactId>jsp-2.1-glassfish</artifactId>

+          <version>${glassfish.version}</version>

+          <scope>test</scope>

         </dependency>

         

         <dependency>

+          <groupId>org.slf4j</groupId>

+          <artifactId>slf4j-api</artifactId>

+          <version>${slf4j.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.slf4j</groupId>

+          <artifactId>slf4j-simple</artifactId>

+          <version>${slf4j.version}</version>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

             <groupId>xerces</groupId>

             <artifactId>xercesImpl</artifactId>

             <version>${xerces.version}</version>

diff --git a/connectors/googledrive/build.xml b/connectors/googledrive/build.xml
index 36824c2..5eca3f9 100644
--- a/connectors/googledrive/build.xml
+++ b/connectors/googledrive/build.xml
@@ -17,7 +17,18 @@
 

 <project name="googledrive" default="all">

 

-    <import file="../connector-build.xml"/>

+    <property environment="env"/>

+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">

+        <isset property="env.MCFDISTPATH"/>

+    </condition>

+    <property name="abs-dist" location="../../dist"/>

+    <condition property="mcf-dist" value="${abs-dist}">

+        <not>

+            <isset property="env.MCFDISTPATH"/>

+        </not>

+    </condition>

+

+    <import file="${mcf-dist}/connector-build.xml"/>

 

     <path id="connector-classpath">

         <path refid="mcf-connector-build.connector-classpath"/>

@@ -37,4 +48,11 @@
         </copy>

     </target>

 

+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">

+        <antcall target="general-add-repository-connector">

+            <param name="connector-label" value="GoogleDrive"/>

+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.googledrive.GoogleDriveRepositoryConnector"/>

+        </antcall>

+    </target>

+

 </project>

diff --git a/connectors/googledrive/pom.xml b/connectors/googledrive/pom.xml
index 8d63774..d2d9943 100644
--- a/connectors/googledrive/pom.xml
+++ b/connectors/googledrive/pom.xml
@@ -37,35 +37,43 @@
         </developer>

     </developers>

 

-    <artifactId>mcf-googledrive-connector</artifactId>

-    <name>ManifoldCF - Connectors - GoogleDrive</name>

-

-

     <properties>

         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

         <project.http.version>1.14.1-beta</project.http.version>

         <project.oauth.version>1.14.1-beta</project.oauth.version>

     </properties>

 

+    <artifactId>mcf-googledrive-connector</artifactId>

+    <name>ManifoldCF - Connectors - GoogleDrive</name>

+

     <build>

+        <defaultGoal>integration-test</defaultGoal>

         <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>

         <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>

         <resources>

-            <resource>

-                <directory>${basedir}/connector/src/main/resources</directory>

-                <includes>

-                    <include>**/*.html</include>

-                    <include>**/*.js</include>

-                </includes>

-            </resource>

-            <resource>

-                <directory>${basedir}/connector/src/main/native2ascii</directory>

-                <includes>

-                    <include>**/*.properties</include>

-                </includes>

-            </resource>

-        </resources>

+          <resource>

+            <directory>${basedir}/connector/src/main/native2ascii</directory>

+            <includes>

+              <include>**/*.properties</include>

+            </includes>

+          </resource>

+          <resource>

+            <directory>${basedir}/connector/src/main/resources</directory>

+            <includes>

+              <include>**/*.html</include>

+              <include>**/*.js</include>

+            </includes>

+          </resource>

+        </resources> 

+        <testResources>

+          <testResource>

+            <directory>${basedir}/connector/src/test/resources</directory>

+          </testResource>

+        </testResources>

+        

         <plugins>

+

             <plugin>

                 <groupId>org.codehaus.mojo</groupId>

                 <artifactId>native2ascii-maven-plugin</artifactId>

@@ -89,17 +97,94 @@
                 </executions>

             </plugin>

 

+            <!-- Test plugin configuration -->

             <plugin>

-                <groupId>org.apache.maven.plugins</groupId>

-                <artifactId>maven-surefire-plugin</artifactId>

-                <configuration>

-                    <excludes>

-                        <exclude>**/*Postgresql*.java</exclude>

-                        <exclude>**/*MySQL*.java</exclude>

-                    </excludes>

-                    <forkMode>always</forkMode>

-                    <workingDirectory>target/test-output</workingDirectory>

-                </configuration>

+              <artifactId>maven-dependency-plugin</artifactId>

+              <executions>

+                 <execution>

+                  <id>copy-war</id>

+                  <phase>generate-resources</phase>

+                  <goals>

+                    <goal>copy</goal>

+                  </goals>

+                  <configuration>

+                    <outputDirectory>target/dependency</outputDirectory>

+                    <artifactItems>

+                      <artifactItem>

+                        <groupId>${project.groupId}</groupId>

+                        <artifactId>mcf-api-service</artifactId>

+                        <version>${project.version}</version>

+                        <type>war</type>

+                        <overWrite>false</overWrite>

+                        <destFileName>mcf-api-service.war</destFileName>

+                      </artifactItem>

+                      <artifactItem>

+                        <groupId>${project.groupId}</groupId>

+                        <artifactId>mcf-authority-service</artifactId>

+                        <version>${project.version}</version>

+                        <type>war</type>

+                        <overWrite>false</overWrite>

+                        <destFileName>mcf-authority-service.war</destFileName>

+                      </artifactItem>

+                      <artifactItem>

+                        <groupId>${project.groupId}</groupId>

+                        <artifactId>mcf-crawler-ui</artifactId>

+                        <version>${project.version}</version>

+                        <type>war</type>

+                        <overWrite>false</overWrite>

+                        <destFileName>mcf-crawler-ui.war</destFileName>

+                      </artifactItem>

+                    </artifactItems>

+                  </configuration>

+                </execution>

+              </executions>

+            </plugin>

+

+            <plugin>

+              <groupId>org.apache.maven.plugins</groupId>

+              <artifactId>maven-surefire-plugin</artifactId>

+              <configuration>

+                <excludes>

+                  <exclude>**/*Postgresql*.java</exclude>

+                  <exclude>**/*MySQL*.java</exclude>

+                </excludes>

+                <forkMode>always</forkMode>

+                <workingDirectory>target/test-output</workingDirectory>

+              </configuration>

+            </plugin>

+

+            <plugin>

+              <groupId>org.apache.maven.plugins</groupId>

+              <artifactId>maven-failsafe-plugin</artifactId>

+              <version>2.12.3</version>

+              <configuration>

+                <skipTests>${skipITs}</skipTests>

+                <systemPropertyVariables>

+                  <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>

+                  <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>

+                  <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>

+                </systemPropertyVariables>

+                <excludes>

+                  <exclude>**/*Postgresql*.java</exclude>

+                  <exclude>**/*MySQL*.java</exclude>

+                </excludes>

+                <forkMode>always</forkMode>

+                <workingDirectory>target/test-output</workingDirectory>

+              </configuration>

+              <executions>

+                <execution>

+                  <id>integration-test</id>

+                  <goals>

+                    <goal>integration-test</goal>

+                  </goals>

+                </execution>

+                <execution>

+                  <id>verify</id>

+                  <goals>

+                    <goal>verify</goal>

+                  </goals>

+                </execution>

+              </executions>

             </plugin>

 

         </plugins>

@@ -133,13 +218,170 @@
             <type>jar</type>

         </dependency>

         

+        <!-- Testing dependencies -->

         

         <dependency>

+          <groupId>junit</groupId>

+          <artifactId>junit</artifactId>

+          <version>${junit.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-core</artifactId>

+          <version>${project.version}</version>

+          <type>test-jar</type>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-agents</artifactId>

+          <version>${project.version}</version>

+          <type>test-jar</type>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-pull-agent</artifactId>

+          <version>${project.version}</version>

+          <type>test-jar</type>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

+          <groupId>postgresql</groupId>

+          <artifactId>postgresql</artifactId>

+          <version>${postgresql.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.hsqldb</groupId>

+          <artifactId>hsqldb</artifactId>

+          <version>${hsqldb.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.apache.derby</groupId>

+          <artifactId>derby</artifactId>

+          <version>${derby.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>mysql</groupId>

+          <artifactId>mysql-connector-java</artifactId>

+          <version>${mysql.version}</version>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-api-service</artifactId>

+          <version>${project.version}</version>

+          <type>war</type>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-authority-service</artifactId>

+          <version>${project.version}</version>

+          <type>war</type>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-crawler-ui</artifactId>

+          <version>${project.version}</version>

+          <type>war</type>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-server</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-util</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-webapp</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-servlet</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-http</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-io</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-security</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-continuation</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-xml</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

+          <groupId>org.mortbay.jetty</groupId>

+          <artifactId>jsp-api-2.1-glassfish</artifactId>

+          <version>${glassfish.version}</version>

+          <scope>test</scope>

+        </dependency>    

+        <dependency>

+          <groupId>org.mortbay.jetty</groupId>

+          <artifactId>jsp-2.1-glassfish</artifactId>

+          <version>${glassfish.version}</version>

+          <scope>test</scope>

+        </dependency>

+        

+        <dependency>

+          <groupId>org.slf4j</groupId>

+          <artifactId>slf4j-api</artifactId>

+          <version>${slf4j.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.slf4j</groupId>

+          <artifactId>slf4j-simple</artifactId>

+          <version>${slf4j.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

             <groupId>commons-logging</groupId>

             <artifactId>commons-logging</artifactId>

             <version>1.1.1</version>

             <scope>test</scope>

         </dependency>

+

         <dependency>

             <groupId>log4j</groupId>

             <artifactId>log4j</artifactId>

diff --git a/connectors/gts/build.xml b/connectors/gts/build.xml
index 4e8f0c6..63dbeaf 100644
--- a/connectors/gts/build.xml
+++ b/connectors/gts/build.xml
@@ -17,7 +17,18 @@
 
 <project name="gts" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
 
     <path id="connector-classpath">
         <path refid="mcf-connector-build.connector-classpath"/>
@@ -35,4 +46,11 @@
         </copy>
     </target>
     
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-output-connector">
+            <param name="connector-label" value="MetaCarta GTS"/>
+            <param name="connector-class" value="org.apache.manifoldcf.agents.output.gts.GTSConnector"/>
+        </antcall>
+    </target>
+
 </project>
diff --git a/tests/gts/src/test/java/org/apache/manifoldcf/gts_tests/BaseUIDerby.java b/connectors/gts/connector/src/test/java/org/apache/manifoldcf/agents/output/gts/tests/BaseUIDerby.java
similarity index 88%
rename from tests/gts/src/test/java/org/apache/manifoldcf/gts_tests/BaseUIDerby.java
rename to connectors/gts/connector/src/test/java/org/apache/manifoldcf/agents/output/gts/tests/BaseUIDerby.java
index 95e1d39..f2b2074 100644
--- a/tests/gts/src/test/java/org/apache/manifoldcf/gts_tests/BaseUIDerby.java
+++ b/connectors/gts/connector/src/test/java/org/apache/manifoldcf/agents/output/gts/tests/BaseUIDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.gts_tests;
+package org.apache.manifoldcf.agents.output.gts.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -32,12 +32,12 @@
 {
   protected String[] getConnectorNames()
   {
-    return new String[]{"File Connector"};
+    return new String[]{"Test Connector"};
   }
   
   protected String[] getConnectorClasses()
   {
-    return new String[]{"org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector"};
+    return new String[]{"org.apache.manifoldcf.crawler.tests.TestingRepositoryConnector"};
   }
   
   protected String[] getOutputNames()
diff --git a/tests/gts/src/test/java/org/apache/manifoldcf/gts_tests/NavigationDerbyUI.java b/connectors/gts/connector/src/test/java/org/apache/manifoldcf/agents/output/gts/tests/NavigationDerbyUI.java
similarity index 98%
rename from tests/gts/src/test/java/org/apache/manifoldcf/gts_tests/NavigationDerbyUI.java
rename to connectors/gts/connector/src/test/java/org/apache/manifoldcf/agents/output/gts/tests/NavigationDerbyUI.java
index d191dc1..e8971f8 100644
--- a/tests/gts/src/test/java/org/apache/manifoldcf/gts_tests/NavigationDerbyUI.java
+++ b/connectors/gts/connector/src/test/java/org/apache/manifoldcf/agents/output/gts/tests/NavigationDerbyUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.gts_tests;
+package org.apache.manifoldcf.agents.output.gts.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -114,7 +114,7 @@
     window = testerInstance.findWindow(null);
     form = window.findForm(testerInstance.createStringDescription("editconnection"));
     selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector"));
+    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.crawler.tests.TestingRepositoryConnector"));
     button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
     button.click();
     // Visit the Throttling tab
diff --git a/connectors/gts/pom.xml b/connectors/gts/pom.xml
index f471cca..9363ef8 100644
--- a/connectors/gts/pom.xml
+++ b/connectors/gts/pom.xml
@@ -24,10 +24,16 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-gts-connector</artifactId>
   <name>ManifoldCF - Connectors - MetaCarta GTS</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
@@ -37,9 +43,22 @@
           <include>**/*.properties</include>
         </includes>
       </resource>
+      <resource>
+        <directory>${basedir}/connector/src/main/resources</directory>
+        <includes>
+          <include>**/*.html</include>
+          <include>**/*.js</include>
+        </includes>
+      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -62,6 +81,97 @@
             </execution>
         </executions>
       </plugin>
+
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
   </build>
   
@@ -91,6 +201,165 @@
       <artifactId>poi</artifactId>
       <version>3.7</version>
     </dependency>
+    
+    <!-- Testing dependencies -->
+    
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-core</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-agents</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-pull-agent</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>postgresql</groupId>
+      <artifactId>postgresql</artifactId>
+      <version>${postgresql.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hsqldb</groupId>
+      <artifactId>hsqldb</artifactId>
+      <version>${hsqldb.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.derby</groupId>
+      <artifactId>derby</artifactId>
+      <version>${derby.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+      <version>${mysql.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 </project>
 
diff --git a/connectors/hdfs/build.xml b/connectors/hdfs/build.xml
index a71c12d..1836279 100644
--- a/connectors/hdfs/build.xml
+++ b/connectors/hdfs/build.xml
@@ -17,7 +17,18 @@
 
 <project name="hdfs" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
 
     <path id="connector-classpath">
         <path refid="mcf-connector-build.connector-classpath"/>
@@ -48,4 +59,16 @@
             </fileset>
         </copy>
     </target>
+    
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-repository-connector">
+            <param name="connector-label" value="HDFS"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.hdfs.HDFSRepositoryConnector"/>
+        </antcall>
+        <antcall target="general-add-output-connector">
+            <param name="connector-label" value="HDFS"/>
+            <param name="connector-class" value="org.apache.manifoldcf.agents.output.hdfs.HDFSOutputConnector"/>
+        </antcall>
+    </target>
+
 </project>
diff --git a/tests/hdfs/src/test/java/org/apache/manifoldcf/hdfs_tests/BaseUIDerby.java b/connectors/hdfs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/hdfs/tests/BaseUIDerby.java
similarity index 91%
rename from tests/hdfs/src/test/java/org/apache/manifoldcf/hdfs_tests/BaseUIDerby.java
rename to connectors/hdfs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/hdfs/tests/BaseUIDerby.java
index 76505d2..8dda6f4 100644
--- a/tests/hdfs/src/test/java/org/apache/manifoldcf/hdfs_tests/BaseUIDerby.java
+++ b/connectors/hdfs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/hdfs/tests/BaseUIDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.hdfs_tests;
+package org.apache.manifoldcf.crawler.connectors.hdfs.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -47,7 +47,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
 
 }
diff --git a/tests/hdfs/src/test/java/org/apache/manifoldcf/hdfs_tests/NavigationDerbyUI.java b/connectors/hdfs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/hdfs/tests/NavigationDerbyUI.java
similarity index 95%
rename from tests/hdfs/src/test/java/org/apache/manifoldcf/hdfs_tests/NavigationDerbyUI.java
rename to connectors/hdfs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/hdfs/tests/NavigationDerbyUI.java
index 2e481ff..cb3fc02 100644
--- a/tests/hdfs/src/test/java/org/apache/manifoldcf/hdfs_tests/NavigationDerbyUI.java
+++ b/connectors/hdfs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/hdfs/tests/NavigationDerbyUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.hdfs_tests;
+package org.apache.manifoldcf.crawler.connectors.hdfs.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
diff --git a/tests/hdfs/src/test/java/org/apache/manifoldcf/hdfs_tests/NavigationUITester.java b/connectors/hdfs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/hdfs/tests/NavigationUITester.java
similarity index 98%
rename from tests/hdfs/src/test/java/org/apache/manifoldcf/hdfs_tests/NavigationUITester.java
rename to connectors/hdfs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/hdfs/tests/NavigationUITester.java
index 421f7dd..b3b033a 100644
--- a/tests/hdfs/src/test/java/org/apache/manifoldcf/hdfs_tests/NavigationUITester.java
+++ b/connectors/hdfs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/hdfs/tests/NavigationUITester.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.hdfs_tests;
+package org.apache.manifoldcf.crawler.connectors.hdfs.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -84,7 +84,7 @@
     window = testerInstance.findWindow(null);
     form = window.findForm(testerInstance.createStringDescription("editconnection"));
     selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.output.nullconnector.NullConnector"));
+    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.tests.TestingOutputConnector"));
     button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
     button.click();
     // Visit the Throttling tab
diff --git a/connectors/hdfs/pom.xml b/connectors/hdfs/pom.xml
index 0084163..7a3312b 100644
--- a/connectors/hdfs/pom.xml
+++ b/connectors/hdfs/pom.xml
@@ -24,29 +24,41 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-hdfs-connector</artifactId>
   <name>ManifoldCF - Connectors - HDFS</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
       <resource>
+        <directory>${basedir}/connector/src/main/native2ascii</directory>
+        <includes>
+          <include>**/*.properties</include>
+        </includes>
+      </resource>
+      <resource>
         <directory>${basedir}/connector/src/main/resources</directory>
         <includes>
           <include>**/*.html</include>
           <include>**/*.js</include>
         </includes>
       </resource>
-      <resource>
-        <directory>${basedir}/connector/src/main/native2ascii</directory>
-        <includes>
-          <include>**/*.properties</include>
-        </includes>
-      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+    
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -69,6 +81,50 @@
             </execution>
         </executions>
       </plugin>
+      
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
@@ -81,6 +137,41 @@
           <workingDirectory>target/test-output</workingDirectory>
         </configuration>
       </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
   </build>
   
@@ -105,6 +196,10 @@
       <artifactId>mcf-ui-core</artifactId>
       <version>${project.version}</version>
     </dependency>
+    
+    
+    <!-- Testing dependencies -->
+    
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
@@ -132,6 +227,7 @@
       <type>test-jar</type>
       <scope>test</scope>
     </dependency>
+
     <dependency>
       <groupId>postgresql</groupId>
       <artifactId>postgresql</artifactId>
@@ -156,6 +252,110 @@
       <version>${mysql.version}</version>
       <scope>test</scope>
     </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
     <dependency>
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-common</artifactId>
diff --git a/connectors/jcifs/build.xml b/connectors/jcifs/build.xml
index eb0d8ad..3541afd 100644
--- a/connectors/jcifs/build.xml
+++ b/connectors/jcifs/build.xml
@@ -17,7 +17,18 @@
 
 <project name="jcifs" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
 
     <target name="calculate-condition">
         <available file="lib-proprietary/jcifs.jar" property="jcifsStatus"/>
@@ -64,4 +75,11 @@
         </delete>
     </target>
     
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-repository-connector">
+            <param name="connector-label" value="Windows shares"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.sharedrive.SharedDriveConnector"/>
+        </antcall>
+    </target>
+
 </project>
diff --git a/tests/jcifs/src/test/java/org/apache/manifoldcf/jcifs_tests/BaseUIDerby.java b/connectors/jcifs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/sharedrive/tests/BaseUIDerby.java
similarity index 90%
rename from tests/jcifs/src/test/java/org/apache/manifoldcf/jcifs_tests/BaseUIDerby.java
rename to connectors/jcifs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/sharedrive/tests/BaseUIDerby.java
index cb31c05..ede3f2c 100644
--- a/tests/jcifs/src/test/java/org/apache/manifoldcf/jcifs_tests/BaseUIDerby.java
+++ b/connectors/jcifs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/sharedrive/tests/BaseUIDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.jcifs_tests;
+package org.apache.manifoldcf.crawler.connectors.sharedrive.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -47,7 +47,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
 
 }
diff --git a/tests/jcifs/src/test/java/org/apache/manifoldcf/jcifs_tests/NavigationDerbyUI.java b/connectors/jcifs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/sharedrive/tests/NavigationDerbyUI.java
similarity index 98%
rename from tests/jcifs/src/test/java/org/apache/manifoldcf/jcifs_tests/NavigationDerbyUI.java
rename to connectors/jcifs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/sharedrive/tests/NavigationDerbyUI.java
index b8efb22..a42dfe0 100644
--- a/tests/jcifs/src/test/java/org/apache/manifoldcf/jcifs_tests/NavigationDerbyUI.java
+++ b/connectors/jcifs/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/sharedrive/tests/NavigationDerbyUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.jcifs_tests;
+package org.apache.manifoldcf.crawler.connectors.sharedrive.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -77,7 +77,7 @@
     window = testerInstance.findWindow(null);
     form = window.findForm(testerInstance.createStringDescription("editconnection"));
     selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.output.nullconnector.NullConnector"));
+    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.tests.TestingOutputConnector"));
     button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
     button.click();
     // Visit the Throttling tab
diff --git a/connectors/jcifs/pom.xml b/connectors/jcifs/pom.xml
index fe5a0e5..ede145f 100644
--- a/connectors/jcifs/pom.xml
+++ b/connectors/jcifs/pom.xml
@@ -24,10 +24,16 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-jcifs-connector</artifactId>
   <name>ManifoldCF - Connectors - jCIFS</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
@@ -37,9 +43,22 @@
           <include>**/*.properties</include>
         </includes>
       </resource>
+      <resource>
+        <directory>${basedir}/connector/src/main/resources</directory>
+        <includes>
+          <include>**/*.html</include>
+          <include>**/*.js</include>
+        </includes>
+      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -62,6 +81,97 @@
             </execution>
         </executions>
       </plugin>
+
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
   </build>
   
@@ -93,6 +203,165 @@
       <artifactId>jcifs</artifactId>
       <version>1.3.17</version>
     </dependency>
+    
+    <!-- Testing dependencies -->
+    
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-core</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-agents</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-pull-agent</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>postgresql</groupId>
+      <artifactId>postgresql</artifactId>
+      <version>${postgresql.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hsqldb</groupId>
+      <artifactId>hsqldb</artifactId>
+      <version>${hsqldb.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.derby</groupId>
+      <artifactId>derby</artifactId>
+      <version>${derby.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+      <version>${mysql.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 </project>
 
diff --git a/connectors/jdbc/build.xml b/connectors/jdbc/build.xml
index d0065c6..8178587 100644
--- a/connectors/jdbc/build.xml
+++ b/connectors/jdbc/build.xml
@@ -17,6 +17,28 @@
 
 <project name="jdbc" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
+
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-repository-connector">
+            <param name="connector-label" value="JDBC"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.jdbc.JDBCConnector"/>
+        </antcall>
+        <antcall target="general-add-authority-connector">
+            <param name="connector-label" value="JDBC"/>
+            <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.jdbc.JDBCAuthority"/>
+        </antcall>
+    </target>
 
 </project>
diff --git a/tests/jdbc/src/test/java/org/apache/manifoldcf/jdbc_tests/BaseUIDerby.java b/connectors/jdbc/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/jdbc/tests/BaseUIDerby.java
similarity index 92%
rename from tests/jdbc/src/test/java/org/apache/manifoldcf/jdbc_tests/BaseUIDerby.java
rename to connectors/jdbc/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/jdbc/tests/BaseUIDerby.java
index 7f059bc..2f463ed 100644
--- a/tests/jdbc/src/test/java/org/apache/manifoldcf/jdbc_tests/BaseUIDerby.java
+++ b/connectors/jdbc/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/jdbc/tests/BaseUIDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.jdbc_tests;
+package org.apache.manifoldcf.crawler.connectors.jdbc.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -51,7 +51,7 @@
   @Override
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
 
   @Override
diff --git a/tests/jdbc/src/test/java/org/apache/manifoldcf/jdbc_tests/NavigationDerbyUI.java b/connectors/jdbc/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/jdbc/tests/NavigationDerbyUI.java
similarity index 98%
rename from tests/jdbc/src/test/java/org/apache/manifoldcf/jdbc_tests/NavigationDerbyUI.java
rename to connectors/jdbc/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/jdbc/tests/NavigationDerbyUI.java
index 63cd862..c792938 100644
--- a/tests/jdbc/src/test/java/org/apache/manifoldcf/jdbc_tests/NavigationDerbyUI.java
+++ b/connectors/jdbc/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/jdbc/tests/NavigationDerbyUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.jdbc_tests;
+package org.apache.manifoldcf.crawler.connectors.jdbc.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -77,7 +77,7 @@
     window = testerInstance.findWindow(null);
     form = window.findForm(testerInstance.createStringDescription("editconnection"));
     selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.output.nullconnector.NullConnector"));
+    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.tests.TestingOutputConnector"));
     button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
     button.click();
     // Visit the Throttling tab
diff --git a/connectors/jdbc/pom.xml b/connectors/jdbc/pom.xml
index 640ce9f..a4b6304 100644
--- a/connectors/jdbc/pom.xml
+++ b/connectors/jdbc/pom.xml
@@ -24,10 +24,16 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-jdbc-connector</artifactId>
   <name>ManifoldCF - Connectors - JDBC</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
@@ -37,9 +43,22 @@
           <include>**/*.properties</include>
         </includes>
       </resource>
+      <resource>
+        <directory>${basedir}/connector/src/main/resources</directory>
+        <includes>
+          <include>**/*.html</include>
+          <include>**/*.js</include>
+        </includes>
+      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -62,6 +81,97 @@
             </execution>
         </executions>
       </plugin>
+
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
   </build>
   
@@ -86,5 +196,164 @@
       <artifactId>mcf-ui-core</artifactId>
       <version>${project.version}</version>
     </dependency>
+    
+    <!-- Testing dependencies -->
+    
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-core</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-agents</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-pull-agent</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>postgresql</groupId>
+      <artifactId>postgresql</artifactId>
+      <version>${postgresql.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hsqldb</groupId>
+      <artifactId>hsqldb</artifactId>
+      <version>${hsqldb.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.derby</groupId>
+      <artifactId>derby</artifactId>
+      <version>${derby.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+      <version>${mysql.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 </project>
diff --git a/connectors/jira/build.xml b/connectors/jira/build.xml
index 4d2f0f9..d34ceb1 100644
--- a/connectors/jira/build.xml
+++ b/connectors/jira/build.xml
@@ -17,24 +17,28 @@
 

 <project name="jira" default="all">

 

-    <import file="../connector-build.xml"/>

+    <property environment="env"/>

+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">

+        <isset property="env.MCFDISTPATH"/>

+    </condition>

+    <property name="abs-dist" location="../../dist"/>

+    <condition property="mcf-dist" value="${abs-dist}">

+        <not>

+            <isset property="env.MCFDISTPATH"/>

+        </not>

+    </condition>

 

-    <path id="connector-classpath">

-        <path refid="mcf-connector-build.connector-classpath"/>

-        <fileset dir="../../lib">

-            <include name="google-*.jar"/>

-	    <include name="jackson-core.jar"/>

-        </fileset>

-    </path>

+    <import file="${mcf-dist}/connector-build.xml"/>

 

-    <target name="lib" depends="mcf-connector-build.lib,precompile-check" if="canBuild">

-        <mkdir dir="dist/lib"/>

-        <copy todir="dist/lib">

-            <fileset dir="../../lib">

-                <include name="google-*.jar"/>

-		<include name="jackson-core.jar"/>

-            </fileset>

-        </copy>

+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">

+        <antcall target="general-add-repository-connector">

+            <param name="connector-label" value="Jira"/>

+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.jira.JiraRepositoryConnector"/>

+        </antcall>

+        <antcall target="general-add-authority-connector">

+            <param name="connector-label" value="Jira"/>

+            <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.jira.JiraAuthorityConnector"/>

+        </antcall>

     </target>

 

 </project>

diff --git a/connectors/jira/pom.xml b/connectors/jira/pom.xml
index a6863d4..060e1af 100644
--- a/connectors/jira/pom.xml
+++ b/connectors/jira/pom.xml
@@ -37,35 +37,43 @@
         </developer>

     </developers>

 

-    <artifactId>mcf-jira-connector</artifactId>

-    <name>ManifoldCF - Connectors - Jira</name>

-

-

     <properties>

         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

         <project.http.version>1.14.1-beta</project.http.version>

         <project.oauth.version>1.14.1-beta</project.oauth.version>

     </properties>

 

+    <artifactId>mcf-jira-connector</artifactId>

+    <name>ManifoldCF - Connectors - Jira</name>

+

     <build>

+        <defaultGoal>integration-test</defaultGoal>

         <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>

         <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>

         <resources>

-            <resource>

-                <directory>${basedir}/connector/src/main/resources</directory>

-                <includes>

-                    <include>**/*.html</include>

-                    <include>**/*.js</include>

-                </includes>

-            </resource>

-            <resource>

-                <directory>${basedir}/connector/src/main/native2ascii</directory>

-                <includes>

-                    <include>**/*.properties</include>

-                </includes>

-            </resource>

-        </resources>

+          <resource>

+            <directory>${basedir}/connector/src/main/native2ascii</directory>

+            <includes>

+              <include>**/*.properties</include>

+            </includes>

+          </resource>

+          <resource>

+            <directory>${basedir}/connector/src/main/resources</directory>

+            <includes>

+              <include>**/*.html</include>

+              <include>**/*.js</include>

+            </includes>

+          </resource>

+        </resources> 

+        <testResources>

+          <testResource>

+            <directory>${basedir}/connector/src/test/resources</directory>

+          </testResource>

+        </testResources>

+

         <plugins>

+

             <plugin>

                 <groupId>org.codehaus.mojo</groupId>

                 <artifactId>native2ascii-maven-plugin</artifactId>

@@ -89,17 +97,94 @@
                 </executions>

             </plugin>

 

+            <!-- Test plugin configuration -->

             <plugin>

-                <groupId>org.apache.maven.plugins</groupId>

-                <artifactId>maven-surefire-plugin</artifactId>

-                <configuration>

-                    <excludes>

-                        <exclude>**/*Postgresql*.java</exclude>

-                        <exclude>**/*MySQL*.java</exclude>

-                    </excludes>

-                    <forkMode>always</forkMode>

-                    <workingDirectory>target/test-output</workingDirectory>

-                </configuration>

+              <artifactId>maven-dependency-plugin</artifactId>

+              <executions>

+                 <execution>

+                  <id>copy-war</id>

+                  <phase>generate-resources</phase>

+                  <goals>

+                    <goal>copy</goal>

+                  </goals>

+                  <configuration>

+                    <outputDirectory>target/dependency</outputDirectory>

+                    <artifactItems>

+                      <artifactItem>

+                        <groupId>${project.groupId}</groupId>

+                        <artifactId>mcf-api-service</artifactId>

+                        <version>${project.version}</version>

+                        <type>war</type>

+                        <overWrite>false</overWrite>

+                        <destFileName>mcf-api-service.war</destFileName>

+                      </artifactItem>

+                      <artifactItem>

+                        <groupId>${project.groupId}</groupId>

+                        <artifactId>mcf-authority-service</artifactId>

+                        <version>${project.version}</version>

+                        <type>war</type>

+                        <overWrite>false</overWrite>

+                        <destFileName>mcf-authority-service.war</destFileName>

+                      </artifactItem>

+                      <artifactItem>

+                        <groupId>${project.groupId}</groupId>

+                        <artifactId>mcf-crawler-ui</artifactId>

+                        <version>${project.version}</version>

+                        <type>war</type>

+                        <overWrite>false</overWrite>

+                        <destFileName>mcf-crawler-ui.war</destFileName>

+                      </artifactItem>

+                    </artifactItems>

+                  </configuration>

+                </execution>

+              </executions>

+            </plugin>

+

+            <plugin>

+              <groupId>org.apache.maven.plugins</groupId>

+              <artifactId>maven-surefire-plugin</artifactId>

+              <configuration>

+                <excludes>

+                  <exclude>**/*Postgresql*.java</exclude>

+                  <exclude>**/*MySQL*.java</exclude>

+                </excludes>

+                <forkMode>always</forkMode>

+                <workingDirectory>target/test-output</workingDirectory>

+              </configuration>

+            </plugin>

+

+            <plugin>

+              <groupId>org.apache.maven.plugins</groupId>

+              <artifactId>maven-failsafe-plugin</artifactId>

+              <version>2.12.3</version>

+              <configuration>

+                <skipTests>${skipITs}</skipTests>

+                <systemPropertyVariables>

+                  <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>

+                  <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>

+                  <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>

+                </systemPropertyVariables>

+                <excludes>

+                  <exclude>**/*Postgresql*.java</exclude>

+                  <exclude>**/*MySQL*.java</exclude>

+                </excludes>

+                <forkMode>always</forkMode>

+                <workingDirectory>target/test-output</workingDirectory>

+              </configuration>

+              <executions>

+                <execution>

+                  <id>integration-test</id>

+                  <goals>

+                    <goal>integration-test</goal>

+                  </goals>

+                </execution>

+                <execution>

+                  <id>verify</id>

+                  <goals>

+                    <goal>verify</goal>

+                  </goals>

+                </execution>

+              </executions>

             </plugin>

 

         </plugins>

@@ -132,14 +217,172 @@
             <version>${commons-lang.version}</version>

             <type>jar</type>

         </dependency>

+

+        <!-- Testing dependencies -->

         

+        <dependency>

+          <groupId>junit</groupId>

+          <artifactId>junit</artifactId>

+          <version>${junit.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-core</artifactId>

+          <version>${project.version}</version>

+          <type>test-jar</type>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-agents</artifactId>

+          <version>${project.version}</version>

+          <type>test-jar</type>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-pull-agent</artifactId>

+          <version>${project.version}</version>

+          <type>test-jar</type>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

+          <groupId>postgresql</groupId>

+          <artifactId>postgresql</artifactId>

+          <version>${postgresql.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.hsqldb</groupId>

+          <artifactId>hsqldb</artifactId>

+          <version>${hsqldb.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.apache.derby</groupId>

+          <artifactId>derby</artifactId>

+          <version>${derby.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>mysql</groupId>

+          <artifactId>mysql-connector-java</artifactId>

+          <version>${mysql.version}</version>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-api-service</artifactId>

+          <version>${project.version}</version>

+          <type>war</type>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-authority-service</artifactId>

+          <version>${project.version}</version>

+          <type>war</type>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>${project.groupId}</groupId>

+          <artifactId>mcf-crawler-ui</artifactId>

+          <version>${project.version}</version>

+          <type>war</type>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-server</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-util</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-webapp</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-servlet</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-http</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-io</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-security</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-continuation</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.eclipse.jetty</groupId>

+          <artifactId>jetty-xml</artifactId>

+          <version>${jetty.version}</version>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

+          <groupId>org.mortbay.jetty</groupId>

+          <artifactId>jsp-api-2.1-glassfish</artifactId>

+          <version>${glassfish.version}</version>

+          <scope>test</scope>

+        </dependency>    

+        <dependency>

+          <groupId>org.mortbay.jetty</groupId>

+          <artifactId>jsp-2.1-glassfish</artifactId>

+          <version>${glassfish.version}</version>

+          <scope>test</scope>

+        </dependency>

         

         <dependency>

+          <groupId>org.slf4j</groupId>

+          <artifactId>slf4j-api</artifactId>

+          <version>${slf4j.version}</version>

+          <scope>test</scope>

+        </dependency>

+        <dependency>

+          <groupId>org.slf4j</groupId>

+          <artifactId>slf4j-simple</artifactId>

+          <version>${slf4j.version}</version>

+          <scope>test</scope>

+        </dependency>

+

+        <dependency>

             <groupId>commons-logging</groupId>

             <artifactId>commons-logging</artifactId>

             <version>1.1.1</version>

             <scope>test</scope>

         </dependency>

+

         <dependency>

             <groupId>log4j</groupId>

             <artifactId>log4j</artifactId>

diff --git a/connectors/ldap/build.xml b/connectors/ldap/build.xml
index 67e5400..954af97 100644
--- a/connectors/ldap/build.xml
+++ b/connectors/ldap/build.xml
@@ -17,7 +17,24 @@
 
 <project name="ldap" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
     
-    
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-authority-connector">
+            <param name="connector-label" value="LDAP"/>
+            <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.ldap.LDAPAuthority"/>
+        </antcall>
+    </target>
+
 </project>
diff --git a/tests/ldap/src/test/java/org/apache/manifoldcf/ldap_tests/BaseUIDerby.java b/connectors/ldap/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/ldap/tests/BaseUIDerby.java
similarity index 95%
rename from tests/ldap/src/test/java/org/apache/manifoldcf/ldap_tests/BaseUIDerby.java
rename to connectors/ldap/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/ldap/tests/BaseUIDerby.java
index 0e5a3e5..6008a95 100644
--- a/tests/ldap/src/test/java/org/apache/manifoldcf/ldap_tests/BaseUIDerby.java
+++ b/connectors/ldap/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/ldap/tests/BaseUIDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.ldap_tests;
+package org.apache.manifoldcf.authorities.authorities.ldap.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
diff --git a/tests/ldap/src/test/java/org/apache/manifoldcf/ldap_tests/NavigationDerbyUI.java b/connectors/ldap/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/ldap/tests/NavigationDerbyUI.java
similarity index 98%
rename from tests/ldap/src/test/java/org/apache/manifoldcf/ldap_tests/NavigationDerbyUI.java
rename to connectors/ldap/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/ldap/tests/NavigationDerbyUI.java
index 7fdd649..909c127 100644
--- a/tests/ldap/src/test/java/org/apache/manifoldcf/ldap_tests/NavigationDerbyUI.java
+++ b/connectors/ldap/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/ldap/tests/NavigationDerbyUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.ldap_tests;
+package org.apache.manifoldcf.authorities.authorities.ldap.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
diff --git a/connectors/ldap/pom.xml b/connectors/ldap/pom.xml
index 5d2519e..37136e2 100644
--- a/connectors/ldap/pom.xml
+++ b/connectors/ldap/pom.xml
@@ -24,10 +24,16 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-ldap-connector</artifactId>
   <name>ManifoldCF - Connectors - LDAP</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
@@ -37,9 +43,22 @@
           <include>**/*.properties</include>
         </includes>
       </resource>
+      <resource>
+        <directory>${basedir}/connector/src/main/resources</directory>
+        <includes>
+          <include>**/*.html</include>
+          <include>**/*.js</include>
+        </includes>
+      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -62,6 +81,97 @@
             </execution>
         </executions>
       </plugin>
+
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
 
   </build>
@@ -87,5 +197,162 @@
       <artifactId>mcf-ui-core</artifactId>
       <version>${project.version}</version>
     </dependency>
+    
+    <!-- Testing dependencies -->
+    
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-core</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-agents</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-pull-agent</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>postgresql</groupId>
+      <artifactId>postgresql</artifactId>
+      <version>${postgresql.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hsqldb</groupId>
+      <artifactId>hsqldb</artifactId>
+      <version>${hsqldb.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.derby</groupId>
+      <artifactId>derby</artifactId>
+      <version>${derby.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+      <version>${mysql.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 </project>
\ No newline at end of file
diff --git a/connectors/livelink/build.xml b/connectors/livelink/build.xml
index ea2a429..076e97e 100644
--- a/connectors/livelink/build.xml
+++ b/connectors/livelink/build.xml
@@ -17,7 +17,18 @@
 
 <project name="livelink" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
 
     <path id="connector-classpath">
         <path refid="mcf-connector-build.connector-classpath"/>
@@ -51,4 +62,15 @@
     <target name="lib" depends="mcf-connector-build.lib,copy-proprietary-libs,precompile-check" if="canBuild">
     </target>
 
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-authority-connector">
+            <param name="connector-label" value="LiveLink"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.livelink.LivelinkAuthority"/>
+        </antcall>
+        <antcall target="general-add-repository-connector">
+            <param name="connector-label" value="LiveLink"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.livelink.LivelinkConnector"/>
+        </antcall>
+    </target>
+
 </project>
diff --git a/connectors/memex/build.xml b/connectors/memex/build.xml
index ad204d9..aca5ca8 100644
--- a/connectors/memex/build.xml
+++ b/connectors/memex/build.xml
@@ -17,7 +17,18 @@
 
 <project name="memex" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
 
     <target name="calculate-condition">
         <available file="mxie-java/JavaMXIELIB.jar" property="mxieStatus"/>
@@ -42,4 +53,15 @@
         </copy>
     </target>
 
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-authority-connector">
+            <param name="connector-label" value="Memex Patriarch"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.memex.MemexAuthority"/>
+        </antcall>
+        <antcall target="general-add-repository-connector">
+            <param name="connector-label" value="Memex Patriarch"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.memex.MemexConnector"/>
+        </antcall>
+    </target>
+
 </project>
diff --git a/connectors/memex/lib-proprietary/README.txt b/connectors/memex/lib-proprietary/README.txt
new file mode 100644
index 0000000..7c62598
--- /dev/null
+++ b/connectors/memex/lib-proprietary/README.txt
@@ -0,0 +1,19 @@
+# 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.
+
+The Memex connector is not supported at this time.
+
+
+
diff --git a/connectors/meridio/build.xml b/connectors/meridio/build.xml
index f48a408..744f0d0 100644
--- a/connectors/meridio/build.xml
+++ b/connectors/meridio/build.xml
@@ -17,7 +17,18 @@
 
 <project name="meridio" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
 
     <!-- target name="calculate-condition">
         <available file="lib-proprietary/MeridioDMWS_axis.wsdl" property="meridioDMWS_axisStatus"/>
@@ -90,4 +101,15 @@
         </copy>
     </target>
 
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-authority-connector">
+            <param name="connector-label" value="Meridio"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.meridio.MeridioAuthority"/>
+        </antcall>
+        <antcall target="general-add-repository-connector">
+            <param name="connector-label" value="Meridio"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.meridio.MeridioConnector"/>
+        </antcall>
+    </target>
+
 </project>
diff --git a/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/CommonsHTTPSender.java b/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/CommonsHTTPSender.java
index 65c643e..6b934cd 100644
--- a/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/CommonsHTTPSender.java
+++ b/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/CommonsHTTPSender.java
@@ -48,12 +48,14 @@
 import org.apache.http.ProtocolVersion;
 import org.apache.http.util.EntityUtils;
 import org.apache.http.message.BasicHeader;
+import org.apache.http.entity.ContentType;
 
 import org.apache.http.conn.ConnectTimeoutException;
 import org.apache.http.client.RedirectException;
 import org.apache.http.client.CircularRedirectException;
 import org.apache.http.NoHttpResponseException;
 import org.apache.http.HttpException;
+import org.apache.http.ParseException;
 
 import org.apache.commons.logging.Log;
 
@@ -80,6 +82,7 @@
 import java.util.HashMap;
 import java.util.Map;
 import java.util.List;
+import java.nio.charset.Charset;
 
 /* Class to use httpcomponents to communicate with a SOAP server.
 * I've replaced the original rather complicated class with a much simpler one that
@@ -93,6 +96,8 @@
   protected static Log log =
     LogFactory.getLog(CommonsHTTPSender.class.getName());
 
+  protected static final Charset UTF_8 = Charset.forName("UTF-8");
+
   /** Properties */
   protected CommonsHTTPClientProperties clientProperties;
 
@@ -358,9 +363,9 @@
     {
       try
       {
-        String charSet = methodThread.getCharSet();
+        Charset charSet = methodThread.getCharSet();
         if (charSet == null)
-          charSet = "utf-8";
+          charSet = UTF_8;
         char[] buffer = new char[65536];
         Reader r = new InputStreamReader(is,charSet);
         Writer w = new StringWriter();
@@ -615,7 +620,7 @@
     protected Throwable responseException = null;
     protected XThreadInputStream threadStream = null;
     protected InputStream bodyStream = null;
-    protected String charSet = null;
+    protected Charset charSet = null;
     protected boolean streamCreated = false;
     protected Throwable streamException = null;
     protected boolean abortThread = false;
@@ -681,7 +686,18 @@
                   if (bodyStream != null)
                   {
                     threadStream = new XThreadInputStream(bodyStream);
-                    charSet = EntityUtils.getContentCharSet(entity);
+                    try
+                    {
+                      ContentType ct = ContentType.get(entity);
+                      if (ct == null)
+                        charSet = null;
+                      else
+                        charSet = ct.getCharset();
+                    }
+                    catch (ParseException e)
+                    {
+                      charSet = null;
+                    }
                   }
                   streamCreated = true;
                 }
@@ -856,7 +872,7 @@
       }
     }
     
-    public String getCharSet()
+    public Charset getCharSet()
       throws InterruptedException, IOException, HttpException
     {
       while (true)
diff --git a/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioAuthority.java b/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioAuthority.java
index 175ba37..d92dba1 100644
--- a/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioAuthority.java
+++ b/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioAuthority.java
@@ -42,9 +42,6 @@
 {
   public static final String _rcsid = "@(#)$Id: MeridioAuthority.java 988245 2010-08-23 18:39:35Z kwright $";
 
-  // Properties we need
-  public final static String wsddPathProperty = "org.apache.manifoldcf.meridio.wsddpath";
-
   private MeridioWrapper meridio_       = null;  // A handle to the Meridio Java API Wrapper
 
   // URLs initialized by 'connect' code
@@ -231,8 +228,8 @@
           UserName, Password,
           InetAddress.getLocalHost().getHostName(),
           mySSLFactory,
-          getClass(),
-          "meridio-client-config.wsdd");
+          org.apache.manifoldcf.core.common.CommonsHTTPSender.class,
+          "client-config.wsdd");
       }
       catch (NumberFormatException e)
       {
diff --git a/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioConnector.java b/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioConnector.java
index 103ba0d..25e484d 100644
--- a/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioConnector.java
+++ b/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/MeridioConnector.java
@@ -63,9 +63,6 @@
 {
   public static final String _rcsid = "@(#)$Id: MeridioConnector.java 996524 2010-09-13 13:38:01Z kwright $";
 
-  // Properties we need
-  public final static String wsddPathProperty = "org.apache.manifoldcf.meridio.wsddpath";
-
   // This is the base url to use.
   protected String urlBase = null;
   protected String urlVersionBase = null;
@@ -189,8 +186,8 @@
           params.getObfuscatedParameter("Password"),
           InetAddress.getLocalHost().getHostName(),
           mySSLFactory,
-          getClass(),
-          "meridio-client-config.wsdd");
+          org.apache.manifoldcf.core.common.CommonsHTTPSender.class,
+          "client-config.wsdd");
       }
       catch (NumberFormatException e)
       {
diff --git a/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/meridiowrapper/MeridioWrapper.java b/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/meridiowrapper/MeridioWrapper.java
index f8cacb5..532a050 100644
--- a/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/meridiowrapper/MeridioWrapper.java
+++ b/connectors/meridio/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/meridio/meridiowrapper/MeridioWrapper.java
@@ -71,19 +71,19 @@
 import org.tempuri.*;
 import org.tempuri.holders.*;
 
-import org.apache.http.conn.ClientConnectionManager;
+import org.apache.http.conn.HttpClientConnectionManager;
 import org.apache.http.client.HttpClient;
-import org.apache.http.impl.conn.PoolingClientConnectionManager;
-import org.apache.http.conn.scheme.Scheme;
-import org.apache.http.conn.ssl.SSLSocketFactory;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.protocol.HttpRequestExecutor;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.config.SocketConfig;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
 import org.apache.http.conn.ssl.BrowserCompatHostnameVerifier;
-import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.impl.client.DefaultRedirectStrategy;
-import org.apache.http.conn.params.ConnRoutePNames;
-import org.apache.http.client.params.ClientPNames;
-import org.apache.http.params.CoreConnectionPNames;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
 import org.apache.http.auth.AuthScope;
 import org.apache.http.auth.NTCredentials;
 import org.apache.http.HttpHost;
@@ -128,7 +128,9 @@
   protected Logger oLog                                   = null;
   protected String clientWorkstation                      = null;
 
-  protected ClientConnectionManager connectionManager = null;
+  protected HttpClientConnectionManager dmwsConnectionManager = null;
+  protected HttpClientConnectionManager rmwsConnectionManager = null;
+  protected HttpClientConnectionManager mcwsConnectionManager = null;
   protected HttpClient dmwsHttpClient = null;
   protected HttpClient rmwsHttpClient = null;
   protected HttpClient mcwsHttpClient = null;
@@ -213,20 +215,17 @@
     this.engineConfiguration = new ResourceProvider(resourceClass,engineConfigurationFile);
     this.clientWorkstation = clientWorkstation;
 
+    SSLConnectionSocketFactory myFactory = null;
+    if (mySSLFactory != null)
+    {
+      myFactory = new SSLConnectionSocketFactory(mySSLFactory, new BrowserCompatHostnameVerifier());
+    }
+
     // Set up the pool.
     // We have a choice: We can either have one httpclient instance, which gets reinitialized for every service
     // it connects with (because each one has a potentially different proxy setup), OR we can have a different
     // httpclient for each service.  The latter approach is obviously the more efficient, so I've chosen to do it
     // that way.
-    PoolingClientConnectionManager localConnectionManager = new PoolingClientConnectionManager();
-    localConnectionManager.setMaxTotal(1);
-    if (mySSLFactory != null)
-    {
-      SSLSocketFactory myFactory = new SSLSocketFactory(mySSLFactory, new BrowserCompatHostnameVerifier());
-      Scheme myHttpsProtocol = new Scheme("https", 443, myFactory);
-      localConnectionManager.getSchemeRegistry().register(myHttpsProtocol);
-    }
-    connectionManager = localConnectionManager;
 
     // Parse the user and password values
     int index = userName.indexOf("\\");
@@ -255,148 +254,157 @@
         oLog.debug("Meridio: Password is null");
     }
 
-    // Initialize the three httpclient objects
-    
-    // dmws first
-    BasicHttpParams dmwsParams = new BasicHttpParams();
-    dmwsParams.setBooleanParameter(CoreConnectionPNames.TCP_NODELAY,true);
-    dmwsParams.setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK,true);
-    dmwsParams.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,60000);
-    dmwsParams.setIntParameter(CoreConnectionPNames.SO_TIMEOUT,900000);
-    dmwsParams.setBooleanParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS,true);
-    DefaultHttpClient localDmwsHttpClient = new DefaultHttpClient(connectionManager,dmwsParams);
-    // No retries
-    localDmwsHttpClient.setHttpRequestRetryHandler(new HttpRequestRetryHandler()
-      {
-	public boolean retryRequest(
-	  IOException exception,
-	  int executionCount,
-          HttpContext context)
-	{
-	  return false;
-	}
-     
-      });
+    int socketTimeout = 900000;
+    int connectionTimeout = 300000;
 
-    localDmwsHttpClient.setRedirectStrategy(new DefaultRedirectStrategy());
+    dmwsConnectionManager = new PoolingHttpClientConnectionManager();
+    rmwsConnectionManager = new PoolingHttpClientConnectionManager();
+    mcwsConnectionManager = new PoolingHttpClientConnectionManager();
+
+    // Initialize the three httpclient objects
+
+    CredentialsProvider dmwsCredentialsProvider = new BasicCredentialsProvider();
+    CredentialsProvider rmwsCredentialsProvider = new BasicCredentialsProvider();
+
+    RequestConfig.Builder dmwsRequestBuilder = RequestConfig.custom()
+      .setCircularRedirectsAllowed(true)
+      .setSocketTimeout(socketTimeout)
+      .setStaleConnectionCheckEnabled(true)
+      .setExpectContinueEnabled(false)
+      .setConnectTimeout(connectionTimeout)
+      .setConnectionRequestTimeout(socketTimeout);
+    RequestConfig.Builder rmwsRequestBuilder = RequestConfig.custom()
+      .setCircularRedirectsAllowed(true)
+      .setSocketTimeout(socketTimeout)
+      .setStaleConnectionCheckEnabled(true)
+      .setExpectContinueEnabled(true)
+      .setConnectTimeout(connectionTimeout)
+      .setConnectionRequestTimeout(socketTimeout);
+
+    // Set up credentials
     if (domainUser != null)
     {
-      localDmwsHttpClient.getCredentialsProvider().setCredentials(
+      dmwsCredentialsProvider.setCredentials(
         new AuthScope(meridioDmwsUrl.getHost(),meridioDmwsUrl.getPort()),
         new NTCredentials(domainUser, password, currentHost, domain));
+      rmwsCredentialsProvider.setCredentials(
+        new AuthScope(meridioRmwsUrl.getHost(),meridioRmwsUrl.getPort()),
+        new NTCredentials(domainUser, password, currentHost, domain));
     }
-    // Initialize proxy
+    
+    // Initialize DMWS proxy
     if (dmwsProxyHost != null && dmwsProxyHost.length() > 0)
     {
       int port = (dmwsProxyPort == null || dmwsProxyPort.length() == 0)?8080:Integer.parseInt(dmwsProxyPort);
       // Configure proxy authentication
       if (domainUser != null && domainUser.length() > 0)
       {
-        localDmwsHttpClient.getCredentialsProvider().setCredentials(
+        dmwsCredentialsProvider.setCredentials(
           new AuthScope(dmwsProxyHost, port),
           new NTCredentials(domainUser, password, currentHost, domain));
       }
 
       HttpHost proxy = new HttpHost(dmwsProxyHost, port);
-      localDmwsHttpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
+      dmwsRequestBuilder.setProxy(proxy);
     }
-    dmwsHttpClient = localDmwsHttpClient;
-    
-    // rmws
-    BasicHttpParams rmwsParams = new BasicHttpParams();
-    rmwsParams.setBooleanParameter(CoreConnectionPNames.TCP_NODELAY,true);
-    rmwsParams.setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK,true);
-    rmwsParams.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,60000);
-    rmwsParams.setIntParameter(CoreConnectionPNames.SO_TIMEOUT,900000);
-    rmwsParams.setBooleanParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS,true);
-    DefaultHttpClient localRmwsHttpClient = new DefaultHttpClient(connectionManager,rmwsParams);
-    // No retries
-    localRmwsHttpClient.setHttpRequestRetryHandler(new HttpRequestRetryHandler()
-      {
-	public boolean retryRequest(
-	  IOException exception,
-	  int executionCount,
-          HttpContext context)
-	{
-	  return false;
-	}
-     
-      });
 
-    localRmwsHttpClient.setRedirectStrategy(new DefaultRedirectStrategy());
-    if (domainUser != null)
-    {
-      localRmwsHttpClient.getCredentialsProvider().setCredentials(
-        new AuthScope(meridioRmwsUrl.getHost(),meridioRmwsUrl.getPort()),
-        new NTCredentials(domainUser, password, currentHost, domain));
-    }
-    // Initialize proxy
+    // Initialize RMWS proxy
     if (rmwsProxyHost != null && rmwsProxyHost.length() > 0)
     {
       int port = (rmwsProxyPort == null || rmwsProxyPort.length() == 0)?8080:Integer.parseInt(rmwsProxyPort);
       // Configure proxy authentication
       if (domainUser != null && domainUser.length() > 0)
       {
-        localRmwsHttpClient.getCredentialsProvider().setCredentials(
+        rmwsCredentialsProvider.setCredentials(
           new AuthScope(rmwsProxyHost, port),
           new NTCredentials(domainUser, password, currentHost, domain));
       }
 
       HttpHost proxy = new HttpHost(rmwsProxyHost, port);
-      localRmwsHttpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
+      rmwsRequestBuilder.setProxy(proxy);
     }
-    rmwsHttpClient = localRmwsHttpClient;
 
-    // mcws
+    dmwsHttpClient = HttpClients.custom()
+      .setConnectionManager(dmwsConnectionManager)
+      .setMaxConnTotal(1)
+      .disableAutomaticRetries()
+      .setDefaultRequestConfig(dmwsRequestBuilder.build())
+      .setDefaultSocketConfig(SocketConfig.custom()
+        .setTcpNoDelay(true)
+        .setSoTimeout(socketTimeout)
+        .build())
+      .setDefaultCredentialsProvider(dmwsCredentialsProvider)
+      .setSSLSocketFactory(myFactory)
+      .setRequestExecutor(new HttpRequestExecutor(socketTimeout))
+      .setRedirectStrategy(new DefaultRedirectStrategy())
+      .build();
+    
+    rmwsHttpClient = HttpClients.custom()
+      .setConnectionManager(rmwsConnectionManager)
+      .setMaxConnTotal(1)
+      .disableAutomaticRetries()
+      .setDefaultRequestConfig(rmwsRequestBuilder.build())
+      .setDefaultSocketConfig(SocketConfig.custom()
+        .setTcpNoDelay(true)
+        .setSoTimeout(socketTimeout)
+        .build())
+      .setDefaultCredentialsProvider(rmwsCredentialsProvider)
+      .setSSLSocketFactory(myFactory)
+      .setRequestExecutor(new HttpRequestExecutor(socketTimeout))
+      .setRedirectStrategy(new DefaultRedirectStrategy())
+      .build();
+
     if (meridioManifoldCFWSUrl != null)
     {
-      BasicHttpParams mcwsParams = new BasicHttpParams();
-      mcwsParams.setBooleanParameter(CoreConnectionPNames.TCP_NODELAY,true);
-      mcwsParams.setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK,true);
-      mcwsParams.setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,60000);
-      mcwsParams.setIntParameter(CoreConnectionPNames.SO_TIMEOUT,900000);
-      mcwsParams.setBooleanParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS,true);
-      DefaultHttpClient localMcwsHttpClient = new DefaultHttpClient(connectionManager,mcwsParams);
-      // No retries
-      localMcwsHttpClient.setHttpRequestRetryHandler(new HttpRequestRetryHandler()
-        {
-          public boolean retryRequest(
-            IOException exception,
-            int executionCount,
-            HttpContext context)
-          {
-            return false;
-          }
-       
-        });
+      CredentialsProvider mcwsCredentialsProvider = new BasicCredentialsProvider();
 
-      localMcwsHttpClient.setRedirectStrategy(new DefaultRedirectStrategy());
+      RequestConfig.Builder mcwsRequestBuilder = RequestConfig.custom()
+        .setCircularRedirectsAllowed(true)
+        .setSocketTimeout(socketTimeout)
+        .setStaleConnectionCheckEnabled(true)
+        .setExpectContinueEnabled(true)
+        .setConnectTimeout(connectionTimeout)
+        .setConnectionRequestTimeout(socketTimeout);
+
       if (domainUser != null)
       {
-        localMcwsHttpClient.getCredentialsProvider().setCredentials(
+        mcwsCredentialsProvider.setCredentials(
           new AuthScope(meridioManifoldCFWSUrl.getHost(),meridioManifoldCFWSUrl.getPort()),
           new NTCredentials(domainUser, password, currentHost, domain));
       }
-      // Initialize proxy
+
+      // Initialize MCWS proxy
       if (mcwsProxyHost != null && mcwsProxyHost.length() > 0)
       {
         int port = (mcwsProxyPort == null || mcwsProxyPort.length() == 0)?8080:Integer.parseInt(mcwsProxyPort);
         // Configure proxy authentication
         if (domainUser != null && domainUser.length() > 0)
         {
-          localMcwsHttpClient.getCredentialsProvider().setCredentials(
+          mcwsCredentialsProvider.setCredentials(
             new AuthScope(mcwsProxyHost, port),
             new NTCredentials(domainUser, password, currentHost, domain));
         }
 
         HttpHost proxy = new HttpHost(mcwsProxyHost, port);
-        localMcwsHttpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
+        mcwsRequestBuilder.setProxy(proxy);
       }
-      mcwsHttpClient = localMcwsHttpClient;
+      
+      mcwsHttpClient = HttpClients.custom()
+        .setConnectionManager(mcwsConnectionManager)
+        .setMaxConnTotal(1)
+        .disableAutomaticRetries()
+        .setDefaultRequestConfig(mcwsRequestBuilder.build())
+        .setDefaultSocketConfig(SocketConfig.custom()
+          .setTcpNoDelay(true)
+          .setSoTimeout(socketTimeout)
+          .build())
+        .setDefaultCredentialsProvider(mcwsCredentialsProvider)
+        .setSSLSocketFactory(myFactory)
+        .setRequestExecutor(new HttpRequestExecutor(socketTimeout))
+        .setRedirectStrategy(new DefaultRedirectStrategy())
+        .build();
     }
-    else
-      mcwsHttpClient = null;
-    
+
     // Set up the stub handles
     /*=================================================================
     * Get a handle to the DMWS
@@ -489,8 +497,12 @@
       finally
       {
         loginToken_ = null;
-        connectionManager.shutdown();
-        connectionManager = null;
+        dmwsConnectionManager.shutdown();
+        dmwsConnectionManager = null;
+        rmwsConnectionManager.shutdown();
+        rmwsConnectionManager = null;
+        mcwsConnectionManager.shutdown();
+        mcwsConnectionManager = null;
       }
     }
   }
diff --git a/connectors/nullauthority/build.xml b/connectors/nullauthority/build.xml
index 75be912..dfc932d 100644
--- a/connectors/nullauthority/build.xml
+++ b/connectors/nullauthority/build.xml
@@ -17,6 +17,24 @@
 
 <project name="nullauthority" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
+
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-authority-connector">
+            <param name="connector-label" value="Null"/>
+            <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.nullauthority.NullAuthority"/>
+        </antcall>
+    </target>
 
 </project>
diff --git a/tests/nullauthority/src/test/java/org/apache/manifoldcf/nullauthority_tests/BaseUIDerby.java b/connectors/nullauthority/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/nullauthority/tests/BaseUIDerby.java
similarity index 94%
rename from tests/nullauthority/src/test/java/org/apache/manifoldcf/nullauthority_tests/BaseUIDerby.java
rename to connectors/nullauthority/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/nullauthority/tests/BaseUIDerby.java
index 7abf7de..1010457 100644
--- a/tests/nullauthority/src/test/java/org/apache/manifoldcf/nullauthority_tests/BaseUIDerby.java
+++ b/connectors/nullauthority/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/nullauthority/tests/BaseUIDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.nullauthority_tests;
+package org.apache.manifoldcf.authorities.authorities.nullauthority.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
diff --git a/tests/ldap/src/test/java/org/apache/manifoldcf/ldap_tests/NavigationDerbyUI.java b/connectors/nullauthority/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/nullauthority/tests/NavigationDerbyUI.java
similarity index 86%
copy from tests/ldap/src/test/java/org/apache/manifoldcf/ldap_tests/NavigationDerbyUI.java
copy to connectors/nullauthority/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/nullauthority/tests/NavigationDerbyUI.java
index 7fdd649..702ade8 100644
--- a/tests/ldap/src/test/java/org/apache/manifoldcf/ldap_tests/NavigationDerbyUI.java
+++ b/connectors/nullauthority/connector/src/test/java/org/apache/manifoldcf/authorities/authorities/nullauthority/tests/NavigationDerbyUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.ldap_tests;
+package org.apache.manifoldcf.authorities.authorities.nullauthority.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -49,7 +49,7 @@
     HTMLTester.Loop loop;
     
     window = testerInstance.openMainWindow("http://localhost:8346/mcf-crawler-ui/index.jsp");
-
+    
     // Login
     form = window.findForm(testerInstance.createStringDescription("loginform"));
     textarea = form.findTextarea(testerInstance.createStringDescription("userID"));
@@ -58,8 +58,7 @@
     textarea.setValue(testerInstance.createStringDescription("admin"));
     button = window.findButton(testerInstance.createStringDescription("Login"));
     button.click();
-    window = testerInstance.findWindow(null);
-
+    
     // Define an authority connection via the UI
     window = testerInstance.findWindow(null);
     link = window.findLink(testerInstance.createStringDescription("List authority groups"));
@@ -91,22 +90,13 @@
     window = testerInstance.findWindow(null);
     form = window.findForm(testerInstance.createStringDescription("editconnection"));
     selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.authorities.authorities.ldap.LDAPAuthority"));
+    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.authorities.authorities.nullauthority.NullAuthority"));
     selectbox = form.findSelectbox(testerInstance.createStringDescription("authoritygroup"));
     selectbox.selectValue(testerInstance.createStringDescription("MyAuthorityConnection"));
     button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
     button.click();
-    // Server tab
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("LDAP tab"));
-    link.click();
-    window = testerInstance.findWindow(null);
-    form = window.findForm(testerInstance.createStringDescription("editconnection"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("ldapServerName"));
-    textarea.setValue(testerInstance.createStringDescription("localhost"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("ldapServerBase"));
-    textarea.setValue(testerInstance.createStringDescription("dc=localhost"));
     // Go back to the Name tab
+    window = testerInstance.findWindow(null);
     link = window.findLink(testerInstance.createStringDescription("Name tab"));
     link.click();
     // Now save the connection.
diff --git a/connectors/nullauthority/pom.xml b/connectors/nullauthority/pom.xml
index 4892100..be160ee 100644
--- a/connectors/nullauthority/pom.xml
+++ b/connectors/nullauthority/pom.xml
@@ -24,10 +24,16 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-nullauthority-connector</artifactId>
   <name>ManifoldCF - Connectors - Null Authority</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
@@ -37,9 +43,22 @@
           <include>**/*.properties</include>
         </includes>
       </resource>
+      <resource>
+        <directory>${basedir}/connector/src/main/resources</directory>
+        <includes>
+          <include>**/*.html</include>
+          <include>**/*.js</include>
+        </includes>
+      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -62,6 +81,97 @@
             </execution>
         </executions>
       </plugin>
+
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
   </build>
 
@@ -86,5 +196,164 @@
       <artifactId>mcf-ui-core</artifactId>
       <version>${project.version}</version>
     </dependency>
+    
+    <!-- Testing dependencies -->
+    
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-core</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-agents</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-pull-agent</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>postgresql</groupId>
+      <artifactId>postgresql</artifactId>
+      <version>${postgresql.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hsqldb</groupId>
+      <artifactId>hsqldb</artifactId>
+      <version>${hsqldb.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.derby</groupId>
+      <artifactId>derby</artifactId>
+      <version>${derby.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+      <version>${mysql.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 </project>
diff --git a/connectors/nulloutput/build.xml b/connectors/nulloutput/build.xml
index c0b0629..336a831 100644
--- a/connectors/nulloutput/build.xml
+++ b/connectors/nulloutput/build.xml
@@ -17,6 +17,24 @@
 
 <project name="nulloutput" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
+
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-output-connector">
+            <param name="connector-label" value="Null"/>
+            <param name="connector-class" value="org.apache.manifoldcf.agents.output.nullconnector.NullConnector"/>
+        </antcall>
+    </target>
 
 </project>
diff --git a/connectors/nulloutput/pom.xml b/connectors/nulloutput/pom.xml
index b2ce88d..4cd9b74 100644
--- a/connectors/nulloutput/pom.xml
+++ b/connectors/nulloutput/pom.xml
@@ -24,10 +24,16 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-nulloutput-connector</artifactId>
   <name>ManifoldCF - Connectors - Null Output</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
@@ -37,9 +43,22 @@
           <include>**/*.properties</include>
         </includes>
       </resource>
+      <resource>
+        <directory>${basedir}/connector/src/main/resources</directory>
+        <includes>
+          <include>**/*.html</include>
+          <include>**/*.js</include>
+        </includes>
+      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -62,6 +81,97 @@
             </execution>
         </executions>
       </plugin>
+
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
   </build>
   
@@ -81,5 +191,164 @@
       <artifactId>mcf-ui-core</artifactId>
       <version>${project.version}</version>
     </dependency>
+    
+    <!-- Testing dependencies -->
+    
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-core</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-agents</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-pull-agent</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>postgresql</groupId>
+      <artifactId>postgresql</artifactId>
+      <version>${postgresql.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hsqldb</groupId>
+      <artifactId>hsqldb</artifactId>
+      <version>${hsqldb.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.derby</groupId>
+      <artifactId>derby</artifactId>
+      <version>${derby.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+      <version>${mysql.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 </project>
diff --git a/connectors/opensearchserver/build.xml b/connectors/opensearchserver/build.xml
index 0af8d07..74237ff 100644
--- a/connectors/opensearchserver/build.xml
+++ b/connectors/opensearchserver/build.xml
@@ -17,6 +17,24 @@
 
 <project name="opensearchserver" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
+
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-output-connector">
+            <param name="connector-label" value="OpenSearchServer"/>
+            <param name="connector-class" value="org.apache.manifoldcf.agents.output.opensearchserver.OpenSearchServerConnector"/>
+        </antcall>
+    </target>
 
 </project>
diff --git a/tests/opensearchserver/src/test/java/org/apache/manifoldcf/opensearchserver_tests/BaseUIDerby.java b/connectors/opensearchserver/connector/src/test/java/org/apache/manifoldcf/agents/output/opensearchserver/tests/BaseUIDerby.java
similarity index 88%
rename from tests/opensearchserver/src/test/java/org/apache/manifoldcf/opensearchserver_tests/BaseUIDerby.java
rename to connectors/opensearchserver/connector/src/test/java/org/apache/manifoldcf/agents/output/opensearchserver/tests/BaseUIDerby.java
index 4761f88..e3f3471 100644
--- a/tests/opensearchserver/src/test/java/org/apache/manifoldcf/opensearchserver_tests/BaseUIDerby.java
+++ b/connectors/opensearchserver/connector/src/test/java/org/apache/manifoldcf/agents/output/opensearchserver/tests/BaseUIDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.opensearchserver_tests;
+package org.apache.manifoldcf.agents.output.opensearchserver.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -32,12 +32,12 @@
 {
   protected String[] getConnectorNames()
   {
-    return new String[]{"File Connector"};
+    return new String[]{"Test Connector"};
   }
   
   protected String[] getConnectorClasses()
   {
-    return new String[]{"org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector"};
+    return new String[]{"org.apache.manifoldcf.crawler.tests.TestingRepositoryConnector"};
   }
   
   protected String[] getOutputNames()
diff --git a/tests/opensearchserver/src/test/java/org/apache/manifoldcf/opensearchserver_tests/NavigationDerbyUI.java b/connectors/opensearchserver/connector/src/test/java/org/apache/manifoldcf/agents/output/opensearchserver/tests/NavigationDerbyUI.java
similarity index 98%
rename from tests/opensearchserver/src/test/java/org/apache/manifoldcf/opensearchserver_tests/NavigationDerbyUI.java
rename to connectors/opensearchserver/connector/src/test/java/org/apache/manifoldcf/agents/output/opensearchserver/tests/NavigationDerbyUI.java
index 418b05e..36f4710 100644
--- a/tests/opensearchserver/src/test/java/org/apache/manifoldcf/opensearchserver_tests/NavigationDerbyUI.java
+++ b/connectors/opensearchserver/connector/src/test/java/org/apache/manifoldcf/agents/output/opensearchserver/tests/NavigationDerbyUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.opensearchserver_tests;
+package org.apache.manifoldcf.agents.output.opensearchserver.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -114,7 +114,7 @@
     window = testerInstance.findWindow(null);
     form = window.findForm(testerInstance.createStringDescription("editconnection"));
     selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector"));
+    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.crawler.tests.TestingRepositoryConnector"));
     button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
     button.click();
     // Visit the Throttling tab
diff --git a/connectors/opensearchserver/pom.xml b/connectors/opensearchserver/pom.xml
index c28ec91..d90f3ec 100644
--- a/connectors/opensearchserver/pom.xml
+++ b/connectors/opensearchserver/pom.xml
@@ -33,29 +33,41 @@
     </developer>
   </developers>
   
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-opensearchserver-connector</artifactId>
   <name>ManifoldCF - Connectors - OpenSearchServer</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
       <resource>
+        <directory>${basedir}/connector/src/main/native2ascii</directory>
+        <includes>
+          <include>**/*.properties</include>
+        </includes>
+      </resource>
+      <resource>
         <directory>${basedir}/connector/src/main/resources</directory>
         <includes>
           <include>**/*.html</include>
           <include>**/*.js</include>
         </includes>
       </resource>
-      <resource>
-        <directory>${basedir}/connector/src/main/native2ascii</directory>
-        <includes>
-          <include>**/*.properties</include>
-        </includes>
-      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -78,6 +90,97 @@
             </execution>
         </executions>
       </plugin>
+
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
   </build>
 
@@ -117,6 +220,9 @@
       <artifactId>commons-codec</artifactId>
       <version>${commons-codec.version}</version>
     </dependency>
+    
+    <!-- Testing dependencies -->
+    
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
@@ -144,6 +250,7 @@
       <type>test-jar</type>
       <scope>test</scope>
     </dependency>
+
     <dependency>
       <groupId>postgresql</groupId>
       <artifactId>postgresql</artifactId>
@@ -162,5 +269,115 @@
       <version>${derby.version}</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+      <version>${mysql.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 </project>
\ No newline at end of file
diff --git a/connectors/regexpmapper/build.xml b/connectors/regexpmapper/build.xml
index c5b4f4f..e757bf9 100644
--- a/connectors/regexpmapper/build.xml
+++ b/connectors/regexpmapper/build.xml
@@ -17,7 +17,24 @@
 
 <project name="regexpmapper" default="all">
 
-    <import file="../connector-build.xml"/>
-    
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
+
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-mapping-connector">
+            <param name="connector-label" value="Regular expression mapper"/>
+            <param name="connector-class" value="org.apache.manifoldcf.authorities.mappers.regexp.RegexpMapper"/>
+        </antcall>
+    </target>
     
 </project>
diff --git a/connectors/regexpmapper/pom.xml b/connectors/regexpmapper/pom.xml
index 9c2f359..c8b8ba6 100644
--- a/connectors/regexpmapper/pom.xml
+++ b/connectors/regexpmapper/pom.xml
@@ -24,29 +24,41 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-regexpmapper-connector</artifactId>
   <name>ManifoldCF - Connectors - Regexp Mapper</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
       <resource>
+        <directory>${basedir}/connector/src/main/native2ascii</directory>
+        <includes>
+          <include>**/*.properties</include>
+        </includes>
+      </resource>
+      <resource>
         <directory>${basedir}/connector/src/main/resources</directory>
         <includes>
           <include>**/*.html</include>
           <include>**/*.js</include>
         </includes>
       </resource>
-      <resource>
-        <directory>${basedir}/connector/src/main/native2ascii</directory>
-        <includes>
-          <include>**/*.properties</include>
-        </includes>
-      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -69,6 +81,97 @@
             </execution>
         </executions>
       </plugin>
+
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
 
   </build>
@@ -94,5 +197,164 @@
       <artifactId>mcf-ui-core</artifactId>
       <version>${project.version}</version>
     </dependency>
+    
+    <!-- Testing dependencies -->
+    
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-core</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-agents</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-pull-agent</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>postgresql</groupId>
+      <artifactId>postgresql</artifactId>
+      <version>${postgresql.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hsqldb</groupId>
+      <artifactId>hsqldb</artifactId>
+      <version>${hsqldb.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.derby</groupId>
+      <artifactId>derby</artifactId>
+      <version>${derby.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+      <version>${mysql.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 </project>
\ No newline at end of file
diff --git a/connectors/rss/build.xml b/connectors/rss/build.xml
index a59ede5..fa5edf5 100644
--- a/connectors/rss/build.xml
+++ b/connectors/rss/build.xml
@@ -17,6 +17,24 @@
 
 <project name="rss" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
+
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-repository-connector">
+            <param name="connector-label" value="RSS"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.rss.RSSConnector"/>
+        </antcall>
+    </target>
 
 </project>
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BaseDerby.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BaseITDerby.java
similarity index 86%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BaseDerby.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BaseITDerby.java
index 0790f65..aeca3bf 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BaseDerby.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BaseITDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -28,7 +28,7 @@
 import org.junit.*;
 
 /** Tests that run the "agents daemon" should be derived from this */
-public class BaseDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
+public class BaseITDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
 {
   protected String[] getConnectorNames()
   {
@@ -47,7 +47,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
   
 }
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BaseHSQLDB.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BaseITHSQLDB.java
similarity index 83%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BaseHSQLDB.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BaseITHSQLDB.java
index a7db995..3ac1cf5 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BaseHSQLDB.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BaseITHSQLDB.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -28,14 +28,14 @@
 import org.junit.*;
 
 /** Tests that run the "agents daemon" should be derived from this */
-public class BaseHSQLDB extends org.apache.manifoldcf.crawler.tests.BaseITHSQLDB
+public class BaseITHSQLDB extends org.apache.manifoldcf.crawler.tests.BaseITHSQLDB
 {
-  public BaseHSQLDB()
+  public BaseITHSQLDB()
   {
     super();
   }
   
-  public BaseHSQLDB(boolean singleWar)
+  public BaseITHSQLDB(boolean singleWar)
   {
     super(singleWar);
   }
@@ -57,7 +57,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
   
 }
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BaseMySQL.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BaseITMySQL.java
similarity index 86%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BaseMySQL.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BaseITMySQL.java
index 5b8104b..e79d7b8 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BaseMySQL.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BaseITMySQL.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -28,7 +28,7 @@
 import org.junit.*;
 
 /** Tests that run the "agents daemon" should be derived from this */
-public class BaseMySQL extends org.apache.manifoldcf.crawler.tests.BaseITMySQL
+public class BaseITMySQL extends org.apache.manifoldcf.crawler.tests.BaseITMySQL
 {
   protected String[] getConnectorNames()
   {
@@ -47,7 +47,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
   
 }
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BaseMySQL.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BaseITPostgresql.java
similarity index 85%
copy from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BaseMySQL.java
copy to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BaseITPostgresql.java
index 5b8104b..2c50b9d 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BaseMySQL.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BaseITPostgresql.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -28,7 +28,7 @@
 import org.junit.*;
 
 /** Tests that run the "agents daemon" should be derived from this */
-public class BaseMySQL extends org.apache.manifoldcf.crawler.tests.BaseITMySQL
+public class BaseITPostgresql extends org.apache.manifoldcf.crawler.tests.BaseITPostgresql
 {
   protected String[] getConnectorNames()
   {
@@ -47,7 +47,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
   
 }
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BaseUIDerby.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BaseUIDerby.java
similarity index 91%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BaseUIDerby.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BaseUIDerby.java
index ebaa287..e791404 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BaseUIDerby.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BaseUIDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -47,7 +47,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
 
 }
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BigCrawlDerbyLT.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BigCrawlDerbyLT.java
similarity index 92%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BigCrawlDerbyLT.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BigCrawlDerbyLT.java
index 7439edc..5de95d1 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BigCrawlDerbyLT.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BigCrawlDerbyLT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class BigCrawlDerbyLT extends BaseDerby
+public class BigCrawlDerbyLT extends BaseITDerby
 {
 
   protected BigCrawlTester tester;
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BigCrawlHSQLDBLT.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BigCrawlHSQLDBLT.java
similarity index 92%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BigCrawlHSQLDBLT.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BigCrawlHSQLDBLT.java
index 145620f..3642ca3 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BigCrawlHSQLDBLT.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BigCrawlHSQLDBLT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class BigCrawlHSQLDBLT extends BaseHSQLDB
+public class BigCrawlHSQLDBLT extends BaseITHSQLDB
 {
 
   protected BigCrawlTester tester;
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BigCrawlMySQLLT.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BigCrawlMySQLLT.java
similarity index 92%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BigCrawlMySQLLT.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BigCrawlMySQLLT.java
index 73b0b65..28f4f3c 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BigCrawlMySQLLT.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BigCrawlMySQLLT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class BigCrawlMySQLLT extends BaseMySQL
+public class BigCrawlMySQLLT extends BaseITMySQL
 {
 
   protected BigCrawlTester tester;
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BigCrawlPostgresqlLT.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BigCrawlPostgresqlLT.java
similarity index 92%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BigCrawlPostgresqlLT.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BigCrawlPostgresqlLT.java
index 68512b2..744569c 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BigCrawlPostgresqlLT.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BigCrawlPostgresqlLT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class BigCrawlPostgresqlLT extends BasePostgresql
+public class BigCrawlPostgresqlLT extends BaseITPostgresql
 {
 
   protected BigCrawlTester tester;
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BigCrawlTester.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BigCrawlTester.java
similarity index 96%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BigCrawlTester.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BigCrawlTester.java
index 2de7dc7..81cd834 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BigCrawlTester.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/BigCrawlTester.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -66,7 +66,7 @@
     IOutputConnection outputConn = outputMgr.create();
     outputConn.setName("Null Connection");
     outputConn.setDescription("Null Connection");
-    outputConn.setClassName("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
+    outputConn.setClassName("org.apache.manifoldcf.agents.tests.TestingOutputConnector");
     outputConn.setMaxConnections(100);
     // Now, save
     outputMgr.save(outputConn);
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/FlakyDerbyInstance.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/FlakyDerbyInstance.java
similarity index 97%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/FlakyDerbyInstance.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/FlakyDerbyInstance.java
index 274f069..0881c2b 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/FlakyDerbyInstance.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/FlakyDerbyInstance.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/MockRSSService.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/MockRSSService.java
similarity index 98%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/MockRSSService.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/MockRSSService.java
index d5c719c..7d46a46 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/MockRSSService.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/MockRSSService.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import org.eclipse.jetty.servlet.ServletHolder;
 import org.eclipse.jetty.server.Server;
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/NavigationDerbyUI.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/NavigationDerbyUI.java
similarity index 98%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/NavigationDerbyUI.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/NavigationDerbyUI.java
index 0377e64..e0b0e89 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/NavigationDerbyUI.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/NavigationDerbyUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -77,7 +77,7 @@
     window = testerInstance.findWindow(null);
     form = window.findForm(testerInstance.createStringDescription("editconnection"));
     selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.output.nullconnector.NullConnector"));
+    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.tests.TestingOutputConnector"));
     button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
     button.click();
     // Visit the Throttling tab
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSFlakyDerbyIT.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSFlakyDerbyIT.java
similarity index 95%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSFlakyDerbyIT.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSFlakyDerbyIT.java
index 07ef2ee..2d3991c 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSFlakyDerbyIT.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSFlakyDerbyIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class RSSFlakyDerbyIT extends BaseDerby
+public class RSSFlakyDerbyIT extends BaseITDerby
 {
   protected RSSSimpleCrawlTester tester;
   protected MockRSSService rssService = null;
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlCombinedHSQLDBIT.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlCombinedHSQLDBIT.java
similarity index 91%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlCombinedHSQLDBIT.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlCombinedHSQLDBIT.java
index 6cd1553..3a78444 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlCombinedHSQLDBIT.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlCombinedHSQLDBIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class RSSSimpleCrawlCombinedHSQLDBIT extends BaseHSQLDB
+public class RSSSimpleCrawlCombinedHSQLDBIT extends BaseITHSQLDB
 {
 
   protected RSSSimpleCrawlTester tester;
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlDerbyIT.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlDerbyIT.java
similarity index 92%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlDerbyIT.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlDerbyIT.java
index 7b7b732..8afbf29 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlDerbyIT.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlDerbyIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and

 * limitations under the License.

 */

-package org.apache.manifoldcf.rss_tests;

+package org.apache.manifoldcf.crawler.connectors.rss.tests;

 

 import java.io.*;

 import java.util.*;

 import org.junit.*;

 

 /** This is a very basic sanity check */

-public class RSSSimpleCrawlDerbyIT extends BaseDerby

+public class RSSSimpleCrawlDerbyIT extends BaseITDerby

 {

 

   protected RSSSimpleCrawlTester tester;

diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlHSQLDBIT.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlHSQLDBIT.java
similarity index 92%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlHSQLDBIT.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlHSQLDBIT.java
index 5cee885..ad30525 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlHSQLDBIT.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlHSQLDBIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class RSSSimpleCrawlHSQLDBIT extends BaseHSQLDB
+public class RSSSimpleCrawlHSQLDBIT extends BaseITHSQLDB
 {
 
   protected RSSSimpleCrawlTester tester;
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlMySQLIT.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlMySQLIT.java
similarity index 92%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlMySQLIT.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlMySQLIT.java
index a5a007a..8c962fe 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlMySQLIT.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlMySQLIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class RSSSimpleCrawlMySQLIT extends BaseMySQL
+public class RSSSimpleCrawlMySQLIT extends BaseITMySQL
 {
 
   protected RSSSimpleCrawlTester tester;
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlPostgresqlIT.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlPostgresqlIT.java
similarity index 91%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlPostgresqlIT.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlPostgresqlIT.java
index f667489..75ff5b8 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlPostgresqlIT.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlPostgresqlIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class RSSSimpleCrawlPostgresqlIT extends BasePostgresql
+public class RSSSimpleCrawlPostgresqlIT extends BaseITPostgresql
 {
 
   protected RSSSimpleCrawlTester tester;
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlTester.java b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlTester.java
similarity index 96%
rename from tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlTester.java
rename to connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlTester.java
index a455fce..7972480 100644
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/RSSSimpleCrawlTester.java
+++ b/connectors/rss/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/rss/tests/RSSSimpleCrawlTester.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.rss_tests;
+package org.apache.manifoldcf.crawler.connectors.rss.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -73,7 +73,7 @@
     IOutputConnection outputConn = outputMgr.create();
     outputConn.setName("Null Connection");
     outputConn.setDescription("Null Connection");
-    outputConn.setClassName("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
+    outputConn.setClassName("org.apache.manifoldcf.agents.tests.TestingOutputConnector");
     outputConn.setMaxConnections(100);
     // Now, save
     outputMgr.save(outputConn);
diff --git a/connectors/rss/pom.xml b/connectors/rss/pom.xml
index 3dea563..8f041de 100644
--- a/connectors/rss/pom.xml
+++ b/connectors/rss/pom.xml
@@ -24,10 +24,16 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-rss-connector</artifactId>
   <name>ManifoldCF - Connectors - RSS</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
@@ -37,9 +43,22 @@
           <include>**/*.properties</include>
         </includes>
       </resource>
+      <resource>
+        <directory>${basedir}/connector/src/main/resources</directory>
+        <includes>
+          <include>**/*.html</include>
+          <include>**/*.js</include>
+        </includes>
+      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -62,6 +81,57 @@
             </execution>
         </executions>
       </plugin>
+
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-combined-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
@@ -74,6 +144,42 @@
           <workingDirectory>target/test-output</workingDirectory>
         </configuration>
       </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+            <combinedWarPath>../dependency/mcf-combined-service-${project.version}.war</combinedWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
   </build>
   
@@ -118,12 +224,171 @@
       <artifactId>xercesImpl</artifactId>
       <version>${xerces.version}</version>
     </dependency>
+
+    <!-- Testing dependencies -->
+    
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>${junit.version}</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-core</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-agents</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-pull-agent</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>postgresql</groupId>
+      <artifactId>postgresql</artifactId>
+      <version>${postgresql.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hsqldb</groupId>
+      <artifactId>hsqldb</artifactId>
+      <version>${hsqldb.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.derby</groupId>
+      <artifactId>derby</artifactId>
+      <version>${derby.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+      <version>${mysql.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-combined-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
 
   </dependencies>
 </project>
diff --git a/connectors/sharepoint/build.xml b/connectors/sharepoint/build.xml
index 0ea455b..cdfc706 100644
--- a/connectors/sharepoint/build.xml
+++ b/connectors/sharepoint/build.xml
@@ -17,7 +17,18 @@
 
 <project name="sharepoint" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
 
     <!-- target name="calculate-condition">
         <available file="lib-proprietary/DspSts.wsdl" property="DspStsStatus"/>
@@ -92,4 +103,19 @@
         </delete>
     </target -->
 
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-repository-connector">
+            <param name="connector-label" value="SharePoint"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.sharepoint.SharePointRepository"/>
+        </antcall>
+        <antcall target="general-add-authority-connector">
+            <param name="connector-label" value="SharePoint/ActiveDirectory"/>
+            <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.sharepoint.SharePointADAuthority"/>
+        </antcall>
+        <antcall target="general-add-authority-connector">
+            <param name="connector-label" value="SharePoint/Native"/>
+            <param name="connector-class" value="org.apache.manifoldcf.authorities.authorities.sharepoint.SharePointAuthority"/>
+        </antcall>
+    </target>
+
 </project>
diff --git a/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/sharepoint/SPSProxyHelper.java b/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/sharepoint/SPSProxyHelper.java
index 7fc5c33..0f91ec0 100644
--- a/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/sharepoint/SPSProxyHelper.java
+++ b/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/sharepoint/SPSProxyHelper.java
@@ -67,7 +67,7 @@
 public class SPSProxyHelper {
 
 
-  public static final String HTTPCLIENT_PROPERTY = org.apache.manifoldcf.sharepoint.CommonsHTTPSender.HTTPCLIENT_PROPERTY;
+  public static final String HTTPCLIENT_PROPERTY = org.apache.manifoldcf.core.common.CommonsHTTPSender.HTTPCLIENT_PROPERTY;
 
   private final String serverUrl;
   private final String serverLocation;
diff --git a/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/sharepoint/SharePointAuthority.java b/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/sharepoint/SharePointAuthority.java
index 98cc965..4640b95 100644
--- a/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/sharepoint/SharePointAuthority.java
+++ b/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/authorities/authorities/sharepoint/SharePointAuthority.java
@@ -731,7 +731,7 @@
           .setCircularRedirectsAllowed(true)
           .setSocketTimeout(socketTimeout)
           .setStaleConnectionCheckEnabled(true)
-          .setExpectContinueEnabled(true)
+          .setExpectContinueEnabled(false)
           .setConnectTimeout(connectionTimeout)
           .setConnectionRequestTimeout(socketTimeout);
 
@@ -752,7 +752,7 @@
       httpClient = builder.build();
       
       proxy = new SPSProxyHelper( serverUrl, encodedServerLocation, serverLocation, serverUserName, password,
-        org.apache.manifoldcf.sharepoint.CommonsHTTPSender.class, "sharepoint-client-config.wsdd",
+        org.apache.manifoldcf.core.common.CommonsHTTPSender.class, "client-config.wsdd",
         httpClient, isClaimSpace );
       
     }
diff --git a/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SPSProxyHelper.java b/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SPSProxyHelper.java
index 855798c..8c8b2dc 100644
--- a/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SPSProxyHelper.java
+++ b/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SPSProxyHelper.java
@@ -69,7 +69,7 @@
 public class SPSProxyHelper {
 
 
-  public static final String HTTPCLIENT_PROPERTY = org.apache.manifoldcf.sharepoint.CommonsHTTPSender.HTTPCLIENT_PROPERTY;
+  public static final String HTTPCLIENT_PROPERTY = org.apache.manifoldcf.core.common.CommonsHTTPSender.HTTPCLIENT_PROPERTY;
 
   private String serverUrl;
   private String serverLocation;
diff --git a/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SharePointRepository.java b/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SharePointRepository.java
index ee8c5bb..8a17648 100644
--- a/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SharePointRepository.java
+++ b/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/sharepoint/SharePointRepository.java
@@ -255,7 +255,7 @@
           .setCircularRedirectsAllowed(true)
           .setSocketTimeout(socketTimeout)
           .setStaleConnectionCheckEnabled(true)
-          .setExpectContinueEnabled(true)
+          .setExpectContinueEnabled(false)
           .setConnectTimeout(connectionTimeout)
           .setConnectionRequestTimeout(socketTimeout);
 
@@ -276,7 +276,7 @@
       httpClient = builder.build();
 
       proxy = new SPSProxyHelper( serverUrl, encodedServerLocation, serverLocation, userName, password,
-        org.apache.manifoldcf.sharepoint.CommonsHTTPSender.class, "sharepoint-client-config.wsdd",
+        org.apache.manifoldcf.core.common.CommonsHTTPSender.class, "client-config.wsdd",
         httpClient );
       
     }
diff --git a/connectors/sharepoint/pom.xml b/connectors/sharepoint/pom.xml
index 40060ab..55f44d4 100644
--- a/connectors/sharepoint/pom.xml
+++ b/connectors/sharepoint/pom.xml
@@ -24,29 +24,41 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-sharepoint-connector</artifactId>
   <name>ManifoldCF - Connectors - SharePoint</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
     <resources>
       <resource>
+        <directory>${basedir}/connector/src/main/native2ascii</directory>
+        <includes>
+          <include>**/*.properties</include>
+        </includes>
+      </resource>
+      <resource>
         <directory>${basedir}/connector/src/main/resources</directory>
         <includes>
           <include>**/*.html</include>
           <include>**/*.js</include>
         </includes>
       </resource>
-      <resource>
-        <directory>${basedir}/connector/src/main/native2ascii</directory>
-        <includes>
-          <include>**/*.properties</include>
-        </includes>
-      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -69,6 +81,50 @@
             </execution>
         </executions>
       </plugin>
+
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
@@ -82,6 +138,40 @@
         </configuration>
       </plugin>
 
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
       <!--
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
@@ -212,6 +302,9 @@
       <artifactId>xercesImpl</artifactId>
       <version>${xerces.version}</version>
     </dependency>
+
+    <!-- Testing dependencies -->
+    
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
@@ -219,6 +312,156 @@
       <scope>test</scope>
     </dependency>
     <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-core</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-agents</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-pull-agent</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>postgresql</groupId>
+      <artifactId>postgresql</artifactId>
+      <version>${postgresql.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hsqldb</groupId>
+      <artifactId>hsqldb</artifactId>
+      <version>${hsqldb.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.derby</groupId>
+      <artifactId>derby</artifactId>
+      <version>${derby.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+      <version>${mysql.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
       <groupId>commons-discovery</groupId>
       <artifactId>commons-discovery</artifactId>
       <version>0.2</version>
diff --git a/connectors/solr/build.xml b/connectors/solr/build.xml
index e3969cb..53ffb92 100644
--- a/connectors/solr/build.xml
+++ b/connectors/solr/build.xml
@@ -17,7 +17,18 @@
 
 <project name="solr" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
 
     <path id="connector-classpath">
         <path refid="mcf-connector-build.connector-classpath"/>
@@ -53,5 +64,12 @@
           <fileset dir="../../lib/solr-4.x"/>
         </copy>
     </target>
-    
+
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-output-connector">
+            <param name="connector-label" value="Solr"/>
+            <param name="connector-class" value="org.apache.manifoldcf.agents.output.solr.SolrConnector"/>
+        </antcall>
+    </target>
+
 </project>
diff --git a/tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/BaseDerby.java b/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/BaseITDerby.java
similarity index 83%
rename from tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/BaseDerby.java
rename to connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/BaseITDerby.java
index 7ec729c..350c61c 100644
--- a/tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/BaseDerby.java
+++ b/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/BaseITDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.solr_tests;
+package org.apache.manifoldcf.agents.output.solr.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -28,16 +28,16 @@
 import org.junit.*;
 
 /** Tests that run the "agents daemon" should be derived from this */
-public class BaseDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
+public class BaseITDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
 {
   protected String[] getConnectorNames()
   {
-    return new String[]{"File Connector"};
+    return new String[]{"Test Connector"};
   }
   
   protected String[] getConnectorClasses()
   {
-    return new String[]{"org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector"};
+    return new String[]{"org.apache.manifoldcf.crawler.tests.TestingRepositoryConnector"};
   }
   
   protected String[] getOutputNames()
diff --git a/tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/BaseUIDerby.java b/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/BaseUIDerby.java
similarity index 88%
rename from tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/BaseUIDerby.java
rename to connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/BaseUIDerby.java
index 82a0f6b..c901570 100644
--- a/tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/BaseUIDerby.java
+++ b/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/BaseUIDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.solr_tests;
+package org.apache.manifoldcf.agents.output.solr.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -32,12 +32,12 @@
 {
   protected String[] getConnectorNames()
   {
-    return new String[]{"File Connector"};
+    return new String[]{"Test Connector"};
   }
   
   protected String[] getConnectorClasses()
   {
-    return new String[]{"org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector"};
+    return new String[]{"org.apache.manifoldcf.crawler.tests.TestingRepositoryConnector"};
   }
   
   protected String[] getOutputNames()
diff --git a/tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/MockSolrService.java b/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/MockSolrService.java
similarity index 98%
rename from tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/MockSolrService.java
rename to connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/MockSolrService.java
index 1856179..ca474e3 100644
--- a/tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/MockSolrService.java
+++ b/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/MockSolrService.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.solr_tests;
+package org.apache.manifoldcf.agents.output.solr.tests;
 
 import org.eclipse.jetty.servlet.ServletHolder;
 import org.eclipse.jetty.server.Server;
diff --git a/tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/NavigationDerbyUI.java b/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/NavigationDerbyUI.java
similarity index 98%
rename from tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/NavigationDerbyUI.java
rename to connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/NavigationDerbyUI.java
index ce003a2..06249f7 100644
--- a/tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/NavigationDerbyUI.java
+++ b/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/NavigationDerbyUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.solr_tests;
+package org.apache.manifoldcf.agents.output.solr.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -138,7 +138,7 @@
     window = testerInstance.findWindow(null);
     form = window.findForm(testerInstance.createStringDescription("editconnection"));
     selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector"));
+    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.crawler.tests.TestingRepositoryConnector"));
     button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
     button.click();
     // Visit the Throttling tab
diff --git a/tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/SolrCrawlDerbyIT.java b/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/SolrCrawlDerbyIT.java
similarity index 83%
rename from tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/SolrCrawlDerbyIT.java
rename to connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/SolrCrawlDerbyIT.java
index 573a024..173411b 100644
--- a/tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/SolrCrawlDerbyIT.java
+++ b/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/SolrCrawlDerbyIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.solr_tests;
+package org.apache.manifoldcf.agents.output.solr.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class SolrCrawlDerbyIT extends BaseDerby
+public class SolrCrawlDerbyIT extends BaseITDerby
 {
 
   protected SolrTester tester;
@@ -54,20 +54,6 @@
       solrService.stop();
   }
 
-  @Before
-  public void setupTestArea()
-    throws Exception
-  {
-    tester.setupTestArea();
-  }
-  
-  @After
-  public void teardownTestArea()
-    throws Exception
-  {
-    tester.teardownTestArea();
-  }
-  
   @Test
   public void simpleCrawl()
     throws Exception
diff --git a/tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/SolrTester.java b/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/SolrTester.java
similarity index 76%
rename from tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/SolrTester.java
rename to connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/SolrTester.java
index 259a244..971387a 100644
--- a/tests/solr/src/test/java/org/apache/manifoldcf/solr_tests/SolrTester.java
+++ b/connectors/solr/connector/src/test/java/org/apache/manifoldcf/agents/output/solr/tests/SolrTester.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.solr_tests;
+package org.apache.manifoldcf.agents.output.solr.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -38,39 +38,6 @@
     this.instance = instance;
   }
   
-  public void setupTestArea()
-    throws Exception
-  {
-    File f = new File("testdata");
-    FileHelper.removeDirectory(f);
-    FileHelper.createDirectory(f);
-    // Create the test data files.
-    String baseFileName = "testdata/";
-    int i0 = 0;
-    while (i0 < 10)
-    {
-      String fileName0 = baseFileName + "/dir-" + i0;
-      FileHelper.createDirectory(new File(fileName0));
-      int i1 = 0;
-      while (i1 < 10)
-      {
-        String fileName1 = fileName0 + "/file-"+i1;
-        FileHelper.createFile(new File(fileName1),"Test file "+i0+":"+i1);
-        i1++;
-      }
-      i0++;
-    }
-    System.err.println("Done generating files");
-  }
-  
-  public void teardownTestArea()
-    throws Exception
-  {
-    System.err.println("Removing generated files");
-    File f = new File("testdata");
-    FileHelper.removeDirectory(f);
-  }
-  
   public void executeTest()
     throws Exception
   {
@@ -81,9 +48,9 @@
     // Create a basic file system connection, and save it.
     IRepositoryConnectionManager mgr = RepositoryConnectionManagerFactory.make(tc);
     IRepositoryConnection conn = mgr.create();
-    conn.setName("File Connection");
-    conn.setDescription("File Connection");
-    conn.setClassName("org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector");
+    conn.setName("Test Connection");
+    conn.setDescription("Test Connection");
+    conn.setClassName("org.apache.manifoldcf.crawler.tests.TestingRepositoryConnector");
     conn.setMaxConnections(100);
     // Now, save
     mgr.save(conn);
@@ -112,7 +79,7 @@
     IJobManager jobManager = JobManagerFactory.make(tc);
     IJobDescription job = jobManager.createJob();
     job.setDescription("Test Job");
-    job.setConnectionName("File Connection");
+    job.setConnectionName("Test Connection");
     job.setOutputConnectionName("Solr Connection");
     job.setType(job.TYPE_SPECIFIED);
     job.setStartMethod(job.START_DISABLE);
@@ -120,22 +87,8 @@
       
     // Now, set up the document specification.
     DocumentSpecification ds = job.getSpecification();
-    // Crawl everything underneath the 'testdata' area
-    File testDataFile = new File("testdata").getCanonicalFile();
-    if (!testDataFile.exists())
-      throw new ManifoldCFException("Test data area not found!  Looking in "+testDataFile.toString());
-    if (!testDataFile.isDirectory())
-      throw new ManifoldCFException("Test data area not a directory!  Looking in "+testDataFile.toString());
-    SpecificationNode sn = new SpecificationNode("startpoint");
-    sn.setAttribute("path",testDataFile.toString());
-    SpecificationNode n = new SpecificationNode("include");
-    n.setAttribute("type","file");
-    n.setAttribute("match","*");
-    sn.addChild(sn.getChildCount(),n);
-    n = new SpecificationNode("include");
-    n.setAttribute("type","directory");
-    n.setAttribute("match","*");
-    sn.addChild(sn.getChildCount(),n);
+    SpecificationNode sn = new SpecificationNode("documentcount");
+    sn.setAttribute("count","111");
     ds.addChild(ds.getChildCount(),sn);
       
     // Set up the output specification.
diff --git a/connectors/solr/pom.xml b/connectors/solr/pom.xml
index f6e8ff5..151a200 100644
--- a/connectors/solr/pom.xml
+++ b/connectors/solr/pom.xml
@@ -24,10 +24,16 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-solr-connector</artifactId>
   <name>ManifoldCF - Connectors - Solr</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
@@ -37,9 +43,22 @@
           <include>**/*.properties</include>
         </includes>
       </resource>
+      <resource>
+        <directory>${basedir}/connector/src/main/resources</directory>
+        <includes>
+          <include>**/*.html</include>
+          <include>**/*.js</include>
+        </includes>
+      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -62,6 +81,97 @@
             </execution>
         </executions>
       </plugin>
+
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
   </build>
   
@@ -106,5 +216,163 @@
       <artifactId>httpclient</artifactId>
       <version>${httpcomponent.httpclient.version}</version>
     </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+    </dependency>
+    
+    <!-- Testing dependencies -->
+    
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>${junit.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-core</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-agents</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-pull-agent</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>postgresql</groupId>
+      <artifactId>postgresql</artifactId>
+      <version>${postgresql.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hsqldb</groupId>
+      <artifactId>hsqldb</artifactId>
+      <version>${hsqldb.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.derby</groupId>
+      <artifactId>derby</artifactId>
+      <version>${derby.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+      <version>${mysql.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 </project>
diff --git a/connectors/webcrawler/build.xml b/connectors/webcrawler/build.xml
index 7b2aeb6..fd6dcf3 100644
--- a/connectors/webcrawler/build.xml
+++ b/connectors/webcrawler/build.xml
@@ -17,6 +17,24 @@
 
 <project name="webcrawler" default="all">
 
-    <import file="../connector-build.xml"/>
+    <property environment="env"/>
+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">
+        <isset property="env.MCFDISTPATH"/>
+    </condition>
+    <property name="abs-dist" location="../../dist"/>
+    <condition property="mcf-dist" value="${abs-dist}">
+        <not>
+            <isset property="env.MCFDISTPATH"/>
+        </not>
+    </condition>
+
+    <import file="${mcf-dist}/connector-build.xml"/>
+
+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">
+        <antcall target="general-add-repository-connector">
+            <param name="connector-label" value="Web"/>
+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.webcrawler.WebcrawlerConnector"/>
+        </antcall>
+    </target>
 
 </project>
diff --git a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BaseDerby.java b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BaseITDerby.java
similarity index 86%
rename from tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BaseDerby.java
rename to connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BaseITDerby.java
index 089526a..97cc8ca 100644
--- a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BaseDerby.java
+++ b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BaseITDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.webcrawler_tests;
+package org.apache.manifoldcf.crawler.connectors.webcrawler.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -28,7 +28,7 @@
 import org.junit.*;
 
 /** Tests that run the "agents daemon" should be derived from this */
-public class BaseDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
+public class BaseITDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
 {
   protected String[] getConnectorNames()
   {
@@ -47,7 +47,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
   
 }
diff --git a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BaseMySQL.java b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BaseITMySQL.java
similarity index 86%
rename from tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BaseMySQL.java
rename to connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BaseITMySQL.java
index ef78df0..23495d4 100644
--- a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BaseMySQL.java
+++ b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BaseITMySQL.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.webcrawler_tests;
+package org.apache.manifoldcf.crawler.connectors.webcrawler.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -28,7 +28,7 @@
 import org.junit.*;
 
 /** Tests that run the "agents daemon" should be derived from this */
-public class BaseMySQL extends org.apache.manifoldcf.crawler.tests.BaseITMySQL
+public class BaseITMySQL extends org.apache.manifoldcf.crawler.tests.BaseITMySQL
 {
   protected String[] getConnectorNames()
   {
@@ -47,7 +47,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
   
 }
diff --git a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BaseDerby.java b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BaseITPostgresql.java
similarity index 85%
copy from tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BaseDerby.java
copy to connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BaseITPostgresql.java
index 089526a..356036d 100644
--- a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BaseDerby.java
+++ b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BaseITPostgresql.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.webcrawler_tests;
+package org.apache.manifoldcf.crawler.connectors.webcrawler.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -28,7 +28,7 @@
 import org.junit.*;
 
 /** Tests that run the "agents daemon" should be derived from this */
-public class BaseDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
+public class BaseITPostgresql extends org.apache.manifoldcf.crawler.tests.BaseITPostgresql
 {
   protected String[] getConnectorNames()
   {
@@ -47,7 +47,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
   
 }
diff --git a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BaseUIDerby.java b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BaseUIDerby.java
similarity index 90%
rename from tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BaseUIDerby.java
rename to connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BaseUIDerby.java
index 4ac3468..349b8e6 100644
--- a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BaseUIDerby.java
+++ b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BaseUIDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.webcrawler_tests;
+package org.apache.manifoldcf.crawler.connectors.webcrawler.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -47,7 +47,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
 
 }
diff --git a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BigCrawlMySQLLT.java b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BigCrawlMySQLLT.java
similarity index 92%
rename from tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BigCrawlMySQLLT.java
rename to connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BigCrawlMySQLLT.java
index 4df381e..05b3884 100644
--- a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BigCrawlMySQLLT.java
+++ b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BigCrawlMySQLLT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.webcrawler_tests;
+package org.apache.manifoldcf.crawler.connectors.webcrawler.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class BigCrawlMySQLLT extends BaseMySQL
+public class BigCrawlMySQLLT extends BaseITMySQL
 {
 
   protected BigCrawlTester tester;
diff --git a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BigCrawlPostgresqlIT.java b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BigCrawlPostgresqlIT.java
similarity index 91%
rename from tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BigCrawlPostgresqlIT.java
rename to connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BigCrawlPostgresqlIT.java
index f1b3060..024e359 100644
--- a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BigCrawlPostgresqlIT.java
+++ b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BigCrawlPostgresqlIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.webcrawler_tests;
+package org.apache.manifoldcf.crawler.connectors.webcrawler.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class BigCrawlPostgresqlIT extends BasePostgresql
+public class BigCrawlPostgresqlIT extends BaseITPostgresql
 {
 
   protected BigCrawlTester tester;
diff --git a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BigCrawlTester.java b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BigCrawlTester.java
similarity index 97%
rename from tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BigCrawlTester.java
rename to connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BigCrawlTester.java
index ecd0acd..f1bc479 100644
--- a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BigCrawlTester.java
+++ b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/BigCrawlTester.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.webcrawler_tests;
+package org.apache.manifoldcf.crawler.connectors.webcrawler.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -66,7 +66,7 @@
     IOutputConnection outputConn = outputMgr.create();
     outputConn.setName("Null Connection");
     outputConn.setDescription("Null Connection");
-    outputConn.setClassName("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
+    outputConn.setClassName("org.apache.manifoldcf.agents.tests.TestingOutputConnector");
     outputConn.setMaxConnections(100);
     // Now, save
     outputMgr.save(outputConn);
diff --git a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/MockSessionWebService.java b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/MockSessionWebService.java
similarity index 98%
rename from tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/MockSessionWebService.java
rename to connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/MockSessionWebService.java
index de784c3..c30c653 100644
--- a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/MockSessionWebService.java
+++ b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/MockSessionWebService.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.webcrawler_tests;
+package org.apache.manifoldcf.crawler.connectors.webcrawler.tests;
 
 import org.eclipse.jetty.servlet.ServletHolder;
 import org.eclipse.jetty.server.Server;
diff --git a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/MockWebService.java b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/MockWebService.java
similarity index 98%
rename from tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/MockWebService.java
rename to connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/MockWebService.java
index 69f3a04..76de670 100644
--- a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/MockWebService.java
+++ b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/MockWebService.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.webcrawler_tests;
+package org.apache.manifoldcf.crawler.connectors.webcrawler.tests;
 
 import org.eclipse.jetty.servlet.ServletHolder;
 import org.eclipse.jetty.server.Server;
diff --git a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/NavigationDerbyUI.java b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/NavigationDerbyUI.java
similarity index 98%
rename from tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/NavigationDerbyUI.java
rename to connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/NavigationDerbyUI.java
index 195ab28..6f0c910 100644
--- a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/NavigationDerbyUI.java
+++ b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/NavigationDerbyUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.webcrawler_tests;
+package org.apache.manifoldcf.crawler.connectors.webcrawler.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -78,7 +78,7 @@
     window = testerInstance.findWindow(null);
     form = window.findForm(testerInstance.createStringDescription("editconnection"));
     selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.output.nullconnector.NullConnector"));
+    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.tests.TestingOutputConnector"));
     button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
     button.click();
     // Visit the Throttling tab
diff --git a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/SessionLoginDerbyIT.java b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/SessionLoginDerbyIT.java
similarity index 92%
rename from tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/SessionLoginDerbyIT.java
rename to connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/SessionLoginDerbyIT.java
index cd2f67c..1e88818 100644
--- a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/SessionLoginDerbyIT.java
+++ b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/SessionLoginDerbyIT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.webcrawler_tests;
+package org.apache.manifoldcf.crawler.connectors.webcrawler.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** Web connector session login test */
-public class SessionLoginDerbyIT extends BaseDerby
+public class SessionLoginDerbyIT extends BaseITDerby
 {
 
   protected SessionTester tester;
diff --git a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/SessionTester.java b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/SessionTester.java
similarity index 97%
rename from tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/SessionTester.java
rename to connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/SessionTester.java
index ed78aea..f0b69a6 100644
--- a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/SessionTester.java
+++ b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/SessionTester.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.webcrawler_tests;
+package org.apache.manifoldcf.crawler.connectors.webcrawler.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -119,7 +119,7 @@
     IOutputConnection outputConn = outputMgr.create();
     outputConn.setName("Null Connection");
     outputConn.setDescription("Null Connection");
-    outputConn.setClassName("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
+    outputConn.setClassName("org.apache.manifoldcf.agents.tests.TestingOutputConnector");
     outputConn.setMaxConnections(100);
     // Now, save
     outputMgr.save(outputConn);
diff --git a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/ThrottlingDerbyLT.java b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/ThrottlingDerbyLT.java
similarity index 92%
rename from tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/ThrottlingDerbyLT.java
rename to connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/ThrottlingDerbyLT.java
index 2b9b833..a459851 100644
--- a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/ThrottlingDerbyLT.java
+++ b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/ThrottlingDerbyLT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.webcrawler_tests;
+package org.apache.manifoldcf.crawler.connectors.webcrawler.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class ThrottlingDerbyLT extends BaseDerby
+public class ThrottlingDerbyLT extends BaseITDerby
 {
 
   protected ThrottlingTester tester;
diff --git a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/ThrottlingPostgresqlLT.java b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/ThrottlingPostgresqlLT.java
similarity index 91%
rename from tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/ThrottlingPostgresqlLT.java
rename to connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/ThrottlingPostgresqlLT.java
index 638b576..12cd6a0 100644
--- a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/ThrottlingPostgresqlLT.java
+++ b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/ThrottlingPostgresqlLT.java
@@ -16,14 +16,14 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.webcrawler_tests;
+package org.apache.manifoldcf.crawler.connectors.webcrawler.tests;
 
 import java.io.*;
 import java.util.*;
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class ThrottlingPostgresqlLT extends BasePostgresql
+public class ThrottlingPostgresqlLT extends BaseITPostgresql
 {
 
   protected ThrottlingTester tester;
diff --git a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/ThrottlingTester.java b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/ThrottlingTester.java
similarity index 96%
rename from tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/ThrottlingTester.java
rename to connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/ThrottlingTester.java
index 418efc7..d6b8332 100644
--- a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/ThrottlingTester.java
+++ b/connectors/webcrawler/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/webcrawler/tests/ThrottlingTester.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.webcrawler_tests;
+package org.apache.manifoldcf.crawler.connectors.webcrawler.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -84,7 +84,7 @@
     IOutputConnection outputConn = outputMgr.create();
     outputConn.setName("Null Connection");
     outputConn.setDescription("Null Connection");
-    outputConn.setClassName("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
+    outputConn.setClassName("org.apache.manifoldcf.agents.tests.TestingOutputConnector");
     outputConn.setMaxConnections(100);
     // Now, save
     outputMgr.save(outputConn);
diff --git a/connectors/webcrawler/pom.xml b/connectors/webcrawler/pom.xml
index 50ac18f..d70426e 100644
--- a/connectors/webcrawler/pom.xml
+++ b/connectors/webcrawler/pom.xml
@@ -24,10 +24,16 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-web-connector</artifactId>
   <name>ManifoldCF - Connectors - Web</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
@@ -37,9 +43,22 @@
           <include>**/*.properties</include>
         </includes>
       </resource>
+      <resource>
+        <directory>${basedir}/connector/src/main/resources</directory>
+        <includes>
+          <include>**/*.html</include>
+          <include>**/*.js</include>
+        </includes>
+      </resource>
     </resources> 
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
 
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -62,6 +81,50 @@
             </execution>
         </executions>
       </plugin>
+
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
@@ -74,6 +137,41 @@
           <workingDirectory>target/test-output</workingDirectory>
         </configuration>
       </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
   </build>
 	
@@ -118,12 +216,164 @@
       <artifactId>xercesImpl</artifactId>
       <version>${xerces.version}</version>
     </dependency>
+
+    <!-- Testing dependencies -->
+    
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>${junit.version}</version>
       <scope>test</scope>
     </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-core</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-agents</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-pull-agent</artifactId>
+      <version>${project.version}</version>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>postgresql</groupId>
+      <artifactId>postgresql</artifactId>
+      <version>${postgresql.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.hsqldb</groupId>
+      <artifactId>hsqldb</artifactId>
+      <version>${hsqldb.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.derby</groupId>
+      <artifactId>derby</artifactId>
+      <version>${derby.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>mysql</groupId>
+      <artifactId>mysql-connector-java</artifactId>
+      <version>${mysql.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
 
   </dependencies>
 </project>
diff --git a/connectors/wiki/build.xml b/connectors/wiki/build.xml
index 73c63e2..f10a52a 100644
--- a/connectors/wiki/build.xml
+++ b/connectors/wiki/build.xml
@@ -17,6 +17,24 @@
 

 <project name="wiki" default="all">

 

-    <import file="../connector-build.xml"/>

+    <property environment="env"/>

+    <condition property="mcf-dist" value="${env.MCFDISTPATH}">

+        <isset property="env.MCFDISTPATH"/>

+    </condition>

+    <property name="abs-dist" location="../../dist"/>

+    <condition property="mcf-dist" value="${abs-dist}">

+        <not>

+            <isset property="env.MCFDISTPATH"/>

+        </not>

+    </condition>

+

+    <import file="${mcf-dist}/connector-build.xml"/>

+

+    <target name="deliver-connector" depends="mcf-connector-build.deliver-connector">

+        <antcall target="general-add-repository-connector">

+            <param name="connector-label" value="Wiki"/>

+            <param name="connector-class" value="org.apache.manifoldcf.crawler.connectors.wiki.WikiConnector"/>

+        </antcall>

+    </target>

 

 </project>

diff --git a/tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/14773725.xml b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/14773725.xml
similarity index 100%
rename from tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/14773725.xml
rename to connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/14773725.xml
diff --git a/tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/19219017.xml b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/19219017.xml
similarity index 100%
rename from tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/19219017.xml
rename to connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/19219017.xml
diff --git a/tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/19319577.xml b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/19319577.xml
similarity index 100%
rename from tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/19319577.xml
rename to connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/19319577.xml
diff --git a/tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/19839654.xml b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/19839654.xml
similarity index 100%
rename from tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/19839654.xml
rename to connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/19839654.xml
diff --git a/tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/30955295.xml b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/30955295.xml
similarity index 100%
rename from tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/30955295.xml
rename to connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/30955295.xml
diff --git a/tests/wiki/src/test/java/org/apache/manifoldcf/wiki_tests/BaseDerby.java b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/BaseITDerby.java
similarity index 88%
rename from tests/wiki/src/test/java/org/apache/manifoldcf/wiki_tests/BaseDerby.java
rename to connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/BaseITDerby.java
index 4e9828a..0f96776 100644
--- a/tests/wiki/src/test/java/org/apache/manifoldcf/wiki_tests/BaseDerby.java
+++ b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/BaseITDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.wiki_tests;
+package org.apache.manifoldcf.crawler.connectors.wiki.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -28,7 +28,7 @@
 import org.junit.*;
 
 /** Tests that run the "agents daemon" should be derived from this */
-public class BaseDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
+public class BaseITDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
 {
   protected MockWikiService wikiService = null;
   
@@ -49,7 +49,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
   
   // Setup and teardown the mock wiki service
diff --git a/tests/wiki/src/test/java/org/apache/manifoldcf/wiki_tests/BaseUIDerby.java b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/BaseUIDerby.java
similarity index 92%
rename from tests/wiki/src/test/java/org/apache/manifoldcf/wiki_tests/BaseUIDerby.java
rename to connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/BaseUIDerby.java
index 32b7bf7..e6cc7dc 100644
--- a/tests/wiki/src/test/java/org/apache/manifoldcf/wiki_tests/BaseUIDerby.java
+++ b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/BaseUIDerby.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.wiki_tests;
+package org.apache.manifoldcf.crawler.connectors.wiki.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -49,7 +49,7 @@
   
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
   
   // Setup and teardown the mock wiki service
diff --git a/tests/wiki/src/test/java/org/apache/manifoldcf/wiki_tests/MockWikiService.java b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/MockWikiService.java
similarity index 98%
rename from tests/wiki/src/test/java/org/apache/manifoldcf/wiki_tests/MockWikiService.java
rename to connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/MockWikiService.java
index 4d6aae4..9b3f5f7 100644
--- a/tests/wiki/src/test/java/org/apache/manifoldcf/wiki_tests/MockWikiService.java
+++ b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/MockWikiService.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.wiki_tests;
+package org.apache.manifoldcf.crawler.connectors.wiki.tests;
 
 import org.eclipse.jetty.servlet.ServletHolder;
 import org.eclipse.jetty.server.Server;
diff --git a/tests/wiki/src/test/java/org/apache/manifoldcf/wiki_tests/NavigationDerbyUI.java b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/NavigationDerbyUI.java
similarity index 98%
rename from tests/wiki/src/test/java/org/apache/manifoldcf/wiki_tests/NavigationDerbyUI.java
rename to connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/NavigationDerbyUI.java
index 03329c3..f2d5fb4 100644
--- a/tests/wiki/src/test/java/org/apache/manifoldcf/wiki_tests/NavigationDerbyUI.java
+++ b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/NavigationDerbyUI.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.wiki_tests;
+package org.apache.manifoldcf.crawler.connectors.wiki.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -107,7 +107,7 @@
     window = testerInstance.findWindow(null);
     form = window.findForm(testerInstance.createStringDescription("editconnection"));
     selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.output.nullconnector.NullConnector"));
+    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.tests.TestingOutputConnector"));
     button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
     button.click();
     // Visit the Throttling tab
diff --git a/tests/wiki/src/test/java/org/apache/manifoldcf/wiki_tests/SanityDerbyIT.java b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/SanityDerbyIT.java
similarity index 97%
rename from tests/wiki/src/test/java/org/apache/manifoldcf/wiki_tests/SanityDerbyIT.java
rename to connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/SanityDerbyIT.java
index 2c7c493..bd6ab1f 100644
--- a/tests/wiki/src/test/java/org/apache/manifoldcf/wiki_tests/SanityDerbyIT.java
+++ b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/SanityDerbyIT.java
@@ -16,7 +16,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.wiki_tests;
+package org.apache.manifoldcf.crawler.connectors.wiki.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
@@ -30,7 +30,7 @@
 import org.junit.*;
 
 /** This is a very basic sanity check */
-public class SanityDerbyIT extends BaseDerby
+public class SanityDerbyIT extends BaseITDerby
 {
   protected static Map<String,String> initialCheckResources;
   protected static Map<String,String> initialListResources;
@@ -153,7 +153,7 @@
       IOutputConnection outputConn = outputMgr.create();
       outputConn.setName("Null Connection");
       outputConn.setDescription("Null Connection");
-      outputConn.setClassName("org.apache.manifoldcf.agents.output.nullconnector.NullConnector");
+      outputConn.setClassName("org.apache.manifoldcf.agents.tests.TestingOutputConnector");
       outputConn.setMaxConnections(100);
       // Now, save
       outputMgr.save(outputConn);
diff --git a/tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/get_namespaces.xml b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/get_namespaces.xml
similarity index 100%
rename from tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/get_namespaces.xml
rename to connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/get_namespaces.xml
diff --git a/tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/get_timestamps.xml b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/get_timestamps.xml
similarity index 100%
rename from tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/get_timestamps.xml
rename to connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/get_timestamps.xml
diff --git a/tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/get_urls.xml b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/get_urls.xml
similarity index 100%
rename from tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/get_urls.xml
rename to connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/get_urls.xml
diff --git a/tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/list_full.xml b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/list_full.xml
similarity index 100%
rename from tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/list_full.xml
rename to connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/list_full.xml
diff --git a/tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/list_full_last.xml b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/list_full_last.xml
similarity index 100%
rename from tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/list_full_last.xml
rename to connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/list_full_last.xml
diff --git a/tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/list_one.xml b/connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/list_one.xml
similarity index 100%
rename from tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/list_one.xml
rename to connectors/wiki/connector/src/test/java/org/apache/manifoldcf/crawler/connectors/wiki/tests/list_one.xml
diff --git a/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/14773725.xml b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/14773725.xml
new file mode 100644
index 0000000..af66d38
--- /dev/null
+++ b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/14773725.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+
+<api><query><pages><page pageid="14773725" ns="0" title="Kre8tiveworkz"><revisions><rev user="71.196.107.90" anon="" comment="/* Company Identity */" xml:space="preserve">{{orphan|date=July 2009}}
+
+[[Image:kre8tiveworkz logo.jpg|300px|right|]]
+'''Kre8tiveworkz''', a privately owned [[United States|American]] company based in [[Pembroke Pines, Florida]], is the original manufacturer and designer of Reality Rhyming&lt;!--hide broken link &lt;ref name=autogenerated1&gt;[http://www.fox4morningblend.com/tabid/3530/story/18679/Default.aspx Fox 4 Morning Blend - Turn Your Day Around Weekdays at 10AM &gt; Past Shows &gt; Segment Detail]&lt;/ref&gt; --&gt; personalized poetry gifts worldwide.  Reality Rhyming is a poetic writing style that uses a person's name and background information about a person's life and their experiences to create a story of [[rhyme]] for a particular occasion that's based on the premise "If Your Life Was A Poem, What Would It Say?".
+
+== Background ==
+
+Founded in 2004 by 34 year old [[Barbara Goleman Senior High]] [[Special Education]] [[Teacher]] and [[American poet]] Todd Edwards&lt;!-- broken link &lt;ref name=autogenerated3&gt;http://www.miamiherald.com/news/broward/story/352651.html&lt;/ref&gt; --&gt;, who started the company by selling poetry in the form of people's lives by word of mouth.  He was born in [[Hollywood, Florida]] in 1970 to his parents Michell and Joan Rubinstein.  Edwards' birth name is Todd Edward Rubinstein and is also an avid tennis player, being formally ranked #1 in Florida, 9th in United States (2006 - singles, Men's 30's) and #1 in Florida, 8th in United States (2008 - doubles - Men's 30's).
+
+[[Image:Marth Stewart finished frame this one.JPG|thumb|Sample Kre8tiveworkz Reality Rhyming personalized poetry masterpiece designed for [[Martha Stewart]]]].
+===Company Identity===
+In 2006, the Kre8tiveworkz personalized gift company redesigned its identity, along with branding the poetic writing style of Reality Rhyming. The slogans (2006) "Expressions for a Lifetime", (2007) "If Your Life Was A Poem, What Would It Say?", (2008) "If Your Pet's Life Was A Poem, What Would It Say?" and "If Your Wedding Was A Poem, What Would It Say?" created a mass public appeal by being promoted in ad campaigns, a practice the company continues to the present day.  The company has showcased its collections in art shows, at special events, on televised newscasts,&lt;ref name=autogenerated2&gt;[http://www.nbc6.net/station/13915322/detail.html On Friday's Show - About NBC 6 News Story - WTVJ | Miami&lt;!-- Bot generated title --&gt;]&lt;/ref&gt;&lt;ref name=autogenerated4&gt;[http://www1.wsvn.com/features/articles/stylefiles/MI70669/ WSVN-TV - Style Files - Extreme Gifts&lt;!-- Bot generated title --&gt;]&lt;/ref&gt;, including [[Entertainment Tonight]],&lt;ref&gt;http://www.etonline.com/news/2008/12/69167/index.html&lt;/ref&gt; the [[Today (NBC program)|Today Show]]&lt;ref&gt;http://today.msnbc.msn.com/id/26184891/vp/30641675#30641675&lt;/ref&gt;, ABC's [[Extreme Makeover: Home Edition]]&lt;ref&gt;http://abc.go.com/primetime/xtremehome/index?pn=afo#t=131956&lt;/ref&gt; and other media outlets.&lt;ref&gt;[http://specialevents.com/eventtools/rhyme_time/ Rhyme Time | Kre8tiveworkz introduces Reality Rhyming&lt;!-- Bot generated title --&gt;]&lt;/ref&gt;   
+
+Some celebrities and organizations that Kre8tiveworkz has designed poetry for have been [[Elton John]]&lt;ref&gt;[http://www.eltonjohnworld.com/coranto/news/2007/November/EltontobeFetedForHelpWithC.html Elton to be Feted For Help With Children's Charity&lt;!-- Bot generated title --&gt;]&lt;/ref&gt;, [[Ellen DeGeneres]], [[Maria Sharapova]]&lt;ref&gt;[http://enews.penton.com/enews/specialevents/eventline/2007_november_07_november/display Eventline: EVENTLINE: HOTELS EXPECT STRONG EVENT BUSINESS IN '08&lt;!-- Bot generated title --&gt;]&lt;/ref&gt;, [[Oprah Winfrey]]&lt;ref&gt;http://www.prleap.com/pr/104532/&lt;/ref&gt;, [[Justin Timberlake]], [[Martha Stewart]], NFL Commissioner [[Roger Goodell]], [[Kathie Lee Gifford]], [[Donny Deutsch]], [[Regis Philbin]], [[Kelly Ripa]], [[Paris Hilton]], [[Hoda Kotb]], [[Will I Am]], [[James Blake]], Kevin Harrington, [[Daymond John]], [[Jeana Keough]] of the Housewives of OC, [[Keegan-Michael Key]] of MADtv, [[Kimbo Slice]] MMA Fighter, Lisa Stanley of [[KRTH]] 101, [[NBC]]&lt;ref name=autogenerated2 /&gt; and [[Fox Broadcasting Company|Fox]]&lt;ref name=autogenerated4 /&gt; Television Networks, [[Carling Bassett]], [[Nadia Petrova]], the [[Academy Awards]], Sandals Resorts, Hard Rock Hotels, [[Miami-Dade County Public Schools]], the [[Miami Heat]], Lorraine Thomas and television news personalities such as Lynn Martinez, Louis Aguirre and [[Belkys Nerey]] of [[WSVN]],&lt;ref&gt;[http://www.pr.com/press-release/64240 Kre8tiveworkz to be Featured on Top Rated South Florida News Program - PR.com&lt;!-- Bot generated title --&gt;]&lt;/ref&gt; Cyndi Edwards and Dave Nemeth of the nationally syndicated show "Daytime", Bob Mayer, Trina Robinson and Kelly Craig of "South Florida Today" and Gayle Guyardo, Jennifer Hill and Alicia Roberts of WFLA.  
+
+In 2006, Kre8tiveworkz founded the "Kre8tiveworkz Humanitarian Award" which is an inspirational award given to individuals who have demonstrated outstanding service to their community and have contributed to making the world a better place.  Winners include:  2006 [[Oprah Winfrey]], 2007 Karen Embden of [[Miami-Dade County Public Schools]], 2008 Bob Mayer, Trina Robinson and Kelly Craig of [[WTVJ]] and 2009 [[Janet Reno]].
+
+===Charitable Organizations===
+
+Kre8tiveworkz has been linked to charitable organizations such as [[Fran Drescher]]'s Cancer Schmancer, the [[American Heart Association]], the [[Andy Roddick]] Foundation&lt;ref&gt;[http://www.andyroddick.com/3699/pr-insidecom-singersongwriter-to-receive-honor-from-andy-roddick-foundation/ AndyRoddick.com » Blog Archive » PR-Inside.com: SINGER/SONGWRITER TO RECEIVE HONOR FROM ANDY RODDICK FOUNDATION&lt;!-- Bot generated title --&gt;]&lt;/ref&gt;, the [[Make-A-Wish Foundation]]&lt;ref&gt;[http://sfla.wish.org/spev-ichmawball07B-auction.htm Make-A-Wish Foundation of Southern Florida InterContinental Make-A-Wish Ball Featuring Sharon Stone Natalie Cole Governor Charlie Crist&lt;!-- Bot generated title --&gt;]&lt;/ref&gt;, Shriners Children's Hospital, Adopt-A-Classroom, Metro Zoo, Women of Tomorrow, ICAN, the Ann Storke Foundation, Dress for Success and the Sydney &amp; Alexandria Cohen Foundation.
+
+==Management ==
+The current President and CEO is Todd Edwards and the current Director is his father, Michell Rubinstein.
+
+== External links ==
+
+*Official Site [http://www.RealityRhyming.com]
+
+== References ==
+{{reflist}}
+
+[[Category:Companies based in Florida]]</rev></revisions></page></pages></query></api>
\ No newline at end of file
diff --git a/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/19219017.xml b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/19219017.xml
new file mode 100644
index 0000000..8606422
--- /dev/null
+++ b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/19219017.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+
+<api><query><pages><page pageid="19219017" ns="0" title="Kre M'Baye"><revisions><rev user="Noformation" comment="Reverted edit(s) by [[Special:Contributions/173.35.84.11|173.35.84.11]] identified as test/vandalism using [[WP:STiki|STiki]]" xml:space="preserve">{{Orphan|date=November 2008}}
+'''Kre M’Baye''', also known as Amadou (or Armedy) Kre M’Baye, is a Senegalese artist and art instructor. He was born Andy Keve in [[Dakar, Senegal]] on April 25, 1949. He was nicknamed “Kere” or “Kre” even as a primary school child because he used to draw constantly on the classroom blackboard with chalk. Since 1969 he has been an associate of celebrated [[Africa]]n artists such as Ibou Diouf, Mamadou Niang, Seidou Barry, Mor Faye (father of Ousmane Faye) and Art College professor Pierre Lods. 
+
+In 1974 he played the head of a gang in the well-received movie ''Baks (Yamba)''&lt;ref&gt;[http://translate.google.com/translate?hl=en&amp;sl=fr&amp;u=http://www.africine.org/%3Fmenu%3Dfilm%26no%3D6942&amp;sa=X&amp;oi=translate&amp;resnum=9&amp;ct=result&amp;prev=/search%3Fq%3Dbaks%2BYamba%26hl%3Den%26client%3Dfirefox-a%26rls%3Dorg.mozilla:en-US:official%26hs%3DtEJ Africine Website]&lt;/ref&gt; produced by Momar Thiam, but abandoned his acting career in favor of his career as an artist. His first exhibition in 1976 at the Dynamique Museum of Dakar was highly acclaimed, his painting “The Messenger” receiving particular praise by President [[Léopold Sédar Senghor]]. 
+
+Some of his best-known works are his portraits of women inspired by the face of his mother Fari Fate (Mame Fari),&lt;ref&gt;[http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/11/11/EBG2AFIHKH1.DTL San Francisco Chronicle ''Emeryville: Gallery Gives Rare Spotlight to West African Art'' by Rick DelVecchio, San Francisco Chronicle Nov. 11th, 2005]&lt;/ref&gt; “a woman [[griot]] of great renown; a fascinating storyteller of Senegalese history”. Very stylish, full of exuberance and cheerfulness, Fari Fate with her jewelries, her meticulous dresses, her elaborate hairstyles, inspired to the artist a painting style full of fineness. M'Baye has another style that tends to abstract paintings dominated by blue and orange colors.
+
+M'Baye is a disciple of Pierre Lods and was self-trained in the workshop of Peter Plastics Research Lods.&lt;ref&gt;[http://findarticles.com/p/articles/mi_m0438/is_3_35/ai_98171011/pg_19 ''The Ecole de Dakar: Pan-Africanism in Paint and Textile by Elizabeth Harney (Autumn 2002) African Arts]&lt;/ref&gt; In 1994 Gaston Madeira formed "Netty Guy" (The Three Baobabs), bringing together Kré M'Baye, Moussa N'Diaye Baydie M'Baye and Zulu, three painters representative of the School of Arts in Dakar, who in 1998 opened a gallery on the Senegalese island of N'gor and founded Workshops N'gor.&lt;ref&gt;[http://translate.google.com/translate?hl=en&amp;sl=fr&amp;u=http://www.takusaan.com/pages/neoCrea/art-ngor-present.html&amp;sa=X&amp;oi=translate&amp;resnum=2&amp;ct=result&amp;prev=/search%3Fq%3Dkre%2Bmbaye%26start%3D30%26hl%3Den%26client%3Dfirefox-a%26rls%3Dorg.mozilla:en-US:official%26sa%3DN%26pwst%3D1 Takusaan Website]&lt;/ref&gt; He was a participant in Tenq, the first workshop on the Triangle model (led by El Hadji Sy and sponsored by CBAO, [[Maersk]], SAEC and the [[British Council]], Dakar) held in West Africa, which took place at the Lycée Cheikh Oumar Fontiyou in Saint Louis, Senegal; the first event of Africa95, a year-long festival celebrating African arts in the [[United Kingdom|UK]] and Africa, featuring 25 artists from 10 African countries and Britain.&lt;ref&gt;[http://www.trianglearts.org/detail.php?id=33&amp;more=yes Triangle Arts Trust Website]&lt;/ref&gt; 
+
+His brother Seni M’Baye is also a noted Senegalese artist.
+
+==Exhibitions==
+* 1976	First exhibit to the 4th Senegalese painters and visual arts show at the Dynamique Museum of Dakar. 
+* 1983	New Expressions at [[Lorient]] in France
+* 1985	French Cultural Center in Dakar
+* 1985  IFA Gallery in [[Bonn, Germany]]
+* 1987	Senegalese painters &amp; visual artists exhibit – received Prize of the Head of State
+* 1987  Stadfische Gallery in Wendlinger in [[Germany]]
+* 1988	American Cultural Center of Dakar at the National Gallery – Kre’s ''Totem du Silence'' was the only painting selected to be put to auction
+* 1990	Le’Arche de la Defense in [[Paris, France]]
+* 1995	[[Cape Verde]]’ Islands – several traveling exhibitions
+* 1996	Contemporary Art Exhibition of Dammarie-les-Lys in France – won the City Prize
+* 1996	Selected to the Dak’Art 1996 Biennale&lt;ref&gt;Program of the event - Dak'Art: Biennial africain de l'art contemporain, Editions Cimaise, Paris, 1996&lt;/ref&gt;
+* 1998  Mil Arte, 98 Mill Lane (West Hampstead) [[London, England]] April - May
+* 1999	Kenkeleba Gallery in [[New York City]], U.S.A.
+* Since 1999, Permanent exposition at the Antenna Gallery, Félix Faure street in Dakar
+* 2002  Arts Plastiques Exposition: Dakar - Dakart at Aude Minart in Paris, France April 30 - May 5&lt;ref&gt;[http://www.africultures.com/index.asp?menu=affiche_evenement&amp;no_evenement=374 Africultures Website]&lt;/ref&gt;
+* 2005  April 1–14 National Gallery of Art - Sponsored by the American Cultural Center, [[National Museum of African Art]] in Washington. Three exhibitions of artists: Souleye Keita, Jacob Yacouba, and Amadou Kré M'Baye
+* 2005  [[St. Mark's Church]], New York City, U.S.A. Participated in Plexus International's presentation ''Erosions and Renaissance, Act IV'' 12/10/05
+* 2006  Senegalese Contemporary Art Exhibit: The Jokko Bar-Expo - 5 Rue Elzévir [[Paris, France]] (June - July)
+* 2007  Fine Arts Exhibition at Marcel Rozier's gallery in [[Bois-le-Roi, Seine-et-Marne|Bois-le-Roi]] from May 12–20 
+* 2008  Black Visibility: Contemporary African Art Exhibit March 19 - April 5 at the Conservatoire des Arts, 1, parvis sources 78180 [[Montigny-le-Bretonneux]], [[Saint-Quentin-en-Yvelines]]
+
+==Awards==
+
+* 1987	Prize of the Head of State of Senegal
+* 1996	City Prize of [[Dammarie-les-Lys]], France
+* 1999	Awarded L’Ordre National du Lion by [[Abdou Diouf]], President of the Republic of Senegal
+
+==References==
+{{reflist}}
+
+* ''An Anthology of African Art: The Twentieth Century'' by N’Gone’ Fall &amp; Jean Loup Pivin (June 2, 2002) D.A.P./Editions Revue Noire ISBN 1891024388, ISBN 978-1891024382
+* ''The Courier: Africa-Caribbean-Pacific-European Union'' (1991) Published by Commission of the European Communities (Original from the University of Virginia)
+* ''The Ecole de Dakar: Pan-Africanism in Paint and Textile'' by Elizabeth Harney (Autumn 2002) African Arts 
+* ''El Arte Africano Contemporaneo Existe'' by Jean-Arsène Yao [http://latinamericalandya.blogspot.com/2008/06/el-arte-africano-contemporneo-existe.html Latinamericalandya Website]
+* ''Emeryville: Gallery Gives Rare Spotlight to West African Art'' by Rick DelVecchio, San Francisco Chronicle November 11, 2005 [http://sfgate.com/cgi-bin/article.cgi?file=/c/a/2005/11/11/EBG2AFIHKH1.DTL San Francisco Chronicle]
+* ''In Senghor's Shadow: Art, Politics, and the Avant-Garde in Senegal, 1960-1995'' by Elizabeth Harney (2004) Duke University Press, 2004 ISBN 0822333953, ISBN 9780822333951
+* ''La Presse'' (Tunisia) October 30, 1974
+* ''St. James Guide to Black Artists'' by Thomas Riggs (1997) St. James Press (Original from the University of Michigan) ISBN 1558622209, ISBN 9781558622203
+* ''Thinking About Exhibitions'' by Reesa Greenberg, Bruce W. Ferguson &amp; Sandy Naime (May 13, 1996) Routledge ISBN 0415115906, ISBN 978-0415115902
+* ''Trajectoires: Art Contemporain du Senegal'' by Joanna Grabski (Spring, 2008) African Arts
+
+==External links==
+* [http://www.krembaye.com/biographie2.htm Krembaye.com]
+
+{{Persondata &lt;!-- Metadata: see [[Wikipedia:Persondata]]. --&gt;
+| NAME              = Mbaye, Kre
+| ALTERNATIVE NAMES =
+| SHORT DESCRIPTION =
+| DATE OF BIRTH     = 1949
+| PLACE OF BIRTH    =
+| DATE OF DEATH     =
+| PLACE OF DEATH    =
+}}
+{{DEFAULTSORT:Mbaye, Kre}}
+[[Category:Senegalese artists]]
+[[Category:1949 births]]
+[[Category:Living people]]
+[[Category:Senegalese people]]
+[[Category:Senegalese film actors]]</rev></revisions></page></pages></query></api>
\ No newline at end of file
diff --git a/tests/hdfs/build.xml b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/19319577.xml
similarity index 72%
copy from tests/hdfs/build.xml
copy to connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/19319577.xml
index 2505261..3d900d2 100644
--- a/tests/hdfs/build.xml
+++ b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/19319577.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +16,4 @@
  limitations under the License.
 -->
 
-<project name="hdfs" default="all">
-
-    <import file="../ino-test-build.xml"/>
-    
-</project>
+<api><query><pages><page pageid="19319577" ns="0" title="Kre Mbaye"><revisions><rev user="Rosencomet" comment="[[WP:AES|←]] Redirected page to [[Kre M'Baye]]" xml:space="preserve">#REDIRECT [[Kre M'Baye]]</rev></revisions></page></pages></query></api>
\ No newline at end of file
diff --git a/tests/hdfs/build.xml b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/19839654.xml
similarity index 69%
copy from tests/hdfs/build.xml
copy to connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/19839654.xml
index 2505261..112d701 100644
--- a/tests/hdfs/build.xml
+++ b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/19839654.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +16,4 @@
  limitations under the License.
 -->
 
-<project name="hdfs" default="all">
-
-    <import file="../ino-test-build.xml"/>
-    
-</project>
+<api><query><pages><page pageid="19839654" ns="0" title="Kre'fey"><revisions><rev user="Mr.Z-man" comment="[[Wikipedia:Articles for deletion/Kre'fey]] closed as redirect to [[The New Jedi Order]]" xml:space="preserve">#REDIRECT [[The New Jedi Order]]</rev></revisions></page></pages></query></api>
\ No newline at end of file
diff --git a/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/30955295.xml b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/30955295.xml
new file mode 100644
index 0000000..a57d3d8
--- /dev/null
+++ b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/30955295.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+
+<api><query><pages><page pageid="30955295" ns="0" title="Kre-O"><revisions><rev user="99.229.33.31" anon="" comment="/* $30 price */" xml:space="preserve">{{multiple issues|cleanup=February 2011|refimprove=April 2011}}
+{{Infobox Toy
+|name=Kre-O
+|image=
+|type=[[Construction set]]
+|inventor=
+|country=[[United States]]
+|company=[[Hasbro]]
+|from=2011
+|to=present
+|website=http://www.hasbro.com/kre-o/en_US/
+}}
+''Not to be consfused with [[KREO]].''&lt;br&gt;
+
+'''KRE-O''' is a line of construction toys (similar to [[Lego]] and [[Megabloks]]) manufactured by [[Hasbro]]. Kre-O has been announced to release in stores in Fall 2011&lt;ref&gt;[http://www.usatoday.com/money/companies/2011-02-12-hasbro-transformers_N.htm USATODAY.com: Hasbro pushes into Lego's land with new blocks]&lt;/ref&gt;&lt;ref&gt;[http://geek-news.mtv.com/2011/04/27/mtv-geek-exclusive-images-transformers-kre-o-optimus-prime-bumblee-and-ratchet/?xrs=share_fb MTV Geek EXCLUSIVE Images: Transformers , Bumblee, and Ratchet]&lt;/ref&gt;, although Hasbro started shipping out the first ''Transformers'' sets in early June 2011.&lt;ref&gt;[http://tformers.com/transformers-kre-o-transformers-optimus-prime/15920/news.html Kre-O Transformers Optimus Prime Now Shipping - Time Lapse Video of Building Prime]&lt;/ref&gt; The creators of the toy franchise got the named "Kre-O", from the Latin word "[[creo]]", which means "I create".&lt;ref&gt;[http://www.tfw2005.com/transformers-news/conventions-15/tfcc-magazine-issue-38-tidbits-171803/ TFCC Magazine Issue #38 Tidbits]&lt;/ref&gt; 
+
+==Kre-O Toylines==
+===Kre-O Transformers===
+Kre-O ''Transformers'' is the first line of all the Kre-O sets ever released. They were first shown at the New York Toy Fair 2011.&lt;ref&gt;[http://tformers.com/transformers-toy-fair-2011-transformers-building-block-toys-coming-in-2011/15131/news.html Toy Fair 2011 - Transformers Building Block Toys Coming In 2011]&lt;/ref&gt;
+====$7 "Basic" price====
+* '''[[Bumblebee (Transformers)|Bumblebee]]''' - 75 bricks, can be built as a robot or a car. No Kreons included.
+* '''[[Optimus Prime (Transformers)|Optimus Prime]]''' - 90 bricks, can be built as a robot or a semi-truck cab. No Kreons included.
+
+====$10 price====
+* '''[[Jazz (Transformers)|Jazz]]''' - 90 bricks, can be assemples as a robot or a sports car. Comes with 2 Kreons, '''Jazz''', and a '''driver'''.
+* '''[[Mirage (Transformers)|Mirage]]''' - 100 bricks, can be built as a robot or a race car. Comes with 3 Kreons, '''Mirage''', and 2 '''drivers'''.
+
+====$15 price====
+* '''[[Prowl (Transformers)|Prowl]]''' - 150 bricks, can be built as a robot or a police car. Comes with 3 Kreons, '''Prowl''', and 2 '''drivers'''. 
+
+====$20 price====
+* '''[[Ratchet (Transformers)|Ratchet]]''' - 200 pieces, can turn into a robot or an ambulance. Comes with 2 Kreons, '''Ratchet''' and a '''driver'''.
+* '''[[Sideswipe (Transformers)|Sideswipe]]''' - 220 bricks, can be build as a robot or a car. Comes with 2 Kreons, '''Sideswipe''' and a '''driver'''.&lt;ref&gt;[http://www.hasbro.com/kre-o/en_US/shop/details.cfm?R=50E47E34-5056-900B-10D0-19C5848E6ACC:en_US Hasbro.com - Kre-O Sideswipe]&lt;/ref&gt;
+
+====$25 price====
+* '''[[Bumblebee (Transformers)|Bumblebee]]''' - 336 bricks, can be built as a robot or a car. Comes with 3 Kreons, '''Bumblebee''', '''Red Alert''' and '''Driver'''.
+
+====$30 price====
+* '''[[Megatron (Transformers)|Megatron]]''' - 310 pieces, can be built as a robot or truck. Comes with  4 Kreons, '''Megatron''', '''[[Shockwave (Transformers)|Shockwave]]''', and 2 '''drivers'''.
+* '''[[Starscream]]''' - 316 bricks, can be built as a robot or a jet fighter. Comes with 3 Kreons, '''Starscream''',&lt;ref&gt;[http://www.tfw2005.com/transformers-news/transformers-movie-toys--products-30/more-transformers-kre-o-figures-and-kreons-revealed-171751/ More Transformers Kre-O Figures And Kreons Revealed]&lt;/ref&gt; and 2 '''pilots'''.
+
+====$40 price====
+* '''[[Sentinel Prime]]''' - 375 pieces, can be built as a robot or a fire truck. Comes with 5 Kreons, '''Sentinel Prime''', '''[[Soundwave (Transformers)|Soundwave]]''', '''[[Thundercracker]]''', and 2 '''drivers'''.
+
+====$60 price====
+* '''[[Optimus Prime (Transformers)|Optimus Prime]]''' - 500+ bricks, can be built as a robot or a semi-truck cab with trailer. Comes with 5 Kreons, '''Optimus Prime,''' '''[[Skywarp]]''', '''[[Bluestreak]]''', and 2 '''[[motorcycle]] drivers'''.&lt;ref&gt;[http://www.tfw2005.com/transformers-news/conventions-15/tfcc-magazine-issue-38-tidbits-171803/ TFCC Magazine Issue #38 Tidbits]&lt;/ref&gt;
+
+==Kreon==
+Kreon figures are mini [[super-deformed]] figures. They will be released with Kre-O construction sets. The Kre-O Transformers line will feature Kreon figures. Kreon figures are similar to [[Lego minifigure|Lego minifigures]] (e.g. [[Lego Batman]], [[Lego Star Wars]], [[Lego Atlantis]], [[Lego City]]). In the Kreon Transformers line there was 29 Kreon figures released (17 of them Transformers including an exclusive version of '''Optimus Prime''' that comes with the Matrix and 12 of them Humans.)
+
+==References==
+{{reflist}}
+[[Category:Construction toys]]
+[[Category:2011 introductions]]
+
+==External links==
+* [http://www.hasbro.com/kre-o/en_US/ Official Website]
+
+{{Hasbro}}</rev></revisions></page></pages></query></api>
\ No newline at end of file
diff --git a/tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/get_namespaces.xml b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/get_namespaces.xml
similarity index 100%
copy from tests/wiki/src/test/resources/org/apache/manifoldcf/wiki_tests/get_namespaces.xml
copy to connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/get_namespaces.xml
diff --git a/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/get_timestamps.xml b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/get_timestamps.xml
new file mode 100644
index 0000000..5b8b17c
--- /dev/null
+++ b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/get_timestamps.xml
@@ -0,0 +1,19 @@
+<?xml version="1.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.
+-->
+
+<api><query><pages><page pageid="14773725" ns="0" title="Kre8tiveworkz"><revisions><rev timestamp="2010-07-31T18:52:44Z" /></revisions></page><page pageid="19219017" ns="0" title="Kre M&#039;Baye"><revisions><rev timestamp="2011-05-29T22:07:53Z" /></revisions></page><page pageid="19319577" ns="0" title="Kre Mbaye"><revisions><rev timestamp="2008-09-14T20:37:19Z" /></revisions></page><page pageid="19839654" ns="0" title="Kre&#039;fey"><revisions><rev timestamp="2008-10-19T02:35:00Z" /></revisions></page><page pageid="30955295" ns="0" title="Kre-O"><revisions><rev timestamp="2011-09-06T12:20:20Z" /></revisions></page></pages></query></api>
\ No newline at end of file
diff --git a/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/get_urls.xml b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/get_urls.xml
new file mode 100644
index 0000000..042cfdc
--- /dev/null
+++ b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/get_urls.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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.
+-->
+
+<api><query><pages><page pageid="14773725" ns="0" title="Kre8tiveworkz" touched="2011-10-03T03:51:34Z" lastrevid="376463852" counter="" length="6357" fullurl="http://en.wikipedia.org/wiki/Kre8tiveworkz" editurl="http://en.wikipedia.org/w/index.php?title=Kre8tiveworkz&amp;action=edit"/><page pageid="19219017" ns="0" title="Kre M'Baye" touched="2011-10-03T03:30:56Z" lastrevid="431554656" counter="" length="7749" fullurl="http://en.wikipedia.org/wiki/Kre_M%27Baye" editurl="http://en.wikipedia.org/w/index.php?title=Kre_M%27Baye&amp;action=edit"/><page pageid="19319577" ns="0" title="Kre Mbaye" touched="2011-05-29T22:07:53Z" lastrevid="238432075" counter="" length="24" redirect="" new="" fullurl="http://en.wikipedia.org/wiki/Kre_Mbaye" editurl="http://en.wikipedia.org/w/index.php?title=Kre_Mbaye&amp;action=edit"/><page pageid="19839654" ns="0" title="Kre'fey" touched="2011-09-29T00:50:43Z" lastrevid="246209449" counter="" length="32" redirect="" new="" fullurl="http://en.wikipedia.org/wiki/Kre%27fey" editurl="http://en.wikipedia.org/w/index.php?title=Kre%27fey&amp;action=edit"/><page pageid="30955295" ns="0" title="Kre-O" touched="2011-10-12T07:13:26Z" lastrevid="448739088" counter="" length="4995" fullurl="http://en.wikipedia.org/wiki/Kre-O" editurl="http://en.wikipedia.org/w/index.php?title=Kre-O&amp;action=edit"/></pages></query></api>
\ No newline at end of file
diff --git a/tests/hdfs/build.xml b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/list_full.xml
similarity index 66%
copy from tests/hdfs/build.xml
copy to connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/list_full.xml
index 2505261..fdea7a5 100644
--- a/tests/hdfs/build.xml
+++ b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/list_full.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0"?>
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +16,4 @@
  limitations under the License.
 -->
 
-<project name="hdfs" default="all">
-
-    <import file="../ino-test-build.xml"/>
-    
-</project>
+<api><query><allpages><p pageid="19839654" ns="0" title="Kre&#039;fey" /><p pageid="30955295" ns="0" title="Kre-O" /><p pageid="14773725" ns="0" title="Kre8tiveworkz" /><p pageid="19219017" ns="0" title="Kre M&#039;Baye" /><p pageid="19319577" ns="0" title="Kre Mbaye" /></allpages></query><query-continue><allpages apfrom="Krea" /></query-continue></api>
\ No newline at end of file
diff --git a/tests/hdfs/build.xml b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/list_full_last.xml
similarity index 80%
rename from tests/hdfs/build.xml
rename to connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/list_full_last.xml
index 2505261..5a8173a 100644
--- a/tests/hdfs/build.xml
+++ b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/list_full_last.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0"?>
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +16,4 @@
  limitations under the License.
 -->
 
-<project name="hdfs" default="all">
-
-    <import file="../ino-test-build.xml"/>
-    
-</project>
+<api><query><allpages><p pageid="19319577" ns="0" title="Kre Mbaye" /></allpages></query><query-continue><allpages apfrom="Kre Mbaye" /></query-continue></api>
\ No newline at end of file
diff --git a/tests/hdfs/build.xml b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/list_one.xml
similarity index 80%
copy from tests/hdfs/build.xml
copy to connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/list_one.xml
index 2505261..3b67045 100644
--- a/tests/hdfs/build.xml
+++ b/connectors/wiki/connector/src/test/resources/org/apache/manifoldcf/crawler/connectors/wiki/tests/list_one.xml
@@ -1,3 +1,4 @@
+<?xml version="1.0"?>
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +16,4 @@
  limitations under the License.
 -->
 
-<project name="hdfs" default="all">
-
-    <import file="../ino-test-build.xml"/>
-    
-</project>
+<api><query><allpages><p pageid="19839654" ns="0" title="Kre&#039;fey" /></allpages></query><query-continue><allpages apfrom="Krea" /></query-continue></api>
\ No newline at end of file
diff --git a/connectors/wiki/pom.xml b/connectors/wiki/pom.xml
index 4ba2b6b..dd763fb 100644
--- a/connectors/wiki/pom.xml
+++ b/connectors/wiki/pom.xml
@@ -24,10 +24,16 @@
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+  </properties>
+
   <artifactId>mcf-wiki-connector</artifactId>
   <name>ManifoldCF - Connectors - Wiki</name>
 
   <build>
+    <defaultGoal>integration-test</defaultGoal>
     <sourceDirectory>${basedir}/connector/src/main/java</sourceDirectory>
     <testSourceDirectory>${basedir}/connector/src/test/java</testSourceDirectory>
     <resources>
@@ -37,9 +43,22 @@
           <include>**/*.properties</include>
         </includes>
       </resource>
+      <resource>
+        <directory>${basedir}/connector/src/main/resources</directory>
+        <includes>
+          <include>**/*.html</include>
+          <include>**/*.js</include>
+        </includes>
+      </resource>
     </resources> 
-
+    <testResources>
+      <testResource>
+        <directory>${basedir}/connector/src/test/resources</directory>
+      </testResource>
+    </testResources>
+    
     <plugins>
+
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>native2ascii-maven-plugin</artifactId>
@@ -62,6 +81,50 @@
             </execution>
         </executions>
       </plugin>
+
+      <!-- Test plugin configuration -->
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+           <execution>
+            <id>copy-war</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>target/dependency</outputDirectory>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-api-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-api-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-authority-service</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-authority-service.war</destFileName>
+                </artifactItem>
+                <artifactItem>
+                  <groupId>${project.groupId}</groupId>
+                  <artifactId>mcf-crawler-ui</artifactId>
+                  <version>${project.version}</version>
+                  <type>war</type>
+                  <overWrite>false</overWrite>
+                  <destFileName>mcf-crawler-ui.war</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
@@ -74,6 +137,41 @@
           <workingDirectory>target/test-output</workingDirectory>
         </configuration>
       </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-failsafe-plugin</artifactId>
+        <version>2.12.3</version>
+        <configuration>
+          <skipTests>${skipITs}</skipTests>
+          <systemPropertyVariables>
+            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
+            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
+            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
+          </systemPropertyVariables>
+          <excludes>
+            <exclude>**/*Postgresql*.java</exclude>
+            <exclude>**/*MySQL*.java</exclude>
+          </excludes>
+          <forkMode>always</forkMode>
+          <workingDirectory>target/test-output</workingDirectory>
+        </configuration>
+        <executions>
+          <execution>
+            <id>integration-test</id>
+            <goals>
+              <goal>integration-test</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>verify</id>
+            <goals>
+              <goal>verify</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+
     </plugins>
   </build>
 	
@@ -118,6 +216,9 @@
       <artifactId>xercesImpl</artifactId>
       <version>${xerces.version}</version>
     </dependency>
+    
+    <!-- Testing dependencies -->
+    
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
@@ -145,6 +246,7 @@
       <type>test-jar</type>
       <scope>test</scope>
     </dependency>
+
     <dependency>
       <groupId>postgresql</groupId>
       <artifactId>postgresql</artifactId>
@@ -170,5 +272,108 @@
       <scope>test</scope>
     </dependency>
 
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-api-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-authority-service</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>${project.groupId}</groupId>
+      <artifactId>mcf-crawler-ui</artifactId>
+      <version>${project.version}</version>
+      <type>war</type>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-webapp</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-xml</artifactId>
+      <version>${jetty.version}</version>
+      <scope>test</scope>
+    </dependency>
+
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-api-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>    
+    <dependency>
+      <groupId>org.mortbay.jetty</groupId>
+      <artifactId>jsp-2.1-glassfish</artifactId>
+      <version>${glassfish.version}</version>
+      <scope>test</scope>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-api</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-simple</artifactId>
+      <version>${slf4j.version}</version>
+      <scope>test</scope>
+    </dependency>
+
   </dependencies>
 </project>
diff --git a/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/NullOutputConnector.java b/framework/agents/src/test/java/org/apache/manifoldcf/agents/tests/TestingOutputConnector.java
similarity index 71%
rename from framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/NullOutputConnector.java
rename to framework/agents/src/test/java/org/apache/manifoldcf/agents/tests/TestingOutputConnector.java
index 9a3fe23..dffaf82 100644
--- a/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/NullOutputConnector.java
+++ b/framework/agents/src/test/java/org/apache/manifoldcf/agents/tests/TestingOutputConnector.java
@@ -16,22 +16,21 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
-package org.apache.manifoldcf.crawler.tests;
+package org.apache.manifoldcf.agents.tests;
 
 import org.apache.manifoldcf.core.interfaces.*;
 import org.apache.manifoldcf.agents.interfaces.*;
-import org.apache.manifoldcf.crawler.interfaces.*;
-import org.apache.manifoldcf.crawler.system.ManifoldCF;
+import org.apache.manifoldcf.agents.system.ManifoldCF;
 
 import java.io.*;
 import java.util.*;
 
-/** Output connector class to be used by scheduling tests.  This connector never expects to see any documents at all,
+/** Output connector class to be used by tests.  This connector never expects to see any documents at all,
 * which is fine because it rejects them all. */
-public class NullOutputConnector extends org.apache.manifoldcf.agents.output.BaseOutputConnector
+public class TestingOutputConnector extends org.apache.manifoldcf.agents.output.BaseOutputConnector
 {
 
-  public NullOutputConnector()
+  public TestingOutputConnector()
   {
     super();
   }
diff --git a/framework/build.xml b/framework/build.xml
index 754cc7e..b4ea10f 100644
--- a/framework/build.xml
+++ b/framework/build.xml
@@ -18,7 +18,7 @@
 <project default="all">
 
     <import file="../common-build.xml"/>
-
+    
     <target name="clean">
       <delete dir="build"/>
       <delete dir="dist"/>
@@ -32,6 +32,15 @@
     
     <path id="framework-classpath">
         <fileset dir="../lib">
+            <include name="castor*.jar"/>
+            <include name="geronimo-javamail_1.4_spec*.jar"/>
+            <include name="commons-discovery*.jar"/>
+            <include name="axis*.jar"/>
+            <include name="saaj*.jar"/>
+            <include name="wsdl4j*.jar"/>
+            <include name="activation*.jar"/>
+        </fileset>
+        <fileset dir="../lib">
             <include name="zookeeper*.jar"/>
             <include name="json*.jar"/>
             <include name="commons-codec*.jar"/>
@@ -90,6 +99,9 @@
     
     <target name="compile-core">
         <mkdir dir="build/core/classes"/>
+        <copy todir="build/core/classes">
+            <fileset dir="core/src/main/resources"/>
+        </copy>
         <javac srcdir="core/src/main/java" destdir="build/core/classes" deprecation="true" target="1.6" source="1.6" debug="true" encoding="utf-8" debuglevel="lines,vars,source">
             <classpath>
                 <path refid="framework-classpath"/>
@@ -310,6 +322,15 @@
         <mkdir dir="build/webapp/authority-service/WEB-INF/lib"/>
         <copy todir="build/webapp/authority-service/WEB-INF/lib">
             <fileset dir="../lib">
+                <include name="castor*.jar"/>
+                <include name="geronimo-javamail_1.4_spec*.jar"/>
+                <include name="commons-discovery*.jar"/>
+                <include name="axis*.jar"/>
+                <include name="saaj*.jar"/>
+                <include name="wsdl4j*.jar"/>
+                <include name="activation*.jar"/>
+            </fileset>
+            <fileset dir="../lib">
                 <include name="zookeeper*.jar"/>
                 <include name="json*.jar"/>
                 <include name="commons-codec*.jar"/>
@@ -350,6 +371,15 @@
         <mkdir dir="build/webapp/authority-service-proprietary/WEB-INF/lib"/>
         <copy todir="build/webapp/authority-service-proprietary/WEB-INF/lib">
             <fileset dir="../lib">
+                <include name="castor*.jar"/>
+                <include name="geronimo-javamail_1.4_spec*.jar"/>
+                <include name="commons-discovery*.jar"/>
+                <include name="axis*.jar"/>
+                <include name="saaj*.jar"/>
+                <include name="wsdl4j*.jar"/>
+                <include name="activation*.jar"/>
+            </fileset>
+            <fileset dir="../lib">
                 <include name="zookeeper*.jar"/>
                 <include name="json*.jar"/>
                 <include name="commons-codec*.jar"/>
@@ -395,6 +425,15 @@
         <mkdir dir="build/webapp/api-service/WEB-INF/lib"/>
         <copy todir="build/webapp/api-service/WEB-INF/lib">
             <fileset dir="../lib">
+                <include name="castor*.jar"/>
+                <include name="geronimo-javamail_1.4_spec*.jar"/>
+                <include name="commons-discovery*.jar"/>
+                <include name="axis*.jar"/>
+                <include name="saaj*.jar"/>
+                <include name="wsdl4j*.jar"/>
+                <include name="activation*.jar"/>
+            </fileset>
+            <fileset dir="../lib">
                 <include name="zookeeper*.jar"/>
                 <include name="json*.jar"/>
                 <include name="commons-codec*.jar"/>
@@ -436,6 +475,15 @@
         <mkdir dir="build/webapp/api-service-proprietary/WEB-INF/lib"/>
         <copy todir="build/webapp/api-service-proprietary/WEB-INF/lib">
             <fileset dir="../lib">
+                <include name="castor*.jar"/>
+                <include name="geronimo-javamail_1.4_spec*.jar"/>
+                <include name="commons-discovery*.jar"/>
+                <include name="axis*.jar"/>
+                <include name="saaj*.jar"/>
+                <include name="wsdl4j*.jar"/>
+                <include name="activation*.jar"/>
+            </fileset>
+            <fileset dir="../lib">
                 <include name="zookeeper*.jar"/>
                 <include name="json*.jar"/>
                 <include name="commons-codec*.jar"/>
@@ -482,6 +530,15 @@
         <mkdir dir="build/webapp/crawler-ui/WEB-INF/lib"/>
         <copy todir="build/webapp/crawler-ui/WEB-INF/lib">
             <fileset dir="../lib">
+                <include name="castor*.jar"/>
+                <include name="geronimo-javamail_1.4_spec*.jar"/>
+                <include name="commons-discovery*.jar"/>
+                <include name="axis*.jar"/>
+                <include name="saaj*.jar"/>
+                <include name="wsdl4j*.jar"/>
+                <include name="activation*.jar"/>
+            </fileset>
+            <fileset dir="../lib">
                 <include name="jstl*.jar"/>
                 <include name="zookeeper*.jar"/>
                 <include name="json*.jar"/>
@@ -531,6 +588,15 @@
         <mkdir dir="build/webapp/crawler-ui-proprietary/WEB-INF/lib"/>
         <copy todir="build/webapp/crawler-ui-proprietary/WEB-INF/lib">
             <fileset dir="../lib">
+                <include name="castor*.jar"/>
+                <include name="geronimo-javamail_1.4_spec*.jar"/>
+                <include name="commons-discovery*.jar"/>
+                <include name="axis*.jar"/>
+                <include name="saaj*.jar"/>
+                <include name="wsdl4j*.jar"/>
+                <include name="activation*.jar"/>
+            </fileset>
+            <fileset dir="../lib">
                 <include name="jstl*.jar"/>
                 <include name="zookeeper*.jar"/>
                 <include name="json*.jar"/>
@@ -587,6 +653,15 @@
         <mkdir dir="build/webapp/combined-service/WEB-INF/lib"/>
         <copy todir="build/webapp/combined-service/WEB-INF/lib">
             <fileset dir="../lib">
+                <include name="castor*.jar"/>
+                <include name="geronimo-javamail_1.4_spec*.jar"/>
+                <include name="commons-discovery*.jar"/>
+                <include name="axis*.jar"/>
+                <include name="saaj*.jar"/>
+                <include name="wsdl4j*.jar"/>
+                <include name="activation*.jar"/>
+            </fileset>
+            <fileset dir="../lib">
                 <include name="jstl*.jar"/>
                 <include name="zookeeper*.jar"/>
                 <include name="json*.jar"/>
@@ -638,6 +713,15 @@
         <mkdir dir="build/webapp/combined-service-proprietary/WEB-INF/lib"/>
         <copy todir="build/webapp/combined-service-proprietary/WEB-INF/lib">
             <fileset dir="../lib">
+                <include name="castor*.jar"/>
+                <include name="geronimo-javamail_1.4_spec*.jar"/>
+                <include name="commons-discovery*.jar"/>
+                <include name="axis*.jar"/>
+                <include name="saaj*.jar"/>
+                <include name="wsdl4j*.jar"/>
+                <include name="activation*.jar"/>
+            </fileset>
+            <fileset dir="../lib">
                 <include name="jstl*.jar"/>
                 <include name="zookeeper*.jar"/>
                 <include name="json*.jar"/>
@@ -746,10 +830,27 @@
         </copy>
     </target>
 
+    <target name="buildfiles">
+        <mkdir dir="dist"/>
+        <copy todir="dist">
+            <fileset dir="buildfiles"/>
+        </copy>
+    </target>
+    
+
     <target name="lib" depends="jar-core,jar-ui-core,jar-agents,jar-pull-agent,jar-jetty-runner,jar-script-engine">
         <mkdir dir="dist/lib"/>
         <copy todir="dist/lib">
             <fileset dir="../lib">
+                <include name="castor*.jar"/>
+                <include name="geronimo-javamail_1.4_spec*.jar"/>
+                <include name="commons-discovery*.jar"/>
+                <include name="axis*.jar"/>
+                <include name="saaj*.jar"/>
+                <include name="wsdl4j*.jar"/>
+                <include name="activation*.jar"/>
+            </fileset>
+            <fileset dir="../lib">
                 <include name="zookeeper*.jar"/>
                 <include name="json*.jar"/>
                 <include name="commons-codec*.jar"/>
@@ -915,6 +1016,15 @@
     </target>
     
     <target name="setup-jetty-processes" depends="preclean-jetty-processes,scripts-jetty">
+        <antcall target="general-jetty-add-lib-classpath"><param name="lib-jar" value="castor.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-jetty-add-lib-classpath"><param name="lib-jar" value="geronimo-javamail_1.4_spec.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-jetty-add-lib-classpath"><param name="lib-jar" value="commons-discovery.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-jetty-add-lib-classpath"><param name="lib-jar" value="axis-jaxrpc.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-jetty-add-lib-classpath"><param name="lib-jar" value="axis.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-jetty-add-lib-classpath"><param name="lib-jar" value="wsdl4j.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-jetty-add-lib-classpath"><param name="lib-jar" value="saaj-api.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-jetty-add-lib-classpath"><param name="lib-jar" value="saaj-impl.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-jetty-add-lib-classpath"><param name="lib-jar" value="activation.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
         <antcall target="general-jetty-add-lib-classpath"><param name="lib-jar" value="zookeeper.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
         <antcall target="general-jetty-add-lib-classpath"><param name="lib-jar" value="json.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
         <antcall target="general-jetty-add-lib-classpath"><param name="lib-jar" value="json-simple.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
@@ -948,6 +1058,15 @@
     </target>
 
     <target name="setup-combined-processes" depends="preclean-combined-processes,scripts-combined">
+        <antcall target="general-combined-add-lib-classpath"><param name="lib-jar" value="castor.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-combined-add-lib-classpath"><param name="lib-jar" value="geronimo-javamail_1.4_spec.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-combined-add-lib-classpath"><param name="lib-jar" value="commons-discovery.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-combined-add-lib-classpath"><param name="lib-jar" value="axis-jaxrpc.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-combined-add-lib-classpath"><param name="lib-jar" value="axis.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-combined-add-lib-classpath"><param name="lib-jar" value="wsdl4j.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-combined-add-lib-classpath"><param name="lib-jar" value="saaj-api.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-combined-add-lib-classpath"><param name="lib-jar" value="saaj-impl.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-combined-add-lib-classpath"><param name="lib-jar" value="activation.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
         <antcall target="general-combined-add-lib-classpath"><param name="lib-jar" value="zookeeper.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
         <antcall target="general-combined-add-lib-classpath"><param name="lib-jar" value="json.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
         <antcall target="general-combined-add-lib-classpath"><param name="lib-jar" value="json-simple.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
@@ -981,6 +1100,15 @@
     </target>
 
     <target name="setup-processes" depends="preclean-processes,scripts">
+        <antcall target="general-add-lib-classpath"><param name="lib-jar" value="castor.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-add-lib-classpath"><param name="lib-jar" value="geronimo-javamail_1.4_spec.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-add-lib-classpath"><param name="lib-jar" value="commons-discovery.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-add-lib-classpath"><param name="lib-jar" value="axis-jaxrpc.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-add-lib-classpath"><param name="lib-jar" value="axis.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-add-lib-classpath"><param name="lib-jar" value="wsdl4j.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-add-lib-classpath"><param name="lib-jar" value="saaj-api.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-add-lib-classpath"><param name="lib-jar" value="saaj-impl.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
+        <antcall target="general-add-lib-classpath"><param name="lib-jar" value="activation.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
         <antcall target="general-add-lib-classpath"><param name="lib-jar" value="zookeeper.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
         <antcall target="general-add-lib-classpath"><param name="lib-jar" value="json.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
         <antcall target="general-add-lib-classpath"><param name="lib-jar" value="json-simple.jar"/><param name="processes-dir" value="${processes-dir}"/></antcall>
@@ -1262,7 +1390,17 @@
         <property name="manifest-cp-61" value="${manifest-cp-60} ../lib/httpclient.jar"/>
         <property name="manifest-cp-62" value="${manifest-cp-61} ../lib/mail.jar"/>
         <property name="manifest-cp-63" value="${manifest-cp-62} ../lib/zookeeper.jar"/>
-        <property name="manifest-cp" value="${manifest-cp-63}"/>
+        <property name="manifest-cp-64" value="${manifest-cp-63} ../lib/castor.jar"/>
+        <property name="manifest-cp-65" value="${manifest-cp-64} ../lib/geronimo-javamail_1.4_spec.jar"/>
+        <property name="manifest-cp-66" value="${manifest-cp-65} ../lib/commons-discovery.jar"/>
+        <property name="manifest-cp-67" value="${manifest-cp-66} ../lib/axis-jaxrpc.jar"/>
+        <property name="manifest-cp-68" value="${manifest-cp-67} ../lib/axis.jar"/>
+        <property name="manifest-cp-69" value="${manifest-cp-68} ../lib/wsdl4j.jar"/>
+        <property name="manifest-cp-70" value="${manifest-cp-69} ../lib/saaj-api.jar"/>
+        <property name="manifest-cp-71" value="${manifest-cp-70} ../lib/saaj-impl.jar"/>
+        <property name="manifest-cp-72" value="${manifest-cp-71} ../lib/activation.jar"/>
+
+        <property name="manifest-cp" value="${manifest-cp-72}"/>
         <mkdir dir="build/example"/>
         <manifest file="build/example/manifest">
             <attribute name="Main-Class" value="org.apache.manifoldcf.jettyrunner.ManifoldCFJettyRunner"/>
@@ -1355,8 +1493,18 @@
         <property name="manifest-cp-proprietary-62" value="${manifest-cp-proprietary-61} ../lib/httpcore.jar"/>
         <property name="manifest-cp-proprietary-63" value="${manifest-cp-proprietary-62} ../lib/httpclient.jar"/>
         <property name="manifest-cp-proprietary-64" value="${manifest-cp-proprietary-63} ../lib/mail.jar"/>
-        <property name="manifest-cp-proprietary-65" value="${manifest-cp-proprietary-63} ../lib/zookeeper.jar"/>
-        <property name="manifest-cp-proprietary" value="${manifest-cp-proprietary-65}"/>
+        <property name="manifest-cp-proprietary-65" value="${manifest-cp-proprietary-64} ../lib/zookeeper.jar"/>
+        <property name="manifest-cp-proprietary-66" value="${manifest-cp-proprietary-65} ../lib/castor.jar"/>
+        <property name="manifest-cp-proprietary-67" value="${manifest-cp-proprietary-66} ../lib/geronimo-javamail_1.4_spec.jar"/>
+        <property name="manifest-cp-proprietary-68" value="${manifest-cp-proprietary-67} ../lib/commons-discovery.jar"/>
+        <property name="manifest-cp-proprietary-69" value="${manifest-cp-proprietary-68} ../lib/axis-jaxrpc.jar"/>
+        <property name="manifest-cp-proprietary-70" value="${manifest-cp-proprietary-69} ../lib/axis.jar"/>
+        <property name="manifest-cp-proprietary-71" value="${manifest-cp-proprietary-70} ../lib/wsdl4j.jar"/>
+        <property name="manifest-cp-proprietary-72" value="${manifest-cp-proprietary-71} ../lib/saaj-api.jar"/>
+        <property name="manifest-cp-proprietary-73" value="${manifest-cp-proprietary-72} ../lib/saaj-impl.jar"/>
+        <property name="manifest-cp-proprietary-74" value="${manifest-cp-proprietary-73} ../lib/activation.jar"/>
+        
+        <property name="manifest-cp-proprietary" value="${manifest-cp-proprietary-74}"/>
         <mkdir dir="build/example-proprietary"/>
         <manifest file="build/example-proprietary/manifest">
             <attribute name="Main-Class" value="org.apache.manifoldcf.jettyrunner.ManifoldCFJettyRunner"/>
@@ -1440,6 +1588,22 @@
 
     <target name="jar-tests" depends="jar-core-tests,jar-agents-tests,jar-pull-agent-tests,jar-script-engine-tests"/>
 
+    <target name="test-lib" depends="jar-tests">
+        <mkdir dir="dist/test-lib"/>
+        <copy todir="dist/test-lib">
+            <fileset dir="../lib">
+                <include name="junit*.jar"/>
+                <include name="juli*.jar"/>
+            </fileset>
+            <fileset dir="build/test-jar">
+                <include name="mcf-core-tests.jar"/>
+                <include name="mcf-agents-tests.jar"/>
+                <include name="mcf-pull-agent-tests.jar"/>
+                <include name="mcf-script-engine-tests.jar"/>
+            </fileset>
+        </copy>
+    </target>
+
     <target name="build-tests" depends="jar-tests"/>
 
     <target name="run-core-tests" depends="compile-core,compile-core-tests">
@@ -1639,7 +1803,7 @@
         </java>
     </target>
     
-    <target name="build" depends="multi-process-zk-example,multi-process-zk-example-proprietary,multi-process-file-example,multi-process-file-example-proprietary,single-process-example,single-process-example-proprietary,example-common,script-engine"/>
+    <target name="build" depends="multi-process-zk-example,multi-process-zk-example-proprietary,multi-process-file-example,multi-process-file-example-proprietary,single-process-example,single-process-example-proprietary,example-common,script-engine,buildfiles,test-lib"/>
     
     <target name="all" depends="build,doc,build-tests,run-tests,run-tests-derby,run-tests-HSQLDB,run-tests-HSQLDBext"/>
     
diff --git a/framework/buildfiles/connector-build.xml b/framework/buildfiles/connector-build.xml
new file mode 100644
index 0000000..7072fb6
--- /dev/null
+++ b/framework/buildfiles/connector-build.xml
@@ -0,0 +1,1287 @@
+<!--
+ 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.
+-->
+
+<project name="mcf-connector-build">
+
+    <property environment="env"/>
+
+    <target name="setup-maven-url">
+        <property name="maven-base-url" value="http://repo1.maven.org/maven2"/>
+    </target>
+    
+    <target name="download-via-maven" depends="setup-maven-url">
+        <get src="${maven-base-url}/${project-path}/${artifact-name}/${artifact-version}/${artifact-name}-${artifact-version}.${artifact-type}" dest="${target}/${artifact-name}.${artifact-type}"/>
+    </target>
+
+    <target name="checkout-source-via-svn">
+        <mkdir dir="${root-dir}"/>
+        <exec dir="${root-dir}" executable="svn" failifexecutionfails="true" failonerror="true">
+              <arg value="checkout" />
+              <arg value="${svn-url}" />
+              <arg value="${dir-name}" />
+        </exec>
+    </target>
+
+    <target name="calculate-svn-patch-available">
+        <mkdir dir="build/svn-check"/>
+        <exec dir="build/svn-check" output="build/svn-check/svn.output" executable="svn" failifexecutionfails="true" failonerror="true">
+              <arg value="--version" />
+        </exec>
+        <loadfile property="svn-output" srcFile="build/svn-check/svn.output"/>
+        <condition property="svn-version-ok">
+            <or>
+                <contains string="${svn-output}" substring="1.7."/>
+                <contains string="${svn-output}" substring="1.8."/>
+                <contains string="${svn-output}" substring="1.9."/>
+                <contains string="${svn-output}" substring="1.10."/>
+                <contains string="${svn-output}" substring="1.11."/>
+            </or>
+        </condition>
+    </target>
+
+    <target name="calculate-patch-available" depends="calculate-svn-patch-available" unless="svn-version-ok">
+        <condition property="patch-ok">
+            <os family="unix"/>
+        </condition>
+    </target>
+    
+    <target name="check-svn-patch-available" depends="calculate-svn-patch-available" unless="svn-version-ok">
+        <echo message="You need svn version 1.7 or higher - attempting patch instead."/>
+    </target>
+    
+    <target name="check-patch-available" depends="calculate-patch-available" unless="patch-ok">
+    </target>
+    
+    <target name="patch-source-via-svn" depends="check-svn-patch-available" if="svn-version-ok">
+        <mkdir dir="${root-dir}"/>
+        <exec dir="${root-dir}" executable="svn" failifexecutionfails="true" failonerror="true">
+              <arg value="patch" />
+              <arg value="${diff-file}" />
+              <arg value="${dir-name}" />
+        </exec>
+    </target>
+    
+    <target name="patch-source-via-patch" depends="check-patch-available" if="patch-ok">
+        <mkdir dir="${root-dir}"/>
+        <exec dir="${root-dir}/${dir-name}" executable="patch" input="../${diff-file}" failifexecutionfails="true" failonerror="true">
+              <arg value="-p0" />
+        </exec>
+    </target>
+    
+    <target name="patch-source" depends="patch-source-via-svn,patch-source-via-patch"/>
+    
+    <target name="build-via-ant">
+        <exec osfamily="windows" dir="${root-dir}" executable="cmd" failifexecutionfails="true" failonerror="true">
+            <arg value="/c"/>
+            <arg value="ant.bat"/>
+            <arg value="${target}" />
+        </exec>
+        <exec osfamily="unix" dir="${root-dir}" executable="ant" failifexecutionfails="true" failonerror="true">
+            <arg value="${target}" />
+        </exec>
+    </target>
+    
+    <target name="clean">
+        <delete dir="build"/>
+        <delete dir="dist"/>
+        <delete dir="test-derby-output"/>
+        <delete dir="test-postgresql-output"/>
+        <delete dir="test-mysql-output"/>
+        <delete dir="test-HSQLDB-output"/>
+        <delete dir="test-HSQLDBext-output"/>
+    </target>
+
+    <path id="mcf-connector-build.connector-classpath">
+        <fileset dir="${mcf-dist}/lib">
+            <include name="mcf-core.jar"/>
+            <include name="mcf-ui-core.jar"/>
+            <include name="mcf-agents.jar"/>
+            <include name="mcf-pull-agent.jar"/>
+        </fileset>
+        <fileset dir="${mcf-dist}/lib">
+            <include name="mail*.jar"/>
+            <include name="json*.jar"/>
+            <include name="commons-codec*.jar"/>
+            <include name="commons-collections*.jar"/>
+            <include name="commons-el*.jar"/>
+            <include name="commons-fileupload*.jar"/>
+            <include name="httpcore*.jar"/>
+            <include name="httpclient*.jar"/>
+            <include name="commons-io*.jar"/>
+            <include name="commons-lang*.jar"/>
+            <include name="commons-logging*.jar"/>
+            <include name="eclipse*.jar"/>
+            <include name="jasper*.jar"/>
+            <include name="jetty*.jar"/>
+            <include name="slf4j*.jar"/>
+            <include name="jsp-2.1*.jar"/>
+            <include name="jsp-api*.jar"/>
+            <include name="junit*.jar"/>
+            <include name="log4j*.jar"/>
+            <include name="serializer*.jar"/>
+            <include name="servlet-api*.jar"/>
+            <include name="tomcat-juli*.jar"/>
+            <include name="xalan*.jar"/>
+            <include name="xercesImpl*.jar"/>
+            <include name="xml-apis*.jar"/>
+            <include name="velocity*.jar"/>
+        </fileset>
+        <fileset dir="${mcf-dist}/lib">
+            <include name="axis*.jar"/>
+            <include name="saaj*.jar"/>
+            <include name="wsdl4j*.jar"/>
+            <include name="commons-discovery*.jar"/>
+            <include name="activation*.jar"/>
+            <include name="castor*.jar"/>
+            <include name="geronimo-javamail_1.4_spec*.jar"/>
+        </fileset>
+        <pathelement location="build/stubclasses"/>
+        <pathelement location="build/wsdlclasses"/>
+        <pathelement location="build/xsdclasses"/>
+        <pathelement location="build/interface/classes"/>
+        <pathelement location="build/rmistub/classes"/>
+    </path>
+    
+    <path id="connector-classpath">
+        <path refid="mcf-connector-build.connector-classpath"/>
+    </path>
+
+    <path id="mcf-connector-build.connector-test-classpath">
+        <path refid="connector-classpath"/>
+        <pathelement location="build/connector/classes"/>
+        <fileset dir="${mcf-dist}/test-lib"/>
+        <fileset dir="${mcf-dist}/lib">
+            <include name="postgresql*.jar"/>
+            <include name="derby*.jar"/>
+            <include name="hsqldb*.jar"/>
+        </fileset>
+        <fileset dir="${mcf-dist}/lib-proprietary">
+            <include name="mysql*.jar"/>
+        </fileset>
+    </path>
+
+    <path id="connector-test-classpath">
+        <path refid="mcf-connector-build.connector-test-classpath"/>
+    </path>
+
+    <path id="mcf-connector-build.implementation-classpath">
+        <pathelement location="build/interface/classes"/>
+        <pathelement location="build/stubclasses"/>
+    </path>
+
+    <path id="implementation-classpath">
+        <path refid="mcf-connector-build.implementation-classpath"/>
+    </path>
+
+    <path id="mcf-connector-build.interface-classpath">
+    </path>
+
+    <path id="interface-classpath">
+        <path refid="mcf-connector-build.interface-classpath"/>
+    </path>
+
+    <!-- Standard connector proprietary/non-proprietary setup described below.
+    (1) If there's a lib-proprietary directory, we presume that the connector requires one or
+        more proprietary libraries to build and run.  We expect to find a README.txt file in
+        the directory, which describes what is needed at build time, and that if the required
+        libraries are not present, the connector's build.xml file will override "calculate-condition"
+        and "precompile-check" appropriately.  If there's a "proprietary-library-instructions.txt" file,
+	it will be copied to the connector-lib directory with the name {connector}-README.txt.
+        If the required libraries are not present, the same file will also be copied to {connector}-PLACEHOLDER.txt.
+    (2) If there's a build-stub directory, we presume that the connector requires one or
+        more proprietary libraries to run, but can be built without proprietary libraries through
+        the use of stubs.  In this case the connector MAY also have a
+        "proprietary-library-instructions.txt" file, if proprietary libraries are required at
+        runtime.  This file will be copied to the
+        connector-lib directory with the name {connector}-README.txt and to {connector}-PLACEHOLDER.txt,
+        as a placeholder for the required proprietary libraries.
+
+    A connector can have both a build-stub and a lib-proprietary directory.  In this case,
+    the connector will build against stubs but will deliver proprietary libraries to
+    connector-lib-proprietary for use at runtime, and the {connector}-README.txt
+    file will only be delivered to the connector-lib directory.
+    -->
+    
+    <target name="calculate-condition">
+        <available file="build.xml" property="build-present"/>
+    </target>
+
+    <target name="calculate-testcode-condition">
+        <available file="connector/src/test/java" property="tests-present"/>
+    </target>
+
+    <target name="calculate-run-condition">
+        <property name="libs-present" value="true"/>
+    </target>
+
+    <target name="precompile-warn" depends="calculate-condition" unless="build-present"/>
+
+    <target name="pretest-warn" depends="calculate-testcode-condition" unless="tests-present"/>
+
+    <target name="prerun-warn" depends="calculate-run-condition" unless="libs-present"/>
+
+
+    <target name="precompile-check" depends="precompile-warn">
+        <condition property="canBuild">
+            <isset property="build-present"/>
+        </condition>
+    </target>
+    
+    <target name="pretest-check" depends="precompile-warn,pretest-warn">
+        <condition property="canTest">
+            <and>
+                <isset property="build-present"/>
+                <isset property="tests-present"/>
+            </and>
+        </condition>
+    </target>
+
+    <target name="prerun-check" depends="precompile-warn,prerun-warn">
+        <condition property="canRun">
+            <and>
+                <isset property="build-present"/>
+                <isset property="libs-present"/>
+            </and>
+        </condition>
+    </target>
+
+    <target name="has-stubs-check" depends="precompile-check" if="canBuild">
+        <available file="build-stub/src/main/java" property="hasStubs"/>
+    </target>
+
+    <target name="has-proprietary-materials-check">
+    </target>
+    
+    <target name="build-stubs-check" depends="has-stubs-check,has-proprietary-materials-check" if="hasStubs">
+        <condition property="buildStubs">
+            <not>
+                <isset property="proprietaryMaterialsAvailable"/>
+            </not>
+        </condition>
+    </target>
+
+    <target name="include-README-lib-proprietary-check" depends="precompile-check" if="canBuild">
+        <available file="proprietary-library-instructions.txt" property="includeREADMELibProprietary"/>
+    </target>
+    
+    <target name="include-proprietary-instructions-lib-proprietary-check" depends="prerun-check" unless="canRun">
+        <available file="proprietary-library-instructions.txt" property="includeProprietaryInstructionsLibProprietary"/>
+    </target>
+
+    <target name="compile-stubs" depends="build-stubs-check" if="buildStubs">
+        <mkdir dir="build/stubclasses"/>
+        <javac srcdir="build-stub/src/main/java" destdir="build/stubclasses" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+            <classpath>
+            </classpath>
+        </javac>
+    </target>
+
+    <target name="has-tests-check" depends="precompile-check" if="canBuild">
+        <available file="connector/src/test/java" property="hasTests"/>
+    </target>
+
+    <target name="has-test-resources-check" depends="has-tests-check" if="hasTests">
+        <available file="connector/src/test/resources" property="hasTestResources"/>
+    </target>
+
+    <target name="has-native2ascii-check" depends="precompile-check" if="canBuild">
+        <available file="connector/src/main/native2ascii" property="hasNative2Ascii"/>
+    </target>
+
+    <target name="has-resources-check" depends="precompile-check" if="canBuild">
+        <available file="connector/src/main/resources" property="hasResources"/>
+    </target>
+
+    <target name="has-RMI-check" depends="precompile-check" if="canBuild">
+        <available file="implementation" property="hasImplementation"/>
+        <available file="interface" property="hasInterface"/>
+        <available file="server" property="hasServer"/>
+        <available file="registry" property="hasRegistry"/>
+        <condition property="hasRMI">
+            <and>
+                <isset property="hasImplementation"/>
+                <isset property="hasInterface"/>
+                <isset property="hasServer"/>
+                <isset property="hasRegistry"/>
+            </and>
+        </condition>
+    </target>
+    
+    <target name="classcreate-wsdl">
+        <mkdir dir="build/wsdljava"/>
+        <java classname="org.apache.axis.wsdl.WSDL2Java" fork="true">
+            <classpath>
+                <fileset dir="${mcf-dist}/lib">
+                    <include name="axis*.jar"/>
+                    <include name="saaj*.jar"/>
+                    <include name="wsdl*.jar"/>
+                    <include name="mail*.jar"/>
+                    <include name="activation*.jar"/>
+                    <include name="commons-discovery*.jar"/>
+                    <include name="commons-logging*.jar"/>
+                </fileset>
+            </classpath>
+            <jvmarg value="-Dfile.encoding=UTF-8"/>
+            <arg value="--timeout"/>
+            <arg value="0"/>
+            <arg value="--noImports"/>
+            <arg value="-o"/>
+            <arg value="build/wsdljava"/>
+            <arg value="${wsdlname}"/>
+        </java>
+    </target>
+
+    <target name="classcreate-xsd">
+        <mkdir dir="build/xsdjava"/>
+        <java classname="org.exolab.castor.builder.SourceGeneratorMain" fork="true">
+            <classpath>
+                <fileset dir="${mcf-dist}/lib">
+                    <include name="castor*.jar"/>
+                    <include name="geronimo-activation_1.1_spec*.jar"/>
+                    <include name="geronimo-javamail_1.4_spec*.jar"/>
+                    <include name="xerces*.jar"/>
+                    <include name="commons-logging*.jar"/>
+                </fileset>
+            </classpath>
+            <jvmarg value="-Dfile.encoding=UTF-8"/>
+            <arg value="-i"/>
+            <arg value="${xsdname}"/>
+            <arg value="=f"/>
+            <arg value="-dest"/>
+            <arg value="build/xsdjava"/>
+            <arg value="-package"/>
+            <arg value="org.apache.manifoldcf.crawler.connectors.${packagename}"/>
+        </java>
+    </target>
+
+    <target name="classcreate-wsdls"/>
+
+    <target name="has-wsdls-check" depends="classcreate-wsdls,precompile-check" if="canBuild">
+        <available file="build/wsdljava" property="hasWSDLs"/>
+    </target>
+
+    <target name="compile-wsdls" depends="has-wsdls-check" if="hasWSDLs">
+        <mkdir dir="build/wsdlclasses"/>
+        <javac srcdir="build/wsdljava" destdir="build/wsdlclasses" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+            <classpath>
+                <fileset dir="${mcf-dist}/lib">
+                    <include name="axis*.jar"/>
+                    <include name="saaj*.jar"/>
+                    <include name="wsdl*.jar"/>
+                    <include name="activation*.jar"/>
+                    <include name="commons-discovery*.jar"/>
+                    <include name="commons-logging*.jar"/>
+                </fileset>
+            </classpath>
+        </javac>
+    </target>
+
+    <target name="classcreate-xsds"/>
+    
+    <target name="has-xsds-check" depends="classcreate-xsds,precompile-check" if="canBuild">
+        <available file="build/xsdjava" property="hasXSDs"/>
+    </target>
+
+    <target name="compile-xsds" depends="has-xsds-check" if="hasXSDs">
+        <mkdir dir="build/xsdclasses"/>
+        <javac srcdir="build/xsdjava" destdir="build/xsdclasses" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+            <classpath>
+                <fileset dir="${mcf-dist}/lib">
+                    <include name="castor*.jar"/>
+                </fileset>
+            </classpath>
+        </javac>
+    </target>
+
+    <target name="setup-rmic" depends="has-RMI-check" if="hasRMI">
+        <mkdir dir="build/rmijava"/>
+        <copy todir="build/rmijava">
+            <fileset dir="implementation/src/main/java"/>
+        </copy>
+    </target>
+
+    <target name="rmic-build">
+        <rmic base="build/rmijava" classname="${classname}">
+            <classpath>
+                <path refid="implementation-classpath"/>
+                <pathelement location="build/implementation/classes"/>
+            </classpath>
+        </rmic>
+    </target>
+
+    <target name="rmic-build-all" depends="compile-implementation,compile-interface,setup-rmic,has-RMI-check" if="hasRMI"/>
+
+    <target name="doc-rmi" depends="compile-wsdls,compile-xsds,has-RMI-check" if="hasRMI">
+        <mkdir dir="dist/doc"/>
+        <javadoc destdir="dist/doc" source="1.6">
+            <classpath>
+                <path refid="connector-classpath"/>
+            </classpath>
+            <fileset dir="interface/src/main/java" includes="**/*.java"/>
+            <fileset dir="connector/src/main/java" includes="**/*.java"/>
+        </javadoc>
+    </target>
+
+    <target name="doc" depends="compile-stubs,doc-rmi,compile-wsdls,compile-xsds,has-RMI-check,precompile-check" if="canBuild" unless="hasRMI">
+        <mkdir dir="dist/doc"/>
+        <javadoc destdir="dist/doc" source="1.6">
+            <classpath>
+                <path refid="connector-classpath"/>
+            </classpath>
+            <fileset dir="connector/src/main/java" includes="**/*.java"/>
+        </javadoc>
+    </target>
+
+    <target name="compile-connector-resources" depends="has-resources-check" if="hasResources">
+        <mkdir dir="build/connector/classes"/>
+        <copy todir="build/connector/classes">
+            <fileset dir="connector/src/main/resources"/>
+        </copy>
+    </target>
+
+    <target name="compile-connector-native2ascii" depends="has-native2ascii-check" if="hasNative2Ascii">
+        <mkdir dir="build/connector/classes"/>
+        <native2ascii encoding="UTF-8" src="connector/src/main/native2ascii" dest="build/connector/classes" includes="**/*.properties" />
+    </target>
+    
+    <target name="compile-rmic" depends="rmic-build-all,has-RMI-check" if="hasRMI">
+        <mkdir dir="build/rmiskel/classes"/>
+        <copy todir="build/rmiskel/classes">
+            <fileset dir="build/rmijava">
+                <include name="**/*_Skel.class"/>
+            </fileset>
+        </copy>
+        <mkdir dir="build/rmistub/classes"/>
+        <copy todir="build/rmistub/classes">
+            <fileset dir="build/rmijava">
+                <include name="**/*_Stub.class"/>
+            </fileset>
+        </copy>
+    </target>
+    
+    <target name="compile-server" depends="compile-interface,compile-implementation,compile-rmic,has-RMI-check" if="hasRMI">
+        <mkdir dir="build/server/classes"/>
+        <javac srcdir="server/src/main/java" destdir="build/server/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+            <classpath>
+                <pathelement location="build/interface/classes"/>
+                <pathelement location="build/implementation/classes"/>
+                <pathelement location="build/rmistub/classes"/>
+                <pathelement location="build/rmiskel/classes"/>
+            </classpath>
+        </javac>
+    </target>
+
+    <target name="compile-registry" depends="compile-interface,has-RMI-check" if="hasRMI">
+        <mkdir dir="build/registry/classes"/>
+        <javac srcdir="registry/src/main/java" destdir="build/registry/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+            <classpath>
+                <pathelement location="build/interface/classes"/>
+            </classpath>
+        </javac>
+    </target>
+
+    <target name="compile-connector" depends="compile-stubs,compile-connector-native2ascii,compile-connector-resources,compile-wsdls,compile-xsds,compile-interface,compile-rmic,precompile-check" if="canBuild">
+        <mkdir dir="build/connector/classes"/>
+        <javac srcdir="connector/src/main/java" destdir="build/connector/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+            <classpath>
+                <path refid="connector-classpath"/>
+            </classpath>
+        </javac>
+    </target>
+
+    <target name="compile-implementation" depends="compile-stubs,compile-interface,has-RMI-check" if="hasRMI">
+        <mkdir dir="build/implementation/classes"/>
+        <javac srcdir="implementation/src/main/java" destdir="build/implementation/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+            <classpath>
+                <path refid="implementation-classpath"/>
+            </classpath>
+        </javac>
+    </target>
+
+    <target name="compile-interface" depends="has-RMI-check" if="hasRMI">
+        <mkdir dir="build/interface/classes"/>
+        <javac srcdir="interface/src/main/java" destdir="build/interface/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+            <classpath>
+                <path refid="interface-classpath"/>
+            </classpath>
+        </javac>
+    </target>
+
+    <target name="compile-test-resources" depends="has-test-resources-check" if="hasTestResources">
+        <mkdir dir="build/connector-tests/classes"/>
+        <copy todir="build/connector-tests/classes">
+            <fileset dir="connector/src/test/resources"/>
+        </copy>
+    </target>
+
+    <target name="compile-tests" depends="compile-connector,compile-test-resources,has-tests-check" if="hasTests">
+        <mkdir dir="build/connector-tests/classes"/>
+        <javac srcdir="connector/src/test/java" destdir="build/connector-tests/classes" deprecation="true" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
+            <classpath>
+                <path refid="connector-test-classpath"/>
+            </classpath>
+        </javac>
+    </target>
+
+    <target name="jar-connector" depends="compile-connector,precompile-check" if="canBuild">
+        <mkdir dir="build/xsdclasses"/>
+        <mkdir dir="build/wsdlclasses"/>
+        <mkdir dir="build/jar"/>
+        <jar destfile="build/jar/mcf-${ant.project.name}-connector.jar">
+        	<fileset dir="build/connector/classes"/>
+          <fileset dir="build/xsdclasses"/>
+          <fileset dir="build/wsdlclasses"/>
+        </jar>
+    </target>
+
+    <target name="jar-interface" depends="compile-interface,has-RMI-check" if="hasRMI">
+        <mkdir dir="build/jar"/>
+        <jar destfile="build/jar/mcf-${ant.project.name}-connector-interface.jar" basedir="build/interface/classes"/>
+    </target>
+
+    <target name="jar-implementation" depends="compile-implementation,has-RMI-check" if="hasRMI">
+        <mkdir dir="build/jar"/>
+        <jar destfile="build/jar/mcf-${ant.project.name}-connector-implementation.jar" basedir="build/implementation/classes"/>
+    </target>
+
+    <target name="jar-rmiskel" depends="compile-rmic,has-RMI-check" if="hasRMI">
+        <mkdir dir="build/jar"/>
+        <jar destfile="build/jar/mcf-${ant.project.name}-connector-rmiskel.jar" basedir="build/rmiskel/classes"/>
+    </target>
+
+    <target name="jar-rmistub" depends="compile-rmic,has-RMI-check" if="hasRMI">
+        <mkdir dir="build/jar"/>
+        <jar destfile="build/jar/mcf-${ant.project.name}-connector-rmistub.jar" basedir="build/rmistub/classes"/>
+    </target>
+
+    <target name="jar-server" depends="compile-server,has-RMI-check" if="hasRMI">
+        <mkdir dir="build/jar"/>
+        <jar destfile="build/jar/mcf-${ant.project.name}-connector-server.jar" basedir="build/server/classes"/>
+    </target>
+
+    <target name="jar-registry" depends="compile-registry,has-RMI-check" if="hasRMI">
+        <mkdir dir="build/jar"/>
+        <jar destfile="build/jar/mcf-${ant.project.name}-connector-registry.jar" basedir="build/registry/classes"/>
+    </target>
+
+    <target name="lib-rmi" depends="jar-interface,jar-rmistub,has-RMI-check" if="hasRMI">
+        <mkdir dir="dist/lib"/>
+        <copy todir="dist/lib" file="build/jar/mcf-${ant.project.name}-connector-rmistub.jar"/>
+        <copy todir="dist/lib" file="build/jar/mcf-${ant.project.name}-connector-interface.jar"/>
+    </target>
+    
+    <target name="lib-wsdls" depends="has-wsdls-check" if="hasWSDLs">
+        <!-- mkdir dir="dist/lib"/>
+        <copy todir="dist/lib">
+            <fileset dir="${mcf-dist}/lib">
+                <include name="axis*.jar"/>
+                <include name="saaj*.jar"/>
+                <include name="wsdl*.jar"/>
+                <include name="activation*.jar"/>
+                <include name="commons-discovery*.jar"/>
+            </fileset>
+        </copy -->
+    </target>
+
+    <target name="lib-xsds" depends="has-xsds-check" if="hasXSDs">
+        <!-- mkdir dir="dist/lib"/>
+        <copy todir="dist/lib">
+            <fileset dir="${mcf-dist}/lib">
+                <include name="castor*.jar"/>
+                <include name="geronimo-activation_1.1_spec*.jar"/>
+                <include name="geronimo-javamail_1.4_spec*.jar"/>
+            </fileset>
+        </copy -->
+    </target>
+
+    <target name="lib" depends="lib-rmi,lib-wsdls,lib-xsds,jar-connector,precompile-check" if="canBuild">
+        <mkdir dir="dist/lib"/>
+        <copy todir="dist/lib" file="build/jar/mcf-${ant.project.name}-connector.jar"/>
+    </target>
+
+    <target name="lib-proprietary-README" depends="include-README-lib-proprietary-check" if="includeREADMELibProprietary">
+        <mkdir dir="dist/lib-proprietary-only"/>
+        <copy tofile="dist/lib-proprietary-only/${ant.project.name}-README.txt" file="proprietary-library-instructions.txt"/>
+    </target>
+    
+    <target name="lib-proprietary-instructions" depends="include-proprietary-instructions-lib-proprietary-check" if="includeProprietaryInstructionsLibProprietary">
+        <mkdir dir="dist/lib-proprietary-only"/>
+        <copy tofile="dist/lib-proprietary-only/${ant.project.name}-PLACEHOLDER.txt" file="proprietary-library-instructions.txt"/>
+    </target>
+    
+    <target name="server-process" depends="jar-interface,jar-implementation,jar-rmiskel,jar-server,has-RMI-check" if="hasRMI">
+        <mkdir dir="dist/server-process/lib"/>
+        <copy todir="dist/server-process/lib">
+            <fileset dir="build/jar">
+                <include name="mcf-${ant.project.name}-connector-server.jar"/>
+                <include name="mcf-${ant.project.name}-connector-interface.jar"/>
+                <include name="mcf-${ant.project.name}-connector-rmiskel.jar"/>
+                <include name="mcf-${ant.project.name}-connector-implementation.jar"/>
+            </fileset>
+        </copy>
+        <copy todir="dist/server-process">
+            <fileset dir="server-scripts">
+                <include name="*.sh"/>
+                <include name="*.bat"/>
+            </fileset>
+        </copy>
+    </target>
+
+    <target name="registry-process" depends="jar-registry,has-RMI-check" if="hasRMI">
+        <mkdir dir="dist/registry-process/lib"/>
+        <copy todir="dist/registry-process/lib">
+            <fileset dir="build/jar">
+                <include name="mcf-${ant.project.name}-connector-registry.jar"/>
+                <include name="mcf-${ant.project.name}-connector-interface.jar"/>
+            </fileset>
+        </copy>
+        <copy todir="dist/registry-process">
+            <fileset dir="registry-scripts">
+                <include name="*.sh"/>
+                <include name="*.bat"/>
+            </fileset>
+        </copy>
+    </target>
+
+    <!-- Override this target to provide integration materials to the connector dist area -->
+    <target name="integration" depends="precompile-check" if="canBuild"/>
+
+    <!-- Delivery targets.  These targets conditionally deliver code and connectors.xml lines
+        into the main distribution area.
+    -->
+    
+    <target name="general-connector-integration-check" depends="integration" if="canBuild">
+        <available file="dist/integration" type="dir" property="has-integration"/>
+    </target>
+
+    <target name="general-server-process-check" depends="server-process" if="canBuild">
+        <available file="dist/server-process" type="dir" property="has-server-process"/>
+    </target>
+
+    <target name="general-registry-process-check" depends="registry-process" if="canBuild">
+        <available file="dist/registry-process" type="dir" property="has-registry-process"/>
+    </target>
+
+    <target name="general-connector-delivery-integration" depends="general-connector-integration-check" if="has-integration">
+        <mkdir dir="${mcf-dist}/${ant.project.name}-integration"/>
+        <copy todir="${mcf-dist}/${ant.project.name}-integration">
+            <fileset dir="dist/integration"/>
+        </copy>
+    </target>
+
+    <target name="general-delivery-server-process" depends="general-server-process-check" if="has-server-process">
+        <mkdir dir="${mcf-dist}/${ant.project.name}-server-process"/>
+        <copy todir="${mcf-dist}/${ant.project.name}-server-process">
+            <fileset dir="dist/server-process"/>
+        </copy>
+    </target>
+
+    <target name="general-delivery-registry-process" depends="general-registry-process-check" if="has-registry-process">
+        <mkdir dir="${mcf-dist}/${ant.project.name}-registry-process"/>
+        <copy todir="${mcf-dist}/${ant.project.name}-registry-process">
+            <fileset dir="dist/registry-process"/>
+        </copy>
+    </target>
+    
+    <target name="general-connector-delivery-processes" depends="general-delivery-server-process,general-delivery-registry-process"/>
+
+    <target name="general-connector-proprietary-only-check" depends="lib-proprietary-instructions,lib-proprietary-README">
+        <available file="dist/lib-proprietary-only" type="dir" property="has-proprietary-only"/>
+    </target>
+
+    <target name="general-connector-proprietary-only-delivery" depends="general-connector-proprietary-only-check" if="has-proprietary-only">
+        <mkdir dir="${mcf-dist}/connector-lib-proprietary"/>
+        <copy todir="${mcf-dist}/connector-lib-proprietary">
+            <fileset dir="dist/lib-proprietary-only"/>
+        </copy>
+    </target>
+
+    <target name="general-connector-delivery-check" depends="lib">
+        <available file="dist/lib" type="dir" property="has-lib"/>
+    </target>
+    
+    <target name="general-connector-delivery" depends="general-connector-delivery-check,general-connector-proprietary-only-delivery,general-connector-delivery-integration,general-connector-delivery-processes" if="has-lib">
+        <mkdir dir="${mcf-dist}/connector-lib"/>
+        <copy todir="${mcf-dist}/connector-lib">
+            <fileset dir="dist/lib"/>
+        </copy>
+    </target>
+
+    <target name="general-connector-doc-check" depends="doc">
+        <available file="dist/doc" type="dir" property="has-doc"/>
+    </target>
+
+    <target name="general-connector-doc-delivery" depends="general-connector-doc-check" if="has-doc">
+        <mkdir dir="${mcf-dist}/doc/api/${ant.project.name}"/>
+        <copy todir="${mcf-dist}/doc/api/${ant.project.name}">
+            <fileset dir="dist/doc"/>
+        </copy>
+    </target>
+
+    <target name="general-connector-proprietary-runnable-check" depends="lib-proprietary-instructions">
+        <available file="dist/lib-proprietary-only/${ant.project.name}-PLACEHOLDER.txt" property="has-placeholder"/>
+        <condition property="is-proprietary-runnable">
+            <not>
+                <isset property="has-placeholder"/>
+            </not>
+        </condition>
+    </target>
+
+    <target name="general-connector-runnable-check" depends="general-connector-proprietary-runnable-check">
+        <available file="lib-proprietary" type="dir" property="has-lib-proprietary"/>
+        <condition property="is-runnable">
+            <not>
+                <isset property="has-lib-proprietary"/>
+            </not>
+        </condition>
+    </target>
+    
+    <target name="general-add-mapping-connector-commented" depends="general-connector-runnable-check" unless="is-runnable">
+        <replace file="${mcf-dist}/connectors.xml" token="&lt;!-- Add your mapping connectors here --&gt;" value="&lt;!-- Add your mapping connectors here --&gt;&#0010;  &lt;!--mappingconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/--&gt;"/>
+    </target>
+
+    <target name="general-add-mapping-connector-non-commented" depends="general-connector-runnable-check" if="is-runnable">
+        <replace file="${mcf-dist}/connectors.xml" token="&lt;!-- Add your mapping connectors here --&gt;" value="&lt;!-- Add your mapping connectors here --&gt;&#0010;  &lt;mappingconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/&gt;"/>
+    </target>
+
+    <target name="general-add-mapping-connector-proprietary-commented" depends="general-connector-proprietary-runnable-check" unless="is-proprietary-runnable">
+        <replace file="${mcf-dist}/connectors-proprietary.xml" token="&lt;!-- Add your mapping connectors here --&gt;" value="&lt;!-- Add your mapping connectors here --&gt;&#0010;  &lt;!--mappingconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/--&gt;"/>
+    </target>
+
+    <target name="general-add-mapping-connector-proprietary-non-commented" depends="general-connector-proprietary-runnable-check" if="is-proprietary-runnable">
+        <replace file="${mcf-dist}/connectors-proprietary.xml" token="&lt;!-- Add your mapping connectors here --&gt;" value="&lt;!-- Add your mapping connectors here --&gt;&#0010;  &lt;mappingconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/&gt;"/>
+    </target>
+
+    <target name="general-add-mapping-connector" depends="general-add-mapping-connector-commented,general-add-mapping-connector-non-commented,general-add-mapping-connector-proprietary-commented,general-add-mapping-connector-proprietary-non-commented">
+    </target>
+
+    <target name="general-add-authority-connector-commented" depends="general-connector-runnable-check" unless="is-runnable">
+        <replace file="${mcf-dist}/connectors.xml" token="&lt;!-- Add your authority connectors here --&gt;" value="&lt;!-- Add your authority connectors here --&gt;&#0010;  &lt;!--authorityconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/--&gt;"/>
+    </target>
+
+    <target name="general-add-authority-connector-non-commented" depends="general-connector-runnable-check" if="is-runnable">
+        <replace file="${mcf-dist}/connectors.xml" token="&lt;!-- Add your authority connectors here --&gt;" value="&lt;!-- Add your authority connectors here --&gt;&#0010;  &lt;authorityconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/&gt;"/>
+    </target>
+
+    <target name="general-add-authority-connector-proprietary-commented" depends="general-connector-proprietary-runnable-check" unless="is-proprietary-runnable">
+        <replace file="${mcf-dist}/connectors-proprietary.xml" token="&lt;!-- Add your authority connectors here --&gt;" value="&lt;!-- Add your authority connectors here --&gt;&#0010;  &lt;!--authorityconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/--&gt;"/>
+    </target>
+
+    <target name="general-add-authority-connector-proprietary-non-commented" depends="general-connector-proprietary-runnable-check" if="is-proprietary-runnable">
+        <replace file="${mcf-dist}/connectors-proprietary.xml" token="&lt;!-- Add your authority connectors here --&gt;" value="&lt;!-- Add your authority connectors here --&gt;&#0010;  &lt;authorityconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/&gt;"/>
+    </target>
+
+    <target name="general-add-authority-connector" depends="general-add-authority-connector-commented,general-add-authority-connector-non-commented,general-add-authority-connector-proprietary-commented,general-add-authority-connector-proprietary-non-commented">
+    </target>
+
+    <target name="general-add-output-connector-commented" depends="general-connector-runnable-check" unless="is-runnable">
+        <replace file="${mcf-dist}/connectors.xml" token="&lt;!-- Add your output connectors here --&gt;" value="&lt;!-- Add your output connectors here --&gt;&#0010;  &lt;!--outputconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/--&gt;"/>
+    </target>
+
+    <target name="general-add-output-connector-non-commented" depends="general-connector-runnable-check" if="is-runnable">
+        <replace file="${mcf-dist}/connectors.xml" token="&lt;!-- Add your output connectors here --&gt;" value="&lt;!-- Add your output connectors here --&gt;&#0010;  &lt;outputconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/&gt;"/>
+    </target>
+
+    <target name="general-add-output-connector-proprietary-commented" depends="general-connector-proprietary-runnable-check" unless="is-proprietary-runnable">
+        <replace file="${mcf-dist}/connectors-proprietary.xml" token="&lt;!-- Add your output connectors here --&gt;" value="&lt;!-- Add your output connectors here --&gt;&#0010;  &lt;!--outputconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/--&gt;"/>
+    </target>
+
+    <target name="general-add-output-connector-proprietary-non-commented" depends="general-connector-proprietary-runnable-check" if="is-proprietary-runnable">
+        <replace file="${mcf-dist}/connectors-proprietary.xml" token="&lt;!-- Add your output connectors here --&gt;" value="&lt;!-- Add your output connectors here --&gt;&#0010;  &lt;outputconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/&gt;"/>
+    </target>
+
+    <target name="general-add-output-connector" depends="general-add-output-connector-commented,general-add-output-connector-non-commented,general-add-output-connector-proprietary-commented,general-add-output-connector-proprietary-non-commented">
+    </target>
+
+    <target name="general-add-repository-connector-commented" depends="general-connector-runnable-check" unless="is-runnable">
+        <replace file="${mcf-dist}/connectors.xml" token="&lt;!-- Add your repository connectors here --&gt;" value="&lt;!-- Add your repository connectors here --&gt;&#0010;  &lt;!--repositoryconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/--&gt;"/>
+    </target>
+
+    <target name="general-add-repository-connector-non-commented" depends="general-connector-runnable-check" if="is-runnable">
+        <replace file="${mcf-dist}/connectors.xml" token="&lt;!-- Add your repository connectors here --&gt;" value="&lt;!-- Add your repository connectors here --&gt;&#0010;  &lt;repositoryconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/&gt;"/>
+    </target>
+
+    <target name="general-add-repository-connector-proprietary-commented" depends="general-connector-proprietary-runnable-check" unless="is-proprietary-runnable">
+        <replace file="${mcf-dist}/connectors-proprietary.xml" token="&lt;!-- Add your repository connectors here --&gt;" value="&lt;!-- Add your repository connectors here --&gt;&#0010;  &lt;!--repositoryconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/--&gt;"/>
+    </target>
+
+    <target name="general-add-repository-connector-proprietary-non-commented" depends="general-connector-proprietary-runnable-check" if="is-proprietary-runnable">
+        <replace file="${mcf-dist}/connectors-proprietary.xml" token="&lt;!-- Add your repository connectors here --&gt;" value="&lt;!-- Add your repository connectors here --&gt;&#0010;  &lt;repositoryconnector name=&quot;${connector-label}&quot; class=&quot;${connector-class}&quot;/&gt;"/>
+    </target>
+
+    <target name="general-add-repository-connector" depends="general-add-repository-connector-commented,general-add-repository-connector-non-commented,general-add-repository-connector-proprietary-commented,general-add-repository-connector-proprietary-non-commented">
+    </target>
+    
+    <!-- Main targets -->
+
+    <target name="download-dependencies"/>
+
+    <target name="download-cleanup"/>
+    
+    <target name="deliver-connector" depends="general-connector-delivery"/>
+    
+    <target name="deliver-connector-doc" depends="general-connector-doc-delivery"/>
+
+    <target name="build" depends="lib,lib-proprietary-instructions,lib-proprietary-README,server-process,registry-process,integration"/>
+    
+    <target name="build-tests" depends="build,compile-tests"/>
+
+    <target name="run-IT-derby" depends="compile-tests,pretest-check" if="canTest">
+        <mkdir dir="test-derby-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-derby-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <jvmarg value="-DcrawlerWarPath=${mcf-dist}/web/war/mcf-crawler-ui.war"/>
+            <jvmarg value="-DauthorityserviceWarPath=${mcf-dist}/web/war/mcf-authority-service.war"/>
+            <jvmarg value="-DapiWarPath=${mcf-dist}/web/war/mcf-api-service.war"/>
+            <jvmarg value="-DcombinedWarPath=${mcf-dist}/web/war/mcf-combined-service.war"/>
+            <classpath>
+                <fileset dir="${env.JAVA_HOME}/lib">
+                    <include name="tools.jar"/>
+                </fileset>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-derby-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*DerbyIT.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+    
+    <target name="run-IT-postgresql" depends="compile-tests,pretest-check" if="canTest">
+        <mkdir dir="test-postgresql-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-postgresql-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <jvmarg value="-DcrawlerWarPath=${mcf-dist}/web/war/mcf-crawler-ui.war"/>
+            <jvmarg value="-DauthorityserviceWarPath=${mcf-dist}/web/war/mcf-authority-service.war"/>
+            <jvmarg value="-DapiWarPath=${mcf-dist}/web/war/mcf-api-service.war"/>
+            <jvmarg value="-DcombinedWarPath=${mcf-dist}/web/war/mcf-combined-service.war"/>
+            <classpath>
+                <fileset dir="${env.JAVA_HOME}/lib">
+                    <include name="tools.jar"/>
+                </fileset>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-postgresql-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*PostgresqlIT.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+    
+    <target name="run-IT-HSQLDB" depends="compile-tests,pretest-check" if="canTest">
+        <mkdir dir="test-HSQLDB-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-HSQLDB-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <jvmarg value="-DcrawlerWarPath=${mcf-dist}/web/war/mcf-crawler-ui.war"/>
+            <jvmarg value="-DauthorityserviceWarPath=${mcf-dist}/web/war/mcf-authority-service.war"/>
+            <jvmarg value="-DapiWarPath=${mcf-dist}/web/war/mcf-api-service.war"/>
+            <jvmarg value="-DcombinedWarPath=${mcf-dist}/web/war/mcf-combined-service.war"/>
+            <classpath>
+                <fileset dir="${env.JAVA_HOME}/lib">
+                    <include name="tools.jar"/>
+                </fileset>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-HSQLDB-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*HSQLDBIT.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+    
+    <target name="run-IT-HSQLDBext" depends="compile-tests,pretest-check" if="canTest">
+        <mkdir dir="test-HSQLDBext-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-HSQLDBext-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <jvmarg value="-DcrawlerWarPath=${mcf-dist}/web/war/mcf-crawler-ui.war"/>
+            <jvmarg value="-DauthorityserviceWarPath=${mcf-dist}/web/war/mcf-authority-service.war"/>
+            <jvmarg value="-DapiWarPath=${mcf-dist}/web/war/mcf-api-service.war"/>
+            <jvmarg value="-DcombinedWarPath=${mcf-dist}/web/war/mcf-combined-service.war"/>
+            <classpath>
+                <fileset dir="${env.JAVA_HOME}/lib">
+                    <include name="tools.jar"/>
+                </fileset>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-HSQLDBext-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*HSQLDBextIT.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+    
+    <target name="run-IT-mysql" depends="compile-tests,pretest-check" if="canTest">
+        <mkdir dir="test-mysql-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-mysql-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <jvmarg value="-DcrawlerWarPath=${mcf-dist}/web-proprietary/war/mcf-crawler-ui.war"/>
+            <jvmarg value="-DauthorityserviceWarPath=${mcf-dist}/web-proprietary/war/mcf-authority-service.war"/>
+            <jvmarg value="-DapiWarPath=${mcf-dist}/web-proprietary/war/mcf-api-service.war"/>
+            <jvmarg value="-DcombinedWarPath=${mcf-dist}/web-proprietary/war/mcf-combined-service.war"/>
+            <classpath>
+                <fileset dir="${env.JAVA_HOME}/lib">
+                    <include name="tools.jar"/>
+                </fileset>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-mysql-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*MySQLIT.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+    
+    <target name="run-LT-derby" depends="compile-tests,pretest-check" if="canTest">
+        <mkdir dir="test-derby-output"/>
+        <junit fork="true" maxmemory="384m" dir="test-derby-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <jvmarg value="-DcrawlerWarPath=${mcf-dist}/web/war/mcf-crawler-ui.war"/>
+            <jvmarg value="-DauthorityserviceWarPath=${mcf-dist}/web/war/mcf-authority-service.war"/>
+            <jvmarg value="-DapiWarPath=${mcf-dist}/web/war/mcf-api-service.war"/>
+            <jvmarg value="-DcombinedWarPath=${mcf-dist}/web/war/mcf-combined-service.war"/>
+            <classpath>
+                <fileset dir="${env.JAVA_HOME}/lib">
+                    <include name="tools.jar"/>
+                </fileset>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-derby-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*DerbyLT.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+    
+    <target name="run-LT-postgresql" depends="compile-tests,pretest-check" if="canTest">
+        <mkdir dir="test-postgresql-output"/>
+        <junit fork="true" maxmemory="384m" dir="test-postgresql-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <jvmarg value="-DcrawlerWarPath=${mcf-dist}/web/war/mcf-crawler-ui.war"/>
+            <jvmarg value="-DauthorityserviceWarPath=${mcf-dist}/web/war/mcf-authority-service.war"/>
+            <jvmarg value="-DapiWarPath=${mcf-dist}/web/war/mcf-api-service.war"/>
+            <jvmarg value="-DcombinedWarPath=${mcf-dist}/web/war/mcf-combined-service.war"/>
+            <classpath>
+                <fileset dir="${env.JAVA_HOME}/lib">
+                    <include name="tools.jar"/>
+                </fileset>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-postgresql-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*PostgresqlLT.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+    
+    <target name="run-LT-HSQLDB" depends="compile-tests,pretest-check" if="canTest">
+        <mkdir dir="test-HSQLDB-output"/>
+        <junit fork="true" maxmemory="384m" dir="test-HSQLDB-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <jvmarg value="-DcrawlerWarPath=${mcf-dist}/web/war/mcf-crawler-ui.war"/>
+            <jvmarg value="-DauthorityserviceWarPath=${mcf-dist}/web/war/mcf-authority-service.war"/>
+            <jvmarg value="-DapiWarPath=${mcf-dist}/web/war/mcf-api-service.war"/>
+            <jvmarg value="-DcombinedWarPath=${mcf-dist}/web/war/mcf-combined-service.war"/>
+            <classpath>
+                <fileset dir="${env.JAVA_HOME}/lib">
+                    <include name="tools.jar"/>
+                </fileset>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-HSQLDB-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*HSQLDBLT.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+    
+    <target name="run-LT-HSQLDBext" depends="compile-tests,pretest-check" if="canTest">
+        <mkdir dir="test-HSQLDBext-output"/>
+        <junit fork="true" maxmemory="384m" dir="test-HSQLDBext-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <jvmarg value="-DcrawlerWarPath=${mcf-dist}/web/war/mcf-crawler-ui.war"/>
+            <jvmarg value="-DauthorityserviceWarPath=${mcf-dist}/web/war/mcf-authority-service.war"/>
+            <jvmarg value="-DapiWarPath=${mcf-dist}/web/war/mcf-api-service.war"/>
+            <jvmarg value="-DcombinedWarPath=${mcf-dist}/web/war/mcf-combined-service.war"/>
+            <classpath>
+                <fileset dir="${env.JAVA_HOME}/lib">
+                    <include name="tools.jar"/>
+                </fileset>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-HSQLDBext-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*HSQLDBextLT.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+    
+    <target name="run-LT-mysql" depends="compile-tests,pretest-check" if="canTest">
+        <mkdir dir="test-mysql-output"/>
+        <junit fork="true" maxmemory="384m" dir="test-mysql-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <jvmarg value="-DcrawlerWarPath=${mcf-dist}/web-proprietary/war/mcf-crawler-ui.war"/>
+            <jvmarg value="-DauthorityserviceWarPath=${mcf-dist}/web-proprietary/war/mcf-authority-service.war"/>
+            <jvmarg value="-DapiWarPath=${mcf-dist}/web-proprietary/war/mcf-api-service.war"/>
+            <jvmarg value="-DcombinedWarPath=${mcf-dist}/web-proprietary/war/mcf-combined-service.war"/>
+            <classpath>
+                <fileset dir="${env.JAVA_HOME}/lib">
+                    <include name="tools.jar"/>
+                </fileset>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-mysql-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*MySQLLT.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+    
+    <target name="run-UI-derby" depends="compile-tests,pretest-check" if="canTest">
+        <mkdir dir="test-derby-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-derby-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <jvmarg value="-DcrawlerWarPath=${mcf-dist}/web/war/mcf-crawler-ui.war"/>
+            <jvmarg value="-DauthorityserviceWarPath=${mcf-dist}/web/war/mcf-authority-service.war"/>
+            <jvmarg value="-DapiWarPath=${mcf-dist}/web/war/mcf-api-service.war"/>
+            <jvmarg value="-DcombinedWarPath=${mcf-dist}/web/war/mcf-combined-service.war"/>
+            <classpath>
+                <fileset dir="${env.JAVA_HOME}/lib">
+                    <include name="tools.jar"/>
+                </fileset>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-derby-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*DerbyUI.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+    
+    <target name="run-UI-postgresql" depends="compile-tests,pretest-check" if="canTest">
+        <mkdir dir="test-postgresql-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-postgresql-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <jvmarg value="-DcrawlerWarPath=${mcf-dist}/web/war/mcf-crawler-ui.war"/>
+            <jvmarg value="-DauthorityserviceWarPath=${mcf-dist}/web/war/mcf-authority-service.war"/>
+            <jvmarg value="-DapiWarPath=${mcf-dist}/web/war/mcf-api-service.war"/>
+            <jvmarg value="-DcombinedWarPath=${mcf-dist}/web/war/mcf-combined-service.war"/>
+            <classpath>
+                <fileset dir="${env.JAVA_HOME}/lib">
+                    <include name="tools.jar"/>
+                </fileset>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-postgresql-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*PostgresqlUI.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+
+    <target name="run-UI-HSQLDB" depends="compile-tests,pretest-check" if="canTest">
+        <mkdir dir="test-HSQLDB-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-HSQLDB-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <jvmarg value="-DcrawlerWarPath=${mcf-dist}/web/war/mcf-crawler-ui.war"/>
+            <jvmarg value="-DauthorityserviceWarPath=${mcf-dist}/web/war/mcf-authority-service.war"/>
+            <jvmarg value="-DapiWarPath=${mcf-dist}/web/war/mcf-api-service.war"/>
+            <jvmarg value="-DcombinedWarPath=${mcf-dist}/web/war/mcf-combined-service.war"/>
+            <classpath>
+                <fileset dir="${env.JAVA_HOME}/lib">
+                    <include name="tools.jar"/>
+                </fileset>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-HSQLDB-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*HSQLDBUI.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+    
+    <target name="run-UI-HSQLDBext" depends="compile-tests,pretest-check" if="canTest">
+        <mkdir dir="test-HSQLDBext-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-HSQLDBext-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <jvmarg value="-DcrawlerWarPath=${mcf-dist}/web/war/mcf-crawler-ui.war"/>
+            <jvmarg value="-DauthorityserviceWarPath=${mcf-dist}/web/war/mcf-authority-service.war"/>
+            <jvmarg value="-DapiWarPath=${mcf-dist}/web/war/mcf-api-service.war"/>
+            <jvmarg value="-DcombinedWarPath=${mcf-dist}/web/war/mcf-combined-service.war"/>
+            <classpath>
+                <fileset dir="${env.JAVA_HOME}/lib">
+                    <include name="tools.jar"/>
+                </fileset>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-HSQLDBext-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*HSQLDBextUI.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+    
+    <target name="run-UI-mysql" depends="compile-tests,pretest-check" if="canTest">
+        <mkdir dir="test-mysql-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-mysql-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <jvmarg value="-DcrawlerWarPath=${mcf-dist}/web-proprietary/war/mcf-crawler-ui.war"/>
+            <jvmarg value="-DauthorityserviceWarPath=${mcf-dist}/web-proprietary/war/mcf-authority-service.war"/>
+            <jvmarg value="-DapiWarPath=${mcf-dist}/web-proprietary/war/mcf-api-service.war"/>
+            <jvmarg value="-DcombinedWarPath=${mcf-dist}/web-proprietary/war/mcf-combined-service.war"/>
+            <classpath>
+                <fileset dir="${env.JAVA_HOME}/lib">
+                    <include name="tools.jar"/>
+                </fileset>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-mysql-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*MySQLUI.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+
+    <target name="run-tests" depends="compile-tests,has-tests-check" if="hasTests">
+        <mkdir dir="test-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <classpath>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*Test.class"/>
+                    <exclude name="**/*DerbyTest.class"/>
+                    <exclude name="**/*PostgresqlTest.class"/>
+                    <exclude name="**/*MySQLTest.class"/>
+                    <exclude name="**/*HSQLDBTest.class"/>
+                    <exclude name="**/*HSQLDBextTest.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+
+    <target name="run-tests-derby" depends="compile-tests,has-tests-check" if="hasTests">
+        <mkdir dir="test-derby-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-derby-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
+            <classpath>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <formatter type="brief" usefile="false"/>
+            <batchtest todir="test-derby-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*DerbyTest.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+    
+    <target name="run-tests-postgresql" depends="compile-tests,has-tests-check" if="hasTests">
+        <mkdir dir="test-postgresql-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-postgresql-output" showoutput="true" haltonfailure="true">
+            <classpath>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <batchtest todir="test-postgresql-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*PostgresqlTest.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+
+    <target name="run-tests-mysql" depends="compile-tests,has-tests-check" if="hasTests">
+        <mkdir dir="test-mysql-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-mysql-output" showoutput="true" haltonfailure="true">
+            <classpath>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <batchtest todir="test-mysql-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*MySQLTest.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+
+    <target name="run-tests-HSQLDB" depends="compile-tests,has-tests-check" if="hasTests">
+        <mkdir dir="test-HSQLDB-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-HSQLDB-output" showoutput="true" haltonfailure="true">
+            <classpath>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <batchtest todir="test-HSQLDB-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*HSQLDBTest.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+
+    <target name="run-tests-HSQLDBext" depends="compile-tests,has-tests-check" if="hasTests">
+        <mkdir dir="test-HSQLDBext-output"/>
+        <junit fork="true" maxmemory="128m" dir="test-HSQLDBext-output" showoutput="true" haltonfailure="true">
+            <classpath>
+                <path refid="connector-test-classpath"/>
+                <pathelement location="build/connector-tests/classes"/>
+            </classpath>
+            <batchtest todir="test-HSQLDBext-output">
+                <fileset dir="build/connector-tests/classes">
+                    <include name="**/*HSQLDBextTest.class"/>
+                </fileset>
+            </batchtest>
+        </junit>
+    </target>
+
+    <target name="all" depends="build,doc,build-tests,run-tests,run-tests-derby,run-tests-HSQLDB"/>
+
+</project>
diff --git a/framework/core/pom.xml b/framework/core/pom.xml
index 6a6af6d..5d7b44e 100644
--- a/framework/core/pom.xml
+++ b/framework/core/pom.xml
@@ -93,6 +93,17 @@
       <version>${zookeeper.version}</version>
     </dependency>
     <dependency>
+      <groupId>org.apache.axis</groupId>
+      <artifactId>axis</artifactId>
+      <version>1.4</version>
+    </dependency>
+    <dependency>
+      <groupId>wsdl4j</groupId>
+      <artifactId>wsdl4j</artifactId>
+      <version>1.6.2</version>
+    </dependency>
+
+    <dependency>
       <groupId>postgresql</groupId>
       <artifactId>postgresql</artifactId>
       <version>${postgresql.version}</version>
diff --git a/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/sharepoint/CommonsHTTPSender.java b/framework/core/src/main/java/org/apache/manifoldcf/core/common/CommonsHTTPSender.java
similarity index 99%
rename from connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/sharepoint/CommonsHTTPSender.java
rename to framework/core/src/main/java/org/apache/manifoldcf/core/common/CommonsHTTPSender.java
index c5f588c..8017b4f 100644
--- a/connectors/sharepoint/connector/src/main/java/org/apache/manifoldcf/sharepoint/CommonsHTTPSender.java
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/common/CommonsHTTPSender.java
@@ -13,9 +13,9 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
-* $Id: CommonsHTTPSender.java 988245 2010-08-23 18:39:35Z kwright $
+* $Id$
 */
-package org.apache.manifoldcf.sharepoint;
+package org.apache.manifoldcf.core.common;
 
 import org.apache.manifoldcf.core.common.XThreadInputStream;
 
diff --git a/framework/core/src/main/java/org/apache/manifoldcf/core/connectorpool/ConnectorPool.java b/framework/core/src/main/java/org/apache/manifoldcf/core/connectorpool/ConnectorPool.java
index 8ec825a..e19650b 100644
--- a/framework/core/src/main/java/org/apache/manifoldcf/core/connectorpool/ConnectorPool.java
+++ b/framework/core/src/main/java/org/apache/manifoldcf/core/connectorpool/ConnectorPool.java
@@ -474,6 +474,8 @@
         if (stack.size() == 0)
         {
           T newrc = createConnectorInstance(threadContext,className);
+          if (newrc == null)
+            return null;
           newrc.connect(configParams);
           stack.add(newrc);
         }
diff --git a/connectors/sharepoint/connector/src/main/resources/org/apache/manifoldcf/sharepoint/sharepoint-client-config.wsdd b/framework/core/src/main/resources/org/apache/manifoldcf/core/common/client-config.wsdd
similarity index 93%
rename from connectors/sharepoint/connector/src/main/resources/org/apache/manifoldcf/sharepoint/sharepoint-client-config.wsdd
rename to framework/core/src/main/resources/org/apache/manifoldcf/core/common/client-config.wsdd
index 0a4c02c..3da1423 100644
--- a/connectors/sharepoint/connector/src/main/resources/org/apache/manifoldcf/sharepoint/sharepoint-client-config.wsdd
+++ b/framework/core/src/main/resources/org/apache/manifoldcf/core/common/client-config.wsdd
@@ -20,7 +20,7 @@
   <globalConfiguration> 
     <parameter name="disablePrettyXML" value="true"/> 
   </globalConfiguration> 
-  <transport name="http" pivot="java:org.apache.manifoldcf.sharepoint.CommonsHTTPSender"> 
+  <transport name="http" pivot="java:org.apache.manifoldcf.core.common.CommonsHTTPSender"> 
     <parameter name="SO_TIMEOUT" locked="false">60000</parameter>
   </transport>
   <!-- transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/ --> 
diff --git a/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/ManifoldCFInstance.java b/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/ManifoldCFInstance.java
index 91e9ee7..01acb7f 100644
--- a/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/ManifoldCFInstance.java
+++ b/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/ManifoldCFInstance.java
@@ -26,6 +26,7 @@
 
 import java.io.*;
 import java.util.*;
+import java.nio.charset.Charset;
 import org.junit.*;
 
 import org.eclipse.jetty.server.Handler;
@@ -34,7 +35,16 @@
 import org.eclipse.jetty.server.Connector;
 import org.eclipse.jetty.webapp.WebAppContext;
 
+import org.apache.http.conn.HttpClientConnectionManager;
 import org.apache.http.client.HttpClient;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.protocol.HttpRequestExecutor;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.config.SocketConfig;
 import org.apache.http.HttpStatus;
 import org.apache.http.HttpException;
 import org.apache.http.client.methods.HttpGet;
@@ -44,14 +54,11 @@
 import org.apache.http.conn.ConnectTimeoutException;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpEntity;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.CoreConnectionPNames;
 import org.apache.http.util.EntityUtils;
-import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.impl.client.DefaultRedirectStrategy;
 import org.apache.http.entity.StringEntity;
 import org.apache.http.entity.ContentType;
+import org.apache.http.ParseException;
 
 
 /** Tests that run the "agents daemon" should be derived from this */
@@ -65,6 +72,8 @@
   protected DaemonThread daemonThread = null;
   protected Server server = null;
 
+  protected static final Charset UTF_8 = Charset.forName("UTF-8");
+
   public ManifoldCFInstance()
   {
     this("", 8346, false, true);
@@ -330,9 +339,19 @@
       InputStream is = entity.getContent();
       try
       {
-        String charSet = EntityUtils.getContentCharSet(entity);
-        if (charSet == null)
-          charSet = "utf-8";
+        Charset charSet;
+        try
+        {
+          ContentType ct = ContentType.get(entity);
+          if (ct == null)
+            charSet = UTF_8;
+          else
+            charSet = ct.getCharset();
+        }
+        catch (ParseException e)
+        {
+          charSet = UTF_8;
+        }
         char[] buffer = new char[65536];
         Reader r = new InputStreamReader(is,charSet);
         Writer w = new StringWriter();
@@ -368,7 +387,7 @@
   public String performAPIGetOperation(String apiURL, int expectedResponse)
     throws Exception
   {
-    DefaultHttpClient client = new DefaultHttpClient();
+    HttpClient client = HttpClients.createDefault();
     HttpGet method = new HttpGet(apiURL);
     try
     {
@@ -393,7 +412,7 @@
   public String performAPIDeleteOperation(String apiURL, int expectedResponse)
     throws Exception
   {
-    DefaultHttpClient client = new DefaultHttpClient();
+    HttpClient client = HttpClients.createDefault();
     HttpDelete method = new HttpDelete(apiURL);
     try
     {
@@ -420,7 +439,7 @@
   public String performAPIPutOperation(String apiURL, int expectedResponse, String input)
     throws Exception
   {
-    DefaultHttpClient client = new DefaultHttpClient();
+    HttpClient client = HttpClients.createDefault();
     HttpPut method = new HttpPut(apiURL);
     try
     {
@@ -448,7 +467,7 @@
   public String performAPIPostOperation(String apiURL, int expectedResponse, String input)
     throws Exception
   {
-    DefaultHttpClient client = new DefaultHttpClient();
+    HttpClient client = HttpClients.createDefault();
     HttpPost method = new HttpPost(apiURL);
     try
     {
diff --git a/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/SchedulerHSQLDBTest.java b/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/SchedulerHSQLDBTest.java
index dd08710..c66c8e3 100644
--- a/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/SchedulerHSQLDBTest.java
+++ b/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/SchedulerHSQLDBTest.java
@@ -57,7 +57,7 @@
   @Override
   protected String[] getOutputClasses()
   {
-    return new String[]{"org.apache.manifoldcf.crawler.tests.NullOutputConnector"};
+    return new String[]{"org.apache.manifoldcf.agents.tests.TestingOutputConnector"};
   }
   
   @Override
diff --git a/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/SchedulerTester.java b/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/SchedulerTester.java
index 87d8d79..ea9c0ca 100644
--- a/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/SchedulerTester.java
+++ b/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/SchedulerTester.java
@@ -62,7 +62,7 @@
     IOutputConnection outputConn = outputMgr.create();
     outputConn.setName("Null Connection");
     outputConn.setDescription("Null Connection");
-    outputConn.setClassName("org.apache.manifoldcf.crawler.tests.NullOutputConnector");
+    outputConn.setClassName("org.apache.manifoldcf.agents.tests.TestingOutputConnector");
     outputConn.setMaxConnections(100);
     // Now, save
     outputMgr.save(outputConn);
diff --git a/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/TestingRepositoryConnector.java b/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/TestingRepositoryConnector.java
new file mode 100644
index 0000000..a1c54bc
--- /dev/null
+++ b/framework/pull-agent/src/test/java/org/apache/manifoldcf/crawler/tests/TestingRepositoryConnector.java
@@ -0,0 +1,92 @@
+/* $Id$ */
+
+/**
+* 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.
+*/
+package org.apache.manifoldcf.crawler.tests;
+
+import org.apache.manifoldcf.core.interfaces.*;
+import org.apache.manifoldcf.agents.interfaces.*;
+import org.apache.manifoldcf.crawler.interfaces.*;
+import org.apache.manifoldcf.crawler.system.ManifoldCF;
+
+import java.io.*;
+import java.util.*;
+import java.nio.charset.Charset;
+
+/** Connector class to be used by general integration tests that need documents */
+public class TestingRepositoryConnector extends org.apache.manifoldcf.crawler.connectors.BaseRepositoryConnector
+{
+  private final static Charset UTF_8 = Charset.forName("UTF-8");
+  
+  public TestingRepositoryConnector()
+  {
+  }
+
+  @Override
+  public void addSeedDocuments(ISeedingActivity activities, DocumentSpecification spec,
+    long startTime, long endTime, int jobMode)
+    throws ManifoldCFException, ServiceInterruption
+  {
+    String docCount = "3";
+    for (int i = 0; i < spec.getChildCount(); i++)
+    {
+      SpecificationNode sn = spec.getChild(i);
+      if (sn.getType().equals("documentcount"))
+        docCount = sn.getAttributeValue("count");
+    }
+    int count = Integer.parseInt(docCount);
+    
+    for (int i = 0; i < count; i++)
+    {
+      String doc = "test"+i+".txt";
+      activities.addSeedDocument(doc,null);
+    }
+  }
+  
+  @Override
+  public String[] getDocumentVersions(String[] documentIdentifiers, String[] oldVersions, IVersionActivity activities,
+    DocumentSpecification spec, int jobMode, boolean usesDefaultAuthority)
+    throws ManifoldCFException, ServiceInterruption
+  {
+    String[] rval = new String[documentIdentifiers.length];
+    for (int i = 0; i < rval.length; i++)
+    {
+      rval[i] = "";
+    }
+    return rval;
+  }
+
+  @Override
+  public void processDocuments(String[] documentIdentifiers, String[] versions, IProcessActivity activities,
+    DocumentSpecification spec, boolean[] scanOnly, int jobMode)
+    throws ManifoldCFException, ServiceInterruption
+  {
+    for (int i = 0; i < documentIdentifiers.length; i++)
+    {
+      String documentIdentifier = documentIdentifiers[i];
+      String version = versions[i];
+      if (!scanOnly[i])
+      {
+        RepositoryDocument rd = new RepositoryDocument();
+        byte[] bytes = documentIdentifier.getBytes(UTF_8);
+        rd.setBinary(new ByteArrayInputStream(bytes),bytes.length);
+        activities.ingestDocument(documentIdentifier,version,"http://"+documentIdentifier,rd);
+      }
+    }
+  }
+
+}
diff --git a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/DELETECommand.java b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/DELETECommand.java
index 246fecb..87d009d 100644
--- a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/DELETECommand.java
+++ b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/DELETECommand.java
@@ -25,12 +25,7 @@
 import org.apache.http.client.methods.HttpDelete;
 import org.apache.http.conn.ConnectTimeoutException;
 import org.apache.http.HttpResponse;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.CoreConnectionPNames;
 import org.apache.http.util.EntityUtils;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.client.DefaultRedirectStrategy;
 import java.io.*;
 
 /** DELETE command.  This performs a REST-style DELETE operation, designed to work
diff --git a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/GETCommand.java b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/GETCommand.java
index 5d72de8..e0973c3 100644
--- a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/GETCommand.java
+++ b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/GETCommand.java
@@ -25,12 +25,7 @@
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.conn.ConnectTimeoutException;
 import org.apache.http.HttpResponse;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.CoreConnectionPNames;
 import org.apache.http.util.EntityUtils;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.client.DefaultRedirectStrategy;
 import java.io.*;
 
 /** GET command.  This performs a REST-style GET operation, designed to work
diff --git a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/POSTCommand.java b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/POSTCommand.java
index 1ba512e..0b3c0d4 100644
--- a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/POSTCommand.java
+++ b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/POSTCommand.java
@@ -27,12 +27,7 @@
 import org.apache.http.client.methods.HttpPost;
 import org.apache.http.conn.ConnectTimeoutException;
 import org.apache.http.HttpResponse;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.CoreConnectionPNames;
 import org.apache.http.util.EntityUtils;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.client.DefaultRedirectStrategy;
 import java.io.*;
 
 /** POST command.  This performs a REST-style POST operation, designed to work
diff --git a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/PUTCommand.java b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/PUTCommand.java
index 0d9cd65..6c36fc9 100644
--- a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/PUTCommand.java
+++ b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/PUTCommand.java
@@ -27,12 +27,7 @@
 import org.apache.http.client.methods.HttpPut;
 import org.apache.http.conn.ConnectTimeoutException;
 import org.apache.http.HttpResponse;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.CoreConnectionPNames;
 import org.apache.http.util.EntityUtils;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.impl.client.DefaultRedirectStrategy;
 import java.io.*;
 
 /** PUT command.  This performs a REST-style PUT operation, designed to work
diff --git a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/ScriptParser.java b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/ScriptParser.java
index 0000112..000d3d7 100644
--- a/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/ScriptParser.java
+++ b/framework/script-engine/src/main/java/org/apache/manifoldcf/scriptengine/ScriptParser.java
@@ -20,20 +20,23 @@
 package org.apache.manifoldcf.scriptengine;
 
 import org.apache.http.client.HttpClient;
+import org.apache.http.conn.HttpClientConnectionManager;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.protocol.HttpRequestExecutor;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.config.SocketConfig;
 import org.apache.http.HttpStatus;
 import org.apache.http.HttpException;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.conn.ConnectTimeoutException;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpEntity;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.params.HttpParams;
-import org.apache.http.params.CoreConnectionPNames;
 import org.apache.http.util.EntityUtils;
-import org.apache.http.impl.client.DefaultHttpClient;
 import org.apache.http.impl.client.DefaultRedirectStrategy;
-import org.apache.http.conn.ClientConnectionManager;
-import org.apache.http.impl.conn.PoolingClientConnectionManager;
 import org.apache.http.entity.ContentType;
 import org.apache.http.ParseException;
 import java.util.*;
@@ -45,7 +48,7 @@
 public class ScriptParser
 {
   /** The connection manager. */
-  protected ClientConnectionManager connectionManager = null;
+  protected HttpClientConnectionManager connectionManager = null;
   
   /** The client instance */
   protected HttpClient httpClient = null;
@@ -1215,14 +1218,36 @@
     {
       if (httpClient == null)
       {
-        connectionManager = new PoolingClientConnectionManager();
-        BasicHttpParams params = new BasicHttpParams();
-        params.setBooleanParameter(CoreConnectionPNames.TCP_NODELAY,true);
-        params.setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK,false);
-        //params.setIntParameter(CoreConnectionPNames.SO_TIMEOUT,socketTimeOut);
-        DefaultHttpClient localHttpClient = new DefaultHttpClient(connectionManager,params);
-        localHttpClient.setRedirectStrategy(new DefaultRedirectStrategy());
-        httpClient = localHttpClient;
+        int socketTimeout = 900000;
+        int connectionTimeout = 300000;
+
+        connectionManager = new PoolingHttpClientConnectionManager();
+        
+        CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
+
+        RequestConfig.Builder requestBuilder = RequestConfig.custom()
+          .setCircularRedirectsAllowed(true)
+          .setSocketTimeout(socketTimeout)
+          .setStaleConnectionCheckEnabled(false)
+          .setExpectContinueEnabled(true)
+          .setConnectTimeout(connectionTimeout)
+          .setConnectionRequestTimeout(socketTimeout);
+
+        httpClient = HttpClients.custom()
+          .setConnectionManager(connectionManager)
+          .setMaxConnTotal(1)
+          .disableAutomaticRetries()
+          .setDefaultRequestConfig(requestBuilder.build())
+          .setDefaultSocketConfig(SocketConfig.custom()
+            .setTcpNoDelay(true)
+            .setSoTimeout(socketTimeout)
+            .build())
+          .setDefaultCredentialsProvider(credentialsProvider)
+          //.setSSLSocketFactory(myFactory)
+          .setRequestExecutor(new HttpRequestExecutor(socketTimeout))
+          .setRedirectStrategy(new DefaultRedirectStrategy())
+          .build();
+
       }
     }
     return httpClient;
diff --git a/pom.xml b/pom.xml
index aa3e2f8..82dc772 100644
--- a/pom.xml
+++ b/pom.xml
@@ -73,9 +73,8 @@
 
   <modules>
     <module>framework</module>
-    <module>connectors</module>
     <module>test-materials</module>
-    <module>tests</module>
+    <module>connectors</module>
     <module>framework/jetty-runner</module>
   </modules>
 
diff --git a/tests/activedirectory/build.xml b/tests/activedirectory/build.xml
deleted file mode 100644
index e471565..0000000
--- a/tests/activedirectory/build.xml
+++ /dev/null
@@ -1,22 +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.
--->
-
-<project name="activedirectory" default="all">
-
-    <import file="../test-build.xml"/>
-    
-</project>
diff --git a/tests/alfresco/build.xml b/tests/alfresco/build.xml
deleted file mode 100644
index 7b93cae..0000000
--- a/tests/alfresco/build.xml
+++ /dev/null
@@ -1,65 +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.
--->
-
-<project name="alfresco" default="all">
-
-    <import file="../ino-test-build.xml"/>
-
-    <path id="test-classpath">
-        <path refid="mcf-ino-test-build.test-classpath"/>
-        <fileset dir="../../lib">
-            <include name="h2*.jar"/>
-            <include name="axis*.jar"/>	
-            <include name="saaj*.jar"/>	
-            <include name="commons-discovery*.jar"/>
-            <include name="jaxrpc*.jar"/>
-            <include name="opensaml*.jar"/>
-            <include name="wsdl4j*.jar"/>
-            <include name="wss4j*.jar"/>
-            <!--include name="xalan*.jar"/-->
-            <!--include name="xercesImpl*.jar"/-->
-            <include name="xmlsec*.jar"/>
-        </fileset>
-        <fileset dir="../../connectors/alfresco/dist/lib-proprietary-only">
-            <include name="*.jar"/>
-        </fileset>
-    </path>
-
-    <target name="run-derby" depends="compile-tests">
-        <mkdir dir="test-derby-output"/>
-        <junit fork="true" dir="test-derby-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war/mcf-api-service.war"/>
-            <jvmarg value="-DalfrescoServerWarPath=../../../connectors/alfresco/build/alfresco-4-war/alfresco.war"/>
-            <jvmarg value="-Xms512m"/>
-            <jvmarg value="-Xmx1024m"/>
-            <jvmarg value="-Xss1024k"/>
-            <jvmarg value="-XX:MaxPermSize=256m"/>
-            <jvmarg value="-XX:NewSize=256m"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-              
-            <test name="org.apache.manifoldcf.alfresco_tests.APISanityIT" todir="test-derby-output"/>
-        	
-        </junit>
-    </target>
-
-</project>
diff --git a/tests/alfresco/pom.xml b/tests/alfresco/pom.xml
deleted file mode 100644
index d2c4111..0000000
--- a/tests/alfresco/pom.xml
+++ /dev/null
@@ -1,339 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <parent>
-    <groupId>org.apache.manifoldcf</groupId>
-    <artifactId>mcf-tests</artifactId>
-    <version>1.6-SNAPSHOT</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  
-  <developers>
-    <developer>
-      <name>Piergiorgio Lucidi</name>
-      <organization>Sourcesense</organization>
-      <organizationUrl>http://www.sourcesense.com</organizationUrl>
-      <url>http://www.open4dev.com</url>
-    </developer>
-  </developers>
-  
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-  </properties>
-  
-  <artifactId>mcf-alfresco-test</artifactId>
-  <name>ManifoldCF - Test - Alfresco</name>
-  
-  <build>
-    <defaultGoal>integration-test</defaultGoal>
-    <outputDirectory>target/test-classes</outputDirectory>
-    <plugins>
-      <plugin>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-           <execution>
-            <id>copy-war</id>
-            <phase>generate-resources</phase>
-            <goals>
-              <goal>copy</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>target/dependency</outputDirectory>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>alfresco-4-war</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                  <destFileName>alfresco.war</destFileName>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-api-service</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                  <destFileName>mcf-api-service.war</destFileName>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-authority-service</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                  <destFileName>mcf-authority-service.war</destFileName>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-crawler-ui</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                  <destFileName>mcf-crawler-ui.war</destFileName>
-                </artifactItem>
-              </artifactItems>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-failsafe-plugin</artifactId>
-        <version>2.12</version>
-        <configuration>
-          <skipTests>${skipITs}</skipTests>
-          <systemPropertyVariables>
-            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
-            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
-            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
-            <alfrescoServerWarPath>../dependency/alfresco.war</alfrescoServerWarPath>
-          </systemPropertyVariables>
-          <excludes>
-            <exclude>**/*Postgresql*.java</exclude>
-            <exclude>**/*MySQL*.java</exclude>
-          </excludes>
-          <forkMode>always</forkMode>
-          <workingDirectory>target/test-output</workingDirectory>
-        <argLine>-Xms512m -Xmx1024m -Xss1024k -XX:MaxPermSize=256m -XX:NewSize=256m</argLine>
-        </configuration>
-        <executions>
-          <execution>
-            <id>integration-test</id>
-            <goals>
-              <goal>integration-test</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>verify</id>
-            <goals>
-              <goal>verify</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-  <dependencies>
-    <!-- Internal dependencies -->
-    <dependency>
-        <groupId>com.h2database</groupId>
-        <artifactId>h2</artifactId>
-        <version>1.3.158</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-alfresco-connector</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-api-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-authority-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-crawler-ui</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-jettyrunner</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-agents</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-pull-agent</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-cmis-connector</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-nulloutput-connector</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-server</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-util</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-plus</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-webapp</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-servlet</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-http</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-io</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-security</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-continuation</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-xml</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-      <version>${slf4j.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-simple</artifactId>
-      <version>${slf4j.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jsp-api-2.1-glassfish</artifactId>
-      <version>${glassfish.version}</version>
-    </dependency>    
-    <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jsp-2.1-glassfish</artifactId>
-      <version>${glassfish.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-core</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-agents</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-pull-agent</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>${junit.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>postgresql</groupId>
-      <artifactId>postgresql</artifactId>
-      <version>${postgresql.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.hsqldb</groupId>
-      <artifactId>hsqldb</artifactId>
-      <version>${hsqldb.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.derby</groupId>
-      <artifactId>derby</artifactId>
-      <version>${derby.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>mysql</groupId>
-      <artifactId>mysql-connector-java</artifactId>
-      <version>${mysql.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>httpclient</artifactId>
-      <version>${httpcomponent.httpclient.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-logging</groupId>
-      <artifactId>commons-logging</artifactId>
-      <version>${commons-logging.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-      <version>${commons-codec.version}</version>
-    </dependency>
-
-  </dependencies>
-</project>
\ No newline at end of file
diff --git a/tests/cmis/build.xml b/tests/cmis/build.xml
deleted file mode 100644
index e38dabe..0000000
--- a/tests/cmis/build.xml
+++ /dev/null
@@ -1,58 +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.
--->
-
-<project name="cmis" default="all">
-
-    <import file="../ino-test-build.xml"/>
-    
-    <target name="run-derby" depends="compile-tests">
-        <mkdir dir="test-derby-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-derby-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war/mcf-api-service.war"/>
-            <jvmarg value="-DopenCmisServerWarPath=../../../lib/chemistry-opencmis-server-inmemory.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-	    
-            <test name="org.apache.manifoldcf.cmis_tests.APISanityIT" todir="test-derby-output"/>
-
-        </junit>
-    </target>
-
-    <target name="run-UI-derby" depends="compile-tests">
-        <mkdir dir="test-derby-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-derby-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war/mcf-api-service.war"/>
-            <jvmarg value="-DopenCmisServerWarPath=../../../lib/chemistry-opencmis-server-inmemory.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-
-            <test name="org.apache.manifoldcf.cmis_tests.NavigationDerbyUI" todir="test-derby-output"/>
-
-        </junit>
-    </target>
-
-</project>
diff --git a/tests/cmis/pom.xml b/tests/cmis/pom.xml
deleted file mode 100644
index 362b589..0000000
--- a/tests/cmis/pom.xml
+++ /dev/null
@@ -1,339 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <parent>
-    <groupId>org.apache.manifoldcf</groupId>
-    <artifactId>mcf-tests</artifactId>
-    <version>1.6-SNAPSHOT</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  
-  <developers>
-    <developer>
-      <name>Piergiorgio Lucidi</name>
-      <organization>Sourcesense</organization>
-      <organizationUrl>http://www.sourcesense.com</organizationUrl>
-      <url>http://www.open4dev.com</url>
-    </developer>
-  </developers>
-  
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-  </properties>
-  
-  <artifactId>mcf-cmis-test</artifactId>
-  <name>ManifoldCF - Test - CMIS</name>
-  
-  <build>
-    <defaultGoal>integration-test</defaultGoal>
-    <plugins>
-      <plugin>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-           <execution>
-            <id>copy-war</id>
-            <phase>generate-resources</phase>
-            <goals>
-              <goal>copy</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>target/dependency</outputDirectory>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>org.apache.chemistry.opencmis</groupId>
-                  <artifactId>chemistry-opencmis-server-inmemory</artifactId>
-                  <version>0.9.0</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                  <destFileName>chemistry-opencmis-server-inmemory.war</destFileName>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-api-service</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                  <destFileName>mcf-api-service.war</destFileName>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-authority-service</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                  <destFileName>mcf-authority-service.war</destFileName>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-crawler-ui</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                  <destFileName>mcf-crawler-ui.war</destFileName>
-                </artifactItem>
-              </artifactItems>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-failsafe-plugin</artifactId>
-        <version>2.12.3</version>
-        <configuration>
-          <skipTests>${skipITs}</skipTests>
-          <systemPropertyVariables>
-            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
-            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
-            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
-            <openCmisServerWarPath>../dependency/chemistry-opencmis-server-inmemory.war</openCmisServerWarPath>
-          </systemPropertyVariables>
-          <excludes>
-            <exclude>**/*Postgresql*.java</exclude>
-            <exclude>**/*MySQL*.java</exclude>
-          </excludes>
-          <forkMode>always</forkMode>
-          <workingDirectory>target/test-output</workingDirectory>
-        </configuration>
-        <executions>
-          <execution>
-            <id>integration-test</id>
-            <goals>
-              <goal>integration-test</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>verify</id>
-            <goals>
-              <goal>verify</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-  <dependencies>
-    <!-- Internal dependencies -->
-    <dependency>
-      <groupId>org.apache.chemistry.opencmis</groupId>
-      <artifactId>chemistry-opencmis-server-inmemory</artifactId>
-      <version>0.9.0</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-api-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-authority-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-crawler-ui</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-jettyrunner</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-agents</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-pull-agent</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-cmis-connector</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-nulloutput-connector</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-server</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-util</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-webapp</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-servlet</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-http</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-io</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-security</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-continuation</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-xml</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-      <version>${slf4j.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-simple</artifactId>
-      <version>${slf4j.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jsp-api-2.1-glassfish</artifactId>
-      <version>${glassfish.version}</version>
-    </dependency>    
-    <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jsp-2.1-glassfish</artifactId>
-      <version>${glassfish.version}</version>
-    </dependency>
-    
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-core</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-agents</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-pull-agent</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>${junit.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>postgresql</groupId>
-      <artifactId>postgresql</artifactId>
-      <version>${postgresql.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.hsqldb</groupId>
-      <artifactId>hsqldb</artifactId>
-      <version>${hsqldb.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.derby</groupId>
-      <artifactId>derby</artifactId>
-      <version>${derby.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>mysql</groupId>
-      <artifactId>mysql-connector-java</artifactId>
-      <version>${mysql.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>httpclient</artifactId>
-      <version>${httpcomponent.httpclient.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-logging</groupId>
-      <artifactId>commons-logging</artifactId>
-      <version>${commons-logging.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-      <version>${commons-codec.version}</version>
-    </dependency>
-
-    <!-- Apache Chemistry dependencies -->
-    <dependency>
-      <groupId>org.apache.chemistry.opencmis</groupId>
-      <artifactId>chemistry-opencmis-client-impl</artifactId>
-      <version>0.9.0</version>
-  </dependency>
-  <dependency>
-      <groupId>commons-lang</groupId>
-      <artifactId>commons-lang</artifactId>
-      <version>2.6</version>
-  </dependency>
-  </dependencies>
-</project>
\ No newline at end of file
diff --git a/tests/elasticsearch/build.xml b/tests/elasticsearch/build.xml
deleted file mode 100644
index 5e2514d..0000000
--- a/tests/elasticsearch/build.xml
+++ /dev/null
@@ -1,65 +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.
--->
-
-<project name="elasticsearch" default="all">
-
-    <import file="../icmis-test-build.xml"/>
-
-    <path id="test-classpath">
-        <path refid="mcf-icmis-test-build.test-classpath"/>
-        <fileset dir="../../connectors/elasticsearch/test-materials-proprietary">
-            <include name="elasticsearch*/lib/*.jar"/>
-        	  <include name="elasticsearch*/plugins/mapper-attachments/*.jar"/>
-        </fileset>
-    </path>
-
-    <target name="run-derby" depends="compile-tests">
-        <mkdir dir="test-derby-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-derby-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war/mcf-api-service.war"/>
-            <jvmarg value="-DopenCmisServerWarPath=../../../lib/chemistry-opencmis-server-inmemory.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-        	  
-        	  <test name="org.apache.manifoldcf.elasticsearch_tests.APISanityDerbyIT" todir="test-derby-output"/>
-        </junit>
-    </target>
-
-    <target name="run-UI-derby" depends="compile-tests">
-        <mkdir dir="test-derby-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-derby-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war/mcf-api-service.war"/>
-            <jvmarg value="-DopenCmisServerWarPath=../../../lib/chemistry-opencmis-server-inmemory.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-
-            <test name="org.apache.manifoldcf.elasticsearch_tests.NavigationDerbyUI" todir="test-derby-output"/>
-
-        </junit>
-    </target>
-
-</project>
diff --git a/tests/elasticsearch/pom.xml b/tests/elasticsearch/pom.xml
deleted file mode 100644
index 906ac90..0000000
--- a/tests/elasticsearch/pom.xml
+++ /dev/null
@@ -1,418 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <parent>
-    <groupId>org.apache.manifoldcf</groupId>
-    <artifactId>mcf-tests</artifactId>
-    <version>1.6-SNAPSHOT</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  
-  <repositories>
-    <repository>
-      <id>sonatype</id>
-      <url>https://oss.sonatype.org/content/repositories/releases</url>
-    </repository>
-  </repositories>
-  
-  <developers>
-    <developer>
-      <name>Piergiorgio Lucidi</name>
-      <organization>Sourcesense</organization>
-      <organizationUrl>http://www.sourcesense.com</organizationUrl>
-      <url>http://www.open4dev.com</url>
-    </developer>
-  </developers>
-  
-  <properties>
-    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-  </properties>
-  
-  <artifactId>mcf-elasticsearch-test</artifactId>
-  <name>ManifoldCF - Test - ElasticSearch</name>
-  
-  
-  
-   <build>
-    <defaultGoal>integration-test</defaultGoal>
-    <plugins>
-      <plugin>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-           <execution>
-            <id>copy-war</id>
-            <phase>generate-resources</phase>
-            <goals>
-              <goal>copy</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>target/dependency</outputDirectory>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>org.apache.chemistry.opencmis</groupId>
-                  <artifactId>chemistry-opencmis-server-inmemory</artifactId>
-                  <version>0.9.0</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                  <destFileName>chemistry-opencmis-server-inmemory.war</destFileName>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-api-service</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                  <destFileName>mcf-api-service.war</destFileName>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-authority-service</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                  <destFileName>mcf-authority-service.war</destFileName>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-crawler-ui</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                  <destFileName>mcf-crawler-ui.war</destFileName>
-                </artifactItem>
-              </artifactItems>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-failsafe-plugin</artifactId>
-        <version>2.12.3</version>
-        <configuration>
-          <skipTests>${skipITs}</skipTests>
-          <systemPropertyVariables>
-            <crawlerWarPath>../dependency/mcf-crawler-ui.war</crawlerWarPath>
-            <authorityserviceWarPath>../dependency/mcf-authority-service.war</authorityserviceWarPath>
-            <apiWarPath>../dependency/mcf-api-service.war</apiWarPath>
-            <openCmisServerWarPath>../dependency/chemistry-opencmis-server-inmemory.war</openCmisServerWarPath>
-          </systemPropertyVariables>
-          <excludes>
-            <exclude>**/*Postgresql*.java</exclude>
-            <exclude>**/*MySQL*.java</exclude>
-          </excludes>
-          <forkMode>always</forkMode>
-          <workingDirectory>target/test-output</workingDirectory>
-        </configuration>
-        <executions>
-          <execution>
-            <id>integration-test</id>
-            <goals>
-              <goal>integration-test</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>verify</id>
-            <goals>
-              <goal>verify</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-  <dependencies>
-    <!-- Internal dependencies -->
-    <dependency>
-      <groupId>org.apache.chemistry.opencmis</groupId>
-      <artifactId>chemistry-opencmis-server-inmemory</artifactId>
-      <version>0.9.0</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-api-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-authority-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-crawler-ui</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-jettyrunner</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-agents</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-pull-agent</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-cmis-connector</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-elasticsearch-connector</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-nulloutput-connector</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-server</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-util</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-webapp</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-servlet</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-http</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-io</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-security</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-continuation</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-xml</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jsp-api-2.1-glassfish</artifactId>
-      <version>${glassfish.version}</version>
-    </dependency>    
-    <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jsp-2.1-glassfish</artifactId>
-      <version>${glassfish.version}</version>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-      <version>${slf4j.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-simple</artifactId>
-      <version>${slf4j.version}</version>
-    </dependency>
-    
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-core</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-agents</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-pull-agent</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>${junit.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>postgresql</groupId>
-      <artifactId>postgresql</artifactId>
-      <version>${postgresql.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.hsqldb</groupId>
-      <artifactId>hsqldb</artifactId>
-      <version>${hsqldb.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.derby</groupId>
-      <artifactId>derby</artifactId>
-      <version>${derby.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>mysql</groupId>
-      <artifactId>mysql-connector-java</artifactId>
-      <version>${mysql.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>httpclient</artifactId>
-      <version>${httpcomponent.httpclient.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-logging</groupId>
-      <artifactId>commons-logging</artifactId>
-      <version>${commons-logging.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-      <version>${commons-codec.version}</version>
-    </dependency>
-
-    <!-- Apache Chemistry dependencies -->
-    <dependency>
-      <groupId>org.apache.chemistry.opencmis</groupId>
-      <artifactId>chemistry-opencmis-client-impl</artifactId>
-      <version>0.9.0</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-lang</groupId>
-      <artifactId>commons-lang</artifactId>
-      <version>2.6</version>
-    </dependency>
-    
-    <!-- Elastic Search dependencies -->
-    <dependency>
-      <groupId>org.elasticsearch</groupId>
-      <artifactId>elasticsearch</artifactId>
-      <version>1.0.1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.lucene</groupId>
-      <artifactId>lucene-core</artifactId>
-      <version>4.6.1</version>
-    </dependency>
-    <dependency>                 
-      <groupId>org.apache.lucene</groupId>
-      <artifactId>lucene-analyzers-common</artifactId>   
-      <version>4.6.1</version>                            
-    </dependency>
-    <dependency>
-      <groupId>org.apache.lucene</groupId>
-      <artifactId>lucene-codecs</artifactId>
-      <version>4.6.1</version>                                                                    
-    </dependency>
-    <dependency>
-      <groupId>org.apache.lucene</groupId>
-      <artifactId>lucene-queries</artifactId>
-      <version>4.6.1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.lucene</groupId>
-      <artifactId>lucene-memory</artifactId>
-      <version>4.6.1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.lucene</groupId>
-      <artifactId>lucene-highlighter</artifactId>
-      <version>4.6.1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.lucene</groupId>
-      <artifactId>lucene-queryparser</artifactId>
-      <version>4.6.1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.lucene</groupId>
-      <artifactId>lucene-misc</artifactId>
-      <version>4.6.1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.lucene</groupId>
-      <artifactId>lucene-join</artifactId>
-      <version>4.6.1</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.lucene</groupId>
-      <artifactId>lucene-grouping</artifactId>
-      <version>4.6.1</version>
-    </dependency>
-    
-    <!-- Attachment Plugin -->
-    <dependency>
-      <groupId>org.elasticsearch</groupId>
-      <artifactId>elasticsearch-mapper-attachments</artifactId>
-      <version>2.0.0.RC1</version>
-    </dependency>
-  </dependencies>
-</project>
diff --git a/tests/elasticsearch/src/test/java/org/apache/manifoldcf/elasticsearch_tests/APISanityDerbyIT.java b/tests/elasticsearch/src/test/java/org/apache/manifoldcf/elasticsearch_tests/APISanityDerbyIT.java
deleted file mode 100644
index d24494b..0000000
--- a/tests/elasticsearch/src/test/java/org/apache/manifoldcf/elasticsearch_tests/APISanityDerbyIT.java
+++ /dev/null
@@ -1,580 +0,0 @@
-/* $Id$ */
-
-/**
-* 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.
-*/
-package org.apache.manifoldcf.elasticsearch_tests;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.math.BigInteger;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.chemistry.opencmis.client.api.Document;
-import org.apache.chemistry.opencmis.client.api.Folder;
-import org.apache.chemistry.opencmis.client.api.ItemIterable;
-import org.apache.chemistry.opencmis.client.api.QueryResult;
-import org.apache.chemistry.opencmis.client.api.Session;
-import org.apache.chemistry.opencmis.client.api.SessionFactory;
-import org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl;
-import org.apache.chemistry.opencmis.commons.PropertyIds;
-import org.apache.chemistry.opencmis.commons.SessionParameter;
-import org.apache.chemistry.opencmis.commons.data.ContentStream;
-import org.apache.chemistry.opencmis.commons.enums.BindingType;
-import org.apache.chemistry.opencmis.commons.impl.dataobjects.ContentStreamImpl;
-import org.apache.chemistry.opencmis.commons.spi.ObjectService;
-import org.apache.commons.lang.StringUtils;
-import org.apache.manifoldcf.core.interfaces.Configuration;
-import org.apache.manifoldcf.core.interfaces.ConfigurationNode;
-import org.apache.manifoldcf.core.interfaces.ManifoldCFException;
-import org.apache.manifoldcf.crawler.connectors.cmis.CmisConfig;
-import org.apache.manifoldcf.crawler.system.ManifoldCF;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * @author Piergiorgio Lucidi
- */
-public class APISanityDerbyIT extends BaseDerby
-{
-  private static final String REPLACER = "?";
-  private static final String CMIS_TEST_QUERY_CHANGE_DOC = "SELECT * FROM cmis:document WHERE cmis:name='"+REPLACER+"'";
-  private static final String CMIS_TEST_QUERY = "SELECT * FROM cmis:folder WHERE cmis:name='testdata'";
-    
-  private Session cmisClientSession = null;
-  
-  private Session getCmisClientSession(){
-    // default factory implementation
-    SessionFactory factory = SessionFactoryImpl.newInstance();
-    Map<String, String> parameters = new HashMap<String, String>();
-
-    // user credentials
-    parameters.put(SessionParameter.USER, CmisConfig.USERNAME_DEFAULT_VALUE);
-    parameters.put(SessionParameter.PASSWORD, CmisConfig.PASSWORD_DEFAULT_VALUE);
-
-    // connection settings
-    String endpoint =
-        CmisConfig.PROTOCOL_DEFAULT_VALUE + "://" + 
-        CmisConfig.SERVER_DEFAULT_VALUE + ":" +
-        CmisConfig.PORT_DEFAULT_VALUE + 
-        CmisConfig.PATH_DEFAULT_VALUE;
-    
-    parameters.put(SessionParameter.ATOMPUB_URL, endpoint);
-    parameters.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());
-
-    // create session
-    return factory.getRepositories(parameters).get(0).createSession();
-  }
-  
-  public Folder getTestFolder(Session session){
-    Folder testFolder = null;
-    ItemIterable<QueryResult> results = session.query(CMIS_TEST_QUERY, false);
-    for (QueryResult result : results) {
-      String folderId = result.getPropertyById("cmis:objectId").getFirstValue().toString();
-      testFolder = (Folder)session.getObject(folderId);
-    }
-    return testFolder;
-  }
-  
-  public void createNewDocument(Folder folder, String name) throws IOException{
-    // properties 
-    // (minimal set: name and object type id)
-    Map<String, Object> contentProperties = new HashMap<String, Object>();
-    contentProperties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");
-    contentProperties.put(PropertyIds.NAME, name);
-  
-    // content
-    String contentString = "CMIS Testdata "+name;
-    byte[] content = contentString.getBytes();
-    InputStream stream = new ByteArrayInputStream(content);
-    ContentStream contentStream = new ContentStreamImpl(name, new BigInteger(content), "text/plain", stream);
-  
-    // create a major version
-    folder.createDocument(contentProperties, contentStream, null);
-    stream.close();
-  }
-  
-  /**
-   * change the document content with the new one provided as an argument
-   * @param session
-   * @param name
-   * @param newContent
-   */
-  public void changeDocument(Session session, String name, String newContent){
-    String cmisQuery = StringUtils.replace(CMIS_TEST_QUERY_CHANGE_DOC, REPLACER, name);
-    ItemIterable<QueryResult> results = session.query(cmisQuery, false);
-    String objectId = StringUtils.EMPTY;
-    for (QueryResult result : results) {
-      objectId = result.getPropertyById("cmis:objectId").getFirstValue().toString();
-    }
-    
-    byte[] newContentByteArray = newContent.getBytes();
-    InputStream stream = new ByteArrayInputStream(newContentByteArray);
-    ContentStream contentStream = new ContentStreamImpl(name, new BigInteger(newContentByteArray), "text/plain", stream);
-    Document documentToUpdate = (Document) session.getObject(objectId);
-    documentToUpdate.setContentStream(contentStream, true);
-  }
-  
-  public void removeDocument(Session session, String name){
-    String cmisQuery = StringUtils.replace(CMIS_TEST_QUERY_CHANGE_DOC, REPLACER, name);
-    ItemIterable<QueryResult> results = session.query(cmisQuery, false);
-    String objectId = StringUtils.EMPTY;
-    for (QueryResult result : results) {
-      objectId = result.getPropertyById("cmis:objectId").getFirstValue().toString();
-    }
-    String repositoryId = session.getRepositoryInfo().getId();
-    ObjectService objectService = session.getBinding().getObjectService();
-    objectService.deleteObject(repositoryId, objectId, true, null);
-  }
-  
-  @Before
-  public void createTestArea()
-    throws Exception
-  {
-    try
-    {
-      cmisClientSession = getCmisClientSession();
-
-      //creating a new folder
-      Folder root = cmisClientSession.getRootFolder();
-      
-      ItemIterable<QueryResult> results = cmisClientSession.query(CMIS_TEST_QUERY, false);
-      for (QueryResult result : results) {
-         String repositoryId = cmisClientSession.getRepositoryInfo().getId();
-        String folderId = result.getPropertyById("cmis:objectId").getFirstValue().toString();
-        cmisClientSession.getBinding().getObjectService().deleteTree(repositoryId, folderId, true, null, false, null);
-      }
-
-      Map<String, Object> folderProperties = new HashMap<String, Object>();
-      folderProperties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:folder");
-      folderProperties.put(PropertyIds.NAME, "testdata");
-  
-      Folder newFolder = root.createFolder(folderProperties);
-
-      String name = "testdata1.txt";
-      createNewDocument(newFolder, name);
-      
-      name = "testdata2.txt";
-      createNewDocument(newFolder,name);
-      
-    }
-    catch (Exception e)
-    {
-      e.printStackTrace();
-      throw e;
-    }
-  }
-  
-  @After
-  public void removeTestArea()
-    throws Exception
-  {
-    // we don't need to remove anything
-  }
-  
-  @Test
-  public void sanityCheck()
-    throws Exception
-  {
-    try
-    {
-      
-      int i;
-
-      // Create a basic file system connection, and save it.
-      ConfigurationNode connectionObject;
-      ConfigurationNode child;
-      Configuration requestObject;
-      Configuration result;
-      
-      connectionObject = new ConfigurationNode("repositoryconnection");
-      
-      child = new ConfigurationNode("name");
-      child.setValue("CMIS Connection");
-      connectionObject.addChild(connectionObject.getChildCount(),child);
-      
-      child = new ConfigurationNode("class_name");
-      child.setValue("org.apache.manifoldcf.crawler.connectors.cmis.CmisRepositoryConnector");
-      connectionObject.addChild(connectionObject.getChildCount(),child);
-      
-      child = new ConfigurationNode("description");
-      child.setValue("CMIS Connection");
-      connectionObject.addChild(connectionObject.getChildCount(),child);
-
-      child = new ConfigurationNode("max_connections");
-      child.setValue("10");
-      connectionObject.addChild(connectionObject.getChildCount(),child);
-      
-      child = new ConfigurationNode("configuration");
-      
-      //CMIS Repository Connector parameters
-      
-      //binding
-      ConfigurationNode cmisBindingNode = new ConfigurationNode("_PARAMETER_");
-      cmisBindingNode.setAttribute("name", CmisConfig.BINDING_PARAM);
-      cmisBindingNode.setValue(CmisConfig.BINDING_DEFAULT_VALUE);
-      child.addChild(child.getChildCount(), cmisBindingNode);
-      
-      //username
-      ConfigurationNode cmisUsernameNode = new ConfigurationNode("_PARAMETER_");
-      cmisUsernameNode.setAttribute("name", CmisConfig.USERNAME_PARAM);
-      cmisUsernameNode.setValue(CmisConfig.USERNAME_DEFAULT_VALUE);
-      child.addChild(child.getChildCount(), cmisUsernameNode);
-      
-      //password
-      ConfigurationNode cmisPasswordNode = new ConfigurationNode("_PARAMETER_");
-      cmisPasswordNode.setAttribute("name", CmisConfig.PASSWORD_PARAM);
-      cmisPasswordNode.setValue(CmisConfig.PASSWORD_DEFAULT_VALUE);
-      child.addChild(child.getChildCount(), cmisPasswordNode);
-      
-      //protocol
-      ConfigurationNode cmisProtocolNode = new ConfigurationNode("_PARAMETER_");
-      cmisProtocolNode.setAttribute("name", CmisConfig.PROTOCOL_PARAM);
-      cmisProtocolNode.setValue(CmisConfig.PROTOCOL_DEFAULT_VALUE);
-      child.addChild(child.getChildCount(), cmisProtocolNode);
-      
-      //server
-      ConfigurationNode cmisServerNode = new ConfigurationNode("_PARAMETER_");
-      cmisServerNode.setAttribute("name", CmisConfig.SERVER_PARAM);
-      cmisServerNode.setValue(CmisConfig.SERVER_DEFAULT_VALUE);
-      child.addChild(child.getChildCount(), cmisServerNode);
-      
-      //port
-      ConfigurationNode cmisPortNode = new ConfigurationNode("_PARAMETER_");
-      cmisPortNode.setAttribute("name", CmisConfig.PORT_PARAM);
-      cmisPortNode.setValue(CmisConfig.PORT_DEFAULT_VALUE);
-      child.addChild(child.getChildCount(), cmisPortNode);
-      
-      //path
-      ConfigurationNode cmisPathNode = new ConfigurationNode("_PARAMETER_");
-      cmisPathNode.setAttribute("name", CmisConfig.PATH_PARAM);
-      cmisPathNode.setValue(CmisConfig.PATH_DEFAULT_VALUE);
-      child.addChild(child.getChildCount(), cmisPathNode);
-      
-      connectionObject.addChild(connectionObject.getChildCount(),child);
-
-      requestObject = new Configuration();
-      requestObject.addChild(0,connectionObject);
-      
-      result = performAPIPutOperationViaNodes("repositoryconnections/CMIS%20Connection",201,requestObject);
-      
-      i = 0;
-      while (i < result.getChildCount())
-      {
-        ConfigurationNode resultNode = result.findChild(i++);
-        if (resultNode.getType().equals("error"))
-          throw new Exception(resultNode.getValue());
-      }
-      
-      // Create a basic null output connection, and save it.
-      connectionObject = new ConfigurationNode("outputconnection");
-      
-      child = new ConfigurationNode("name");
-      child.setValue("ElasticSearch");
-      connectionObject.addChild(connectionObject.getChildCount(),child);
-      
-      child = new ConfigurationNode("class_name");
-      child.setValue("org.apache.manifoldcf.agents.output.elasticsearch.ElasticSearchConnector");
-      connectionObject.addChild(connectionObject.getChildCount(),child);
-      
-      child = new ConfigurationNode("description");
-      child.setValue("ElasticSearch Connection");
-      connectionObject.addChild(connectionObject.getChildCount(),child);
-
-      child = new ConfigurationNode("max_connections");
-      child.setValue("100");
-      connectionObject.addChild(connectionObject.getChildCount(),child);
-
-      child = new ConfigurationNode("configuration");
-      
-      //ElasticSearch Output Connector parameters
-      
-      //serverlocation
-      ConfigurationNode serverLocation = new ConfigurationNode("_PARAMETER_");
-      serverLocation.setAttribute("name", "serverlocation");
-      serverLocation.setValue("http://localhost:9200");
-      child.addChild(child.getChildCount(), serverLocation);
-      
-      //indexname
-      ConfigurationNode indexName = new ConfigurationNode("_PARAMETER_");
-      indexName.setAttribute("name", "indexname");
-      indexName.setValue("index");
-      child.addChild(child.getChildCount(), indexName);
-      
-      //indextype
-      ConfigurationNode indexType = new ConfigurationNode("_PARAMETER_");
-      indexType.setAttribute("name", "indextype");
-      indexType.setValue("generictype");
-      child.addChild(child.getChildCount(), indexType);
-      
-      connectionObject.addChild(connectionObject.getChildCount(),child);
-      
-      requestObject = new Configuration();
-      requestObject.addChild(0,connectionObject);
-      
-      result = performAPIPutOperationViaNodes("outputconnections/ElasticSearch",201,requestObject);
-      
-      i = 0;
-      while (i < result.getChildCount())
-      {
-        ConfigurationNode resultNode = result.findChild(i++);
-        if (resultNode.getType().equals("error"))
-          throw new Exception(resultNode.getValue());
-      }
-
-      // Create a job.
-      ConfigurationNode jobObject = new ConfigurationNode("job");
-      
-      child = new ConfigurationNode("description");
-      child.setValue("Test Job");
-      jobObject.addChild(jobObject.getChildCount(),child);
-
-      child = new ConfigurationNode("repository_connection");
-      child.setValue("CMIS Connection");
-      jobObject.addChild(jobObject.getChildCount(),child);
-
-      child = new ConfigurationNode("output_connection");
-      child.setValue("ElasticSearch");
-      jobObject.addChild(jobObject.getChildCount(),child);
-
-      child = new ConfigurationNode("run_mode");
-      child.setValue("scan once");
-      jobObject.addChild(jobObject.getChildCount(),child);
-
-      child = new ConfigurationNode("start_mode");
-      child.setValue("manual");
-      jobObject.addChild(jobObject.getChildCount(),child);
-
-      child = new ConfigurationNode("hopcount_mode");
-      child.setValue("accurate");
-      jobObject.addChild(jobObject.getChildCount(),child);
-
-      child = new ConfigurationNode("document_specification");
-      
-      
-      //Job configuration
-      ConfigurationNode sn = new ConfigurationNode("startpoint");
-      sn.setAttribute("cmisQuery",CMIS_TEST_QUERY);
-      
-      child.addChild(child.getChildCount(),sn);
-      jobObject.addChild(jobObject.getChildCount(),child);
-      
-      requestObject = new Configuration();
-      requestObject.addChild(0,jobObject);
-      
-      result = performAPIPostOperationViaNodes("jobs",201,requestObject);
-      
-      String jobIDString = null;
-      i = 0;
-      while (i < result.getChildCount())
-      {
-        ConfigurationNode resultNode = result.findChild(i++);
-        if (resultNode.getType().equals("error"))
-          throw new Exception(resultNode.getValue());
-        else if (resultNode.getType().equals("job_id"))
-          jobIDString = resultNode.getValue();
-      }
-      if (jobIDString == null)
-        throw new Exception("Missing job_id from return!");
-      
-      // Now, start the job, and wait until it completes.
-      startJob(jobIDString);
-      waitJobInactive(jobIDString, 120000L);
-
-      // Check to be sure we actually processed the right number of documents.
-      // The test data area has 3 documents and one directory, and we have to count the root directory too.
-      long count;
-      count = getJobDocumentsProcessed(jobIDString);
-      if (count != 3)
-        throw new ManifoldCFException("Wrong number of documents processed - expected 3, saw "+new Long(count).toString());
-      
-      // Add a file and recrawl
-      Folder testFolder = getTestFolder(cmisClientSession);
-      createNewDocument(testFolder, "testdata3.txt");
-      createNewDocument(testFolder, "testdata4.txt");
-
-      // Now, start the job, and wait until it completes.
-      startJob(jobIDString);
-      waitJobInactive(jobIDString, 120000L);
-
-      // The test data area has 4 documents and one directory, and we have to count the root directory too.
-      count = getJobDocumentsProcessed(jobIDString);
-      if (count != 5)
-        throw new ManifoldCFException("Wrong number of documents processed after add - expected 5, saw "+new Long(count).toString());
-
-      // Change a document, and recrawl
-      changeDocument(cmisClientSession,"testdata1.txt","MODIFIED - CMIS Testdata - MODIFIED");
-      
-      // Now, start the job, and wait until it completes.
-      startJob(jobIDString);
-      waitJobInactive(jobIDString, 120000L);
-
-      // The test data area has 4 documents and one directory, and we have to count the root directory too.
-      count = getJobDocumentsProcessed(jobIDString);
-      if (count != 5)
-        throw new ManifoldCFException("Wrong number of documents processed after change - expected 5, saw "+new Long(count).toString());
-      
-      // We also need to make sure the new document was indexed.  Have to think about how to do this though.
-      // MHL
-      
-      // Delete a file, and recrawl
-      removeDocument(cmisClientSession, "testdata2.txt");
-      
-      // Now, start the job, and wait until it completes.
-      startJob(jobIDString);
-      waitJobInactive(jobIDString, 120000L);
-
-      // Check to be sure we actually processed the right number of documents.
-      // The test data area has 3 documents and one directory, and we have to count the root directory too.
-      count = getJobDocumentsProcessed(jobIDString);
-      if (count != 4)
-        throw new ManifoldCFException("Wrong number of documents processed after delete - expected 5, saw "+new Long(count).toString());
-
-      // Now, delete the job.
-      deleteJob(jobIDString);
-
-      waitJobDeleted(jobIDString, 120000L);
-      
-      // Cleanup is automatic by the base class, so we can feel free to leave jobs and connections lying around.
-    }
-    catch (Exception e)
-    {
-      e.printStackTrace();
-      throw e;
-    }
-  }
-  
-  protected void startJob(String jobIDString)
-    throws Exception
-  {
-    Configuration requestObject = new Configuration();
-    
-    Configuration result = performAPIPutOperationViaNodes("start/"+jobIDString,201,requestObject);
-    int i = 0;
-    while (i < result.getChildCount())
-    {
-      ConfigurationNode resultNode = result.findChild(i++);
-      if (resultNode.getType().equals("error"))
-        throw new Exception(resultNode.getValue());
-    }
-  }
-  
-  protected void deleteJob(String jobIDString)
-    throws Exception
-  {
-    Configuration result = performAPIDeleteOperationViaNodes("jobs/"+jobIDString,200);
-    int i = 0;
-    while (i < result.getChildCount())
-    {
-      ConfigurationNode resultNode = result.findChild(i++);
-      if (resultNode.getType().equals("error"))
-        throw new Exception(resultNode.getValue());
-    }
-
-  }
-  
-  protected String getJobStatus(String jobIDString)
-    throws Exception
-  {
-    Configuration result = performAPIGetOperationViaNodes("jobstatuses/"+jobIDString,200);
-    String status = null;
-    int i = 0;
-    while (i < result.getChildCount())
-    {
-      ConfigurationNode resultNode = result.findChild(i++);
-      if (resultNode.getType().equals("error"))
-        throw new Exception(resultNode.getValue());
-      else if (resultNode.getType().equals("jobstatus"))
-      {
-        int j = 0;
-        while (j < resultNode.getChildCount())
-        {
-          ConfigurationNode childNode = resultNode.findChild(j++);
-          if (childNode.getType().equals("status"))
-            status = childNode.getValue();
-        }
-      }
-    }
-    return status;
-  }
-
-  protected long getJobDocumentsProcessed(String jobIDString)
-    throws Exception
-  {
-    Configuration result = performAPIGetOperationViaNodes("jobstatuses/"+jobIDString,200);
-    String documentsProcessed = null;
-    int i = 0;
-    while (i < result.getChildCount())
-    {
-      ConfigurationNode resultNode = result.findChild(i++);
-      if (resultNode.getType().equals("error"))
-        throw new Exception(resultNode.getValue());
-      else if (resultNode.getType().equals("jobstatus"))
-      {
-        int j = 0;
-        while (j < resultNode.getChildCount())
-        {
-          ConfigurationNode childNode = resultNode.findChild(j++);
-          if (childNode.getType().equals("documents_processed"))
-            documentsProcessed = childNode.getValue();
-        }
-      }
-    }
-    if (documentsProcessed == null)
-      throw new Exception("Expected a documents_processed field, didn't find it");
-    return new Long(documentsProcessed).longValue();
-  }
-
-  protected void waitJobInactive(String jobIDString, long maxTime)
-    throws Exception
-  {
-    long startTime = System.currentTimeMillis();
-    while (System.currentTimeMillis() < startTime + maxTime)
-    {
-      String status = getJobStatus(jobIDString);
-      if (status == null)
-        throw new Exception("No such job: '"+jobIDString+"'");
-      if (status.equals("not yet run"))
-        throw new Exception("Job was never started.");
-      if (status.equals("done"))
-        return;
-      if (status.equals("error"))
-        throw new Exception("Job reports error.");
-      ManifoldCF.sleep(1000L);
-      continue;
-    }
-    throw new ManifoldCFException("ManifoldCF did not terminate in the allotted time of "+new Long(maxTime).toString()+" milliseconds");
-  }
-  
-  protected void waitJobDeleted(String jobIDString, long maxTime)
-    throws Exception
-  {
-    long startTime = System.currentTimeMillis();
-    while (System.currentTimeMillis() < startTime + maxTime)
-    {
-      String status = getJobStatus(jobIDString);
-      if (status == null)
-        return;
-      ManifoldCF.sleep(1000L);
-    }
-    throw new ManifoldCFException("ManifoldCF did not delete in the allotted time of "+new Long(maxTime).toString()+" milliseconds");
-  }
-    
-
-}
diff --git a/tests/elasticsearch/src/test/java/org/apache/manifoldcf/elasticsearch_tests/BaseDerby.java b/tests/elasticsearch/src/test/java/org/apache/manifoldcf/elasticsearch_tests/BaseDerby.java
deleted file mode 100644
index 824f45c..0000000
--- a/tests/elasticsearch/src/test/java/org/apache/manifoldcf/elasticsearch_tests/BaseDerby.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/* $Id$ */
-
-/**
-* 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.
-*/
-package org.apache.manifoldcf.elasticsearch_tests;
-
-import org.apache.manifoldcf.crawler.system.ManifoldCF;
-import org.elasticsearch.node.Node;
-import org.junit.After;
-import org.junit.Before;
-
-import org.eclipse.jetty.server.handler.ContextHandlerCollection;
-import org.eclipse.jetty.server.Server;
-import org.eclipse.jetty.webapp.WebAppContext;
-
-import static org.elasticsearch.node.NodeBuilder.*;
-
-/**  
- *  Base integration tests class for Elastic Search tested against a CMIS repository
- *  @author Piergiorgio Lucidi
- * 
- * */
-public class BaseDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
-{
-  protected Server cmisServer = null;
-  protected Node node = null;
-
-  protected String[] getConnectorNames()
-  {
-    return new String[]{"CMIS"};
-  }
-  
-  protected String[] getConnectorClasses()
-  {
-    return new String[]{"org.apache.manifoldcf.crawler.connectors.cmis.CmisRepositoryConnector"};
-  }
-
-  protected String[] getOutputNames()
-  {
-    return new String[]{"ElasticSearch"};
-  }
-  
-  protected String[] getOutputClasses()
-  {
-    return new String[]{"org.apache.manifoldcf.agents.output.elasticsearch.ElasticSearchConnector"};
-  }
-
-  // Setup/teardown
-  
-  @Before
-  public void setUpCMIS()
-    throws Exception
-  {
-    cmisServer = new Server(9090);
-    cmisServer.setStopAtShutdown(true);
-
-    String openCmisServerWarPath = "../../lib/chemistry-opencmis-server-inmemory.war";
-
-    if (System.getProperty("openCmisServerWarPath") != null)
-      openCmisServerWarPath = System.getProperty("openCmisServerWarPath");
-    
-    //Initialize OpenCMIS Server bindings
-    ContextHandlerCollection contexts = new ContextHandlerCollection();
-    cmisServer.setHandler(contexts);
-    WebAppContext openCmisServerApi = new WebAppContext(openCmisServerWarPath,"/chemistry-opencmis-server-inmemory");
-    openCmisServerApi.setParentLoaderPriority(false);
-    contexts.addHandler(openCmisServerApi);
-    
-    System.out.println("OpenCMIS InMemory server is starting...");
-    cmisServer.start();
-    boolean entered = false;
-    
-    while(cmisServer.isStarted() 
-        && openCmisServerApi.isStarted()
-        && !entered){
-      entered = true;
-      ManifoldCF.sleep(5000);
-    }
-    
-    System.out.println("OpenCMIS InMemory server is started listening on port 9090");
-  }
-  
-  @Before
-  public void setupElasticSearch()
-    throws Exception
-  {
-    //Initialize ElasticSearch server
-    //the default port is 9200
-    System.out.println("ElasticSearch is starting...");
-    node = nodeBuilder().local(true).node();
-    System.out.println("ElasticSearch is started on port 9200");
-  }
-  
-  
-  @After
-  public void cleanUpElasticSearch(){
-    if(node!=null)
-      node.close();
-  }
-  
-  @After
-  public void cleanUpCMIS()
-    throws Exception
-  {
-  }
-  
-}
diff --git a/tests/elasticsearch/src/test/java/org/apache/manifoldcf/elasticsearch_tests/BaseUIDerby.java b/tests/elasticsearch/src/test/java/org/apache/manifoldcf/elasticsearch_tests/BaseUIDerby.java
deleted file mode 100644
index 6c04964..0000000
--- a/tests/elasticsearch/src/test/java/org/apache/manifoldcf/elasticsearch_tests/BaseUIDerby.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/* $Id$ */
-
-/**
-* 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.
-*/
-package org.apache.manifoldcf.elasticsearch_tests;
-
-/** Tests that run the "agents daemon" should be derived from this */
-public class BaseUIDerby extends org.apache.manifoldcf.crawler.tests.ConnectorBaseUIDerby
-{
-  protected String[] getConnectorNames()
-  {
-    return new String[]{"CMIS Connector"};
-  }
-  
-  protected String[] getConnectorClasses()
-  {
-    return new String[]{"org.apache.manifoldcf.crawler.connectors.cmis.CmisRepositoryConnector"};
-  }
-  
-  protected String[] getOutputNames()
-  {
-    return new String[]{"ElasticSearch"};
-  }
-  
-  protected String[] getOutputClasses()
-  {
-    return new String[]{"org.apache.manifoldcf.agents.output.elasticsearch.ElasticSearchConnector"};
-  }
-
-  protected String[] getAuthorityClasses()
-  {
-    return new String[]{"org.apache.manifoldcf.crawler.connectors.cmis.CmisAuthorityConnector"};
-  }
-  
-  protected String[] getAuthorityNames()
-  {
-    return new String[]{"CMIS authority"};
-  }
-
-}
diff --git a/tests/elasticsearch/src/test/java/org/apache/manifoldcf/elasticsearch_tests/NavigationDerbyUI.java b/tests/elasticsearch/src/test/java/org/apache/manifoldcf/elasticsearch_tests/NavigationDerbyUI.java
deleted file mode 100644
index 1b4325b..0000000
--- a/tests/elasticsearch/src/test/java/org/apache/manifoldcf/elasticsearch_tests/NavigationDerbyUI.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/* $Id$ */
-
-/**
-* 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.
-*/
-package org.apache.manifoldcf.elasticsearch_tests;
-
-import java.util.Locale;
-
-import org.apache.manifoldcf.core.tests.HTMLTester;
-import org.junit.Test;
-
-/** Basic UI navigation tests */
-public class NavigationDerbyUI extends BaseUIDerby
-{
-
-  @Test
-  public void createConnectionsAndJob()
-    throws Exception
-  {
-    testerInstance.newTest(Locale.US);
-    
-    HTMLTester.Window window;
-    HTMLTester.Link link;
-    HTMLTester.Form form;
-    HTMLTester.Textarea textarea;
-    HTMLTester.Selectbox selectbox;
-    HTMLTester.Button button;
-    HTMLTester.Radiobutton radiobutton;
-    HTMLTester.Loop loop;
-    
-    window = testerInstance.openMainWindow("http://localhost:8346/mcf-crawler-ui/index.jsp");
-
-    // Login
-    form = window.findForm(testerInstance.createStringDescription("loginform"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("userID"));
-    textarea.setValue(testerInstance.createStringDescription("admin"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("password"));
-    textarea.setValue(testerInstance.createStringDescription("admin"));
-    button = window.findButton(testerInstance.createStringDescription("Login"));
-    button.click();
-    window = testerInstance.findWindow(null);
-
-    // Define an output connection via the UI
-    link = window.findLink(testerInstance.createStringDescription("List output connections"));
-    link.click();
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Add an output connection"));
-    link.click();
-    // Fill in a name
-    window = testerInstance.findWindow(null);
-    form = window.findForm(testerInstance.createStringDescription("editconnection"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("connname"));
-    textarea.setValue(testerInstance.createStringDescription("MyOutputConnection"));
-    link = window.findLink(testerInstance.createStringDescription("Type tab"));
-    link.click();
-    // Select a type
-    window = testerInstance.findWindow(null);
-    form = window.findForm(testerInstance.createStringDescription("editconnection"));
-    selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.agents.output.elasticsearch.ElasticSearchConnector"));
-    button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
-    button.click();
-    // Visit the Throttling tab
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Throttling tab"));
-    link.click();
-    // Go back to the Name tab
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Name tab"));
-    link.click();
-    // Parameters tab
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Parameters tab"));
-    link.click();
-    window = testerInstance.findWindow(null);
-    form = window.findForm(testerInstance.createStringDescription("editconnection"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("serverlocation"));
-    textarea.setValue(testerInstance.createStringDescription("http://localhost:9200/"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("indexname"));
-    textarea.setValue(testerInstance.createStringDescription("index"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("indextype"));
-    textarea.setValue(testerInstance.createStringDescription("generictype"));
-    
-    // Go back to the Name tab
-    link = window.findLink(testerInstance.createStringDescription("Name tab"));
-    link.click();
-    // Now save the connection.
-    window = testerInstance.findWindow(null);
-    button = window.findButton(testerInstance.createStringDescription("Save this output connection"));
-    button.click();
-    
-    // Define a repository connection via the UI
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("List repository connections"));
-    link.click();
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Add a connection"));
-    link.click();
-    // Fill in a name
-    window = testerInstance.findWindow(null);
-    form = window.findForm(testerInstance.createStringDescription("editconnection"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("connname"));
-    textarea.setValue(testerInstance.createStringDescription("MyRepositoryConnection"));
-    link = window.findLink(testerInstance.createStringDescription("Type tab"));
-    link.click();
-    // Select a type
-    window = testerInstance.findWindow(null);
-    form = window.findForm(testerInstance.createStringDescription("editconnection"));
-    selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.crawler.connectors.cmis.CmisRepositoryConnector"));
-    button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
-    button.click();
-    // Visit the Throttling tab
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Throttling tab"));
-    link.click();
-    // Server tab
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Server tab"));
-    link.click();
-    window = testerInstance.findWindow(null);
-    form = window.findForm(testerInstance.createStringDescription("editconnection"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("username"));
-    textarea.setValue(testerInstance.createStringDescription("foo"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("password"));
-    textarea.setValue(testerInstance.createStringDescription("bar"));
-    // Go back to the Name tab
-    link = window.findLink(testerInstance.createStringDescription("Name tab"));
-    link.click();
-    window = testerInstance.findWindow(null);
-    // Now save the connection.
-    button = window.findButton(testerInstance.createStringDescription("Save this connection"));
-    button.click();
-    
-    // Define an authority connection via the UI
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("List authorities"));
-    link.click();
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Add a new connection"));
-    link.click();
-    // Fill in a name
-    window = testerInstance.findWindow(null);
-    form = window.findForm(testerInstance.createStringDescription("editconnection"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("connname"));
-    textarea.setValue(testerInstance.createStringDescription("MyAuthorityConnection"));
-    link = window.findLink(testerInstance.createStringDescription("Type tab"));
-    link.click();
-    // Select a type
-    window = testerInstance.findWindow(null);
-    form = window.findForm(testerInstance.createStringDescription("editconnection"));
-    selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.crawler.connectors.cmis.CmisAuthorityConnector"));
-    button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
-    button.click();
-    window = testerInstance.findWindow(null);
-    //MHL
-    // Go back to the Name tab
-    link = window.findLink(testerInstance.createStringDescription("Name tab"));
-    link.click();
-    // Now save the connection.
-    window = testerInstance.findWindow(null);
-    button = window.findButton(testerInstance.createStringDescription("Save this authority connection"));
-    button.click();
-
-    // Create a job
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("List jobs"));
-    link.click();
-    // Add a job
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Add a job"));
-    link.click();
-    // Fill in a name
-    window = testerInstance.findWindow(null);
-    form = window.findForm(testerInstance.createStringDescription("editjob"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("description"));
-    textarea.setValue(testerInstance.createStringDescription("MyJob"));
-    link = window.findLink(testerInstance.createStringDescription("Connection tab"));
-    link.click();
-    // Select the connections
-    window = testerInstance.findWindow(null);
-    form = window.findForm(testerInstance.createStringDescription("editjob"));
-    selectbox = form.findSelectbox(testerInstance.createStringDescription("outputname"));
-    selectbox.selectValue(testerInstance.createStringDescription("MyOutputConnection"));
-    selectbox = form.findSelectbox(testerInstance.createStringDescription("connectionname"));
-    selectbox.selectValue(testerInstance.createStringDescription("MyRepositoryConnection"));
-    button = window.findButton(testerInstance.createStringDescription("Continue to next screen"));
-    button.click();
-    // Visit all the tabs.  Scheduling tab first
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Scheduling tab"));
-    link.click();
-    window = testerInstance.findWindow(null);
-    form = window.findForm(testerInstance.createStringDescription("editjob"));
-    selectbox = form.findSelectbox(testerInstance.createStringDescription("dayofweek"));
-    selectbox.selectValue(testerInstance.createStringDescription("0"));
-    selectbox = form.findSelectbox(testerInstance.createStringDescription("hourofday"));
-    selectbox.selectValue(testerInstance.createStringDescription("1"));
-    selectbox = form.findSelectbox(testerInstance.createStringDescription("minutesofhour"));
-    selectbox.selectValue(testerInstance.createStringDescription("30"));
-    selectbox = form.findSelectbox(testerInstance.createStringDescription("monthofyear"));
-    selectbox.selectValue(testerInstance.createStringDescription("11"));
-    selectbox = form.findSelectbox(testerInstance.createStringDescription("dayofmonth"));
-    selectbox.selectValue(testerInstance.createStringDescription("none"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("duration"));
-    textarea.setValue(testerInstance.createStringDescription("120"));
-    button = window.findButton(testerInstance.createStringDescription("Add new schedule record"));
-    button.click();
-    window = testerInstance.findWindow(null);
-    // MHL
-    // Save the job
-    button = window.findButton(testerInstance.createStringDescription("Save this job"));
-    button.click();
-
-    // Delete the job
-    window = testerInstance.findWindow(null);
-    HTMLTester.StringDescription jobID = window.findMatch(testerInstance.createStringDescription("<!--jobid=(.*?)-->"),0);
-    testerInstance.printValue(jobID);
-    link = window.findLink(testerInstance.createStringDescription("Delete this job"));
-    link.click();
-    
-    // Wait for the job to go away
-    loop = testerInstance.beginLoop(120);
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Manage jobs"));
-    link.click();
-    window = testerInstance.findWindow(null);
-    HTMLTester.StringDescription isJobNotPresent = window.isNotPresent(jobID);
-    testerInstance.printValue(isJobNotPresent);
-    loop.breakWhenTrue(isJobNotPresent);
-    loop.endLoop();
-    
-    // Delete the authority connection
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("List authorities"));
-    link.click();
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Delete MyAuthorityConnection"));
-    link.click();
-
-    // Delete the repository connection
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("List repository connections"));
-    link.click();
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Delete MyRepositoryConnection"));
-    link.click();
-    
-    // Delete the output connection
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("List output connections"));
-    link.click();
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Delete MyOutputConnection"));
-    link.click();
-    
-    testerInstance.executeTest();
-  }
-  
-}
diff --git a/tests/filesystem/build.xml b/tests/filesystem/build.xml
deleted file mode 100644
index 8f1adf4..0000000
--- a/tests/filesystem/build.xml
+++ /dev/null
@@ -1,22 +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.
--->
-
-<project name="filesystem" default="all">
-
-    <import file="../ino-test-build.xml"/>
-    
-</project>
diff --git a/tests/filesystem/pom.xml b/tests/filesystem/pom.xml
deleted file mode 100644
index 6abee7a..0000000
--- a/tests/filesystem/pom.xml
+++ /dev/null
@@ -1,312 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <parent>
-    <groupId>org.apache.manifoldcf</groupId>
-    <artifactId>mcf-tests</artifactId>
-    <version>1.6-SNAPSHOT</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-
-  <artifactId>mcf-filesystem-test</artifactId>
-  <name>ManifoldCF - Test - Filesystem</name>
-
-  <build>
-    <defaultGoal>integration-test</defaultGoal>
-    <plugins>
-      <plugin>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-           <execution>
-            <id>copy-war</id>
-            <phase>generate-resources</phase>
-            <goals>
-              <goal>copy</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>target/dependency</outputDirectory>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-api-service</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-authority-service</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-combined-service</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-crawler-ui</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                </artifactItem>
-              </artifactItems>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-failsafe-plugin</artifactId>
-        <version>2.12</version>
-        <configuration>
-          <skipTests>${skipITs}</skipTests>
-          <systemPropertyVariables>
-            <crawlerWarPath>../dependency/mcf-crawler-ui-${project.version}.war</crawlerWarPath>
-            <authorityserviceWarPath>../dependency/mcf-authority-service-${project.version}.war</authorityserviceWarPath>
-            <apiWarPath>../dependency/mcf-api-service-${project.version}.war</apiWarPath>
-            <combinedWarPath>../dependency/mcf-combined-service-${project.version}.war</combinedWarPath>
-          </systemPropertyVariables>
-          <excludes>
-            <exclude>**/*Postgresql*.java</exclude>
-            <exclude>**/*MySQL*.java</exclude>
-          </excludes>
-          <forkMode>always</forkMode>
-          <workingDirectory>target/test-output</workingDirectory>
-        </configuration>
-        <executions>
-          <execution>
-            <id>integration-test</id>
-            <goals>
-              <goal>integration-test</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>verify</id>
-            <goals>
-              <goal>verify</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-  <dependencies>
-    <!-- Internal dependencies -->
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-api-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-authority-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-combined-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-crawler-ui</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-agents</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-pull-agent</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-filesystem-connector</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-nulloutput-connector</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-nullauthority-connector</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-server</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-util</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-webapp</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-servlet</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-http</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-io</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-security</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-continuation</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-xml</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-      <version>${slf4j.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-simple</artifactId>
-      <version>${slf4j.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jsp-api-2.1-glassfish</artifactId>
-      <version>${glassfish.version}</version>
-    </dependency>    
-    <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jsp-2.1-glassfish</artifactId>
-      <version>${glassfish.version}</version>
-    </dependency>
-  
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-core</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-agents</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-pull-agent</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>${junit.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>postgresql</groupId>
-      <artifactId>postgresql</artifactId>
-      <version>${postgresql.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.hsqldb</groupId>
-      <artifactId>hsqldb</artifactId>
-      <version>${hsqldb.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.derby</groupId>
-      <artifactId>derby</artifactId>
-      <version>${derby.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>mysql</groupId>
-      <artifactId>mysql-connector-java</artifactId>
-      <version>${mysql.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>httpclient</artifactId>
-      <version>${httpcomponent.httpclient.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-logging</groupId>
-      <artifactId>commons-logging</artifactId>
-      <version>${commons-logging.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-      <version>${commons-codec.version}</version>
-    </dependency>
-  </dependencies>
-</project>
\ No newline at end of file
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseDerby.java b/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseDerby.java
deleted file mode 100644
index 5ff3267..0000000
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseDerby.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/* $Id: TestBase.java 996524 2010-09-13 13:38:01Z kwright $ */
-
-/**
-* 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.
-*/
-package org.apache.manifoldcf.filesystem_tests;
-
-import org.apache.manifoldcf.core.interfaces.*;
-import org.apache.manifoldcf.agents.interfaces.*;
-import org.apache.manifoldcf.crawler.interfaces.*;
-import org.apache.manifoldcf.crawler.system.ManifoldCF;
-
-import java.io.*;
-import java.util.*;
-import org.junit.*;
-
-/** Tests that run the "agents daemon" should be derived from this */
-public class BaseDerby extends org.apache.manifoldcf.crawler.tests.BaseITDerby
-{
-  protected String[] getConnectorNames()
-  {
-    return new String[]{"File Connector"};
-  }
-  
-  protected String[] getConnectorClasses()
-  {
-    return new String[]{"org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector"};
-  }
-  
-  protected String[] getOutputNames()
-  {
-    return new String[]{"Null Output"};
-  }
-  
-  protected String[] getOutputClasses()
-  {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
-  }
-}
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseHSQLDB.java b/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseHSQLDB.java
deleted file mode 100644
index e504d8e..0000000
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/BaseHSQLDB.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/* $Id$ */
-
-/**
-* 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.
-*/
-package org.apache.manifoldcf.filesystem_tests;
-
-import org.apache.manifoldcf.core.interfaces.*;
-import org.apache.manifoldcf.agents.interfaces.*;
-import org.apache.manifoldcf.crawler.interfaces.*;
-import org.apache.manifoldcf.crawler.system.ManifoldCF;
-
-import java.io.*;
-import java.util.*;
-import org.junit.*;
-
-/** Tests that run the "agents daemon" should be derived from this */
-public class BaseHSQLDB extends org.apache.manifoldcf.crawler.tests.BaseITHSQLDB
-{
-  public BaseHSQLDB()
-  {
-    super();
-  }
-  
-  public BaseHSQLDB(boolean singleWar)
-  {
-    super(singleWar);
-  }
-
-  protected String[] getConnectorNames()
-  {
-    return new String[]{"File Connector"};
-  }
-  
-  protected String[] getConnectorClasses()
-  {
-    return new String[]{"org.apache.manifoldcf.crawler.connectors.filesystem.FileConnector"};
-  }
-  
-  protected String[] getOutputNames()
-  {
-    return new String[]{"Null Output"};
-  }
-  
-  protected String[] getOutputClasses()
-  {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
-  }
-}
diff --git a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/FileHelper.java b/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/FileHelper.java
deleted file mode 100644
index 7454b88..0000000
--- a/tests/filesystem/src/test/java/org/apache/manifoldcf/filesystem_tests/FileHelper.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/* $Id$ */
-
-/**
-* 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.
-*/
-package org.apache.manifoldcf.filesystem_tests;
-
-import java.io.*;
-import java.util.*;
-
-/** Helper class for local file manipulation */
-public class FileHelper
-{
-
-  protected static void createDirectory(File f)
-    throws Exception
-  {
-    if (f.mkdirs() == false)
-      throw new Exception("Failed to create directory "+f.toString());
-  }
-  
-  protected static void removeDirectory(File f)
-    throws Exception
-  {
-    File[] files = f.listFiles();
-    if (files != null)
-    {
-      int i = 0;
-      while (i < files.length)
-      {
-        File subfile = files[i++];
-        if (subfile.isDirectory())
-          removeDirectory(subfile);
-        else
-          subfile.delete();
-      }
-    }
-    f.delete();
-  }
-  
-  protected static void createFile(File f, String contents)
-    throws Exception
-  {
-    OutputStream os = new FileOutputStream(f);
-    try
-    {
-      Writer w = new OutputStreamWriter(os,"utf-8");
-      try
-      {
-        w.write(contents);
-      }
-      finally
-      {
-        w.flush();
-      }
-    }
-    finally
-    {
-      os.close();
-    }
-  }
-  
-  protected static void removeFile(File f)
-    throws Exception
-  {
-    if (f.delete() == false)
-      throw new Exception("Failed to delete file "+f.toString());
-  }
-  
-  protected static void changeFile(File f, String newContents)
-    throws Exception
-  {
-    removeFile(f);
-    createFile(f,newContents);
-  }
-  
-}
diff --git a/tests/gts/build.xml b/tests/gts/build.xml
deleted file mode 100644
index fcc96e7..0000000
--- a/tests/gts/build.xml
+++ /dev/null
@@ -1,22 +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.
--->
-
-<project name="gts" default="all">
-
-    <import file="../ifs-test-build.xml"/>
-    
-</project>
diff --git a/tests/icmis-test-build.xml b/tests/icmis-test-build.xml
deleted file mode 100644
index b050457..0000000
--- a/tests/icmis-test-build.xml
+++ /dev/null
@@ -1,55 +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.
--->
-
-<!-- Include file system connector in addition to the test connector -->
-<project name="mcf-icmis-test-build">
-
-    <import file="test-build.xml"/>
-
-    <path id="mcf-icmis-test-build.test-classpath">
-        <path refid="mcf-test-build.test-classpath"/>
-        <fileset dir="../../connectors/cmis/dist/lib">
-            <include name="*.jar"/>
-        </fileset>
-        <fileset dir="../../connectors/cmis/build/test-jar">
-            <include name="*.jar"/>
-        </fileset>
-    </path>
-
-    <path id="test-classpath">
-        <path refid="mcf-icmis-test-build.test-classpath"/>
-    </path>
-
-    <target name="run-derby" depends="mcf-test-build.run-derby"/>
-    <target name="run-postgresql" depends="mcf-test-build.run-postgresql"/>
-    <target name="run-HSQLDB" depends="mcf-test-build.run-HSQLDB"/>
-    <target name="run-HSQLDBext" depends="mcf-test-build.run-HSQLDBext"/>
-    <target name="run-mysql" depends="mcf-test-build.run-mysql"/>
-    
-    <target name="run-load-derby" depends="mcf-test-build.run-load-derby"/>
-    <target name="run-load-postgresql" depends="mcf-test-build.run-load-postgresql"/>
-    <target name="run-load-HSQLDB" depends="mcf-test-build.run-load-HSQLDB"/>
-    <target name="run-load-HSQLDBext" depends="mcf-test-build.run-load-HSQLDBext"/>
-    <target name="run-load-mysql" depends="mcf-test-build.run-load-mysql"/>
-    
-    <target name="run-UI-derby" depends="mcf-test-build.run-UI-derby"/>
-    <target name="run-UI-postgresql" depends="mcf-test-build.run-UI-postgresql"/>
-    <target name="run-UI-HSQLDB" depends="mcf-test-build.run-UI-HSQLDB"/>
-    <target name="run-UI-HSQLDBext" depends="mcf-test-build.run-UI-HSQLDBext"/>
-    <target name="run-UI-mysql" depends="mcf-test-build.run-UI-mysql"/>
-    
-</project>
diff --git a/tests/ifs-test-build.xml b/tests/ifs-test-build.xml
deleted file mode 100644
index 9b87e76..0000000
--- a/tests/ifs-test-build.xml
+++ /dev/null
@@ -1,55 +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.
--->
-
-<!-- Include file system connector in addition to the test connector -->
-<project name="mcf-ifs-test-build">
-
-    <import file="test-build.xml"/>
-
-    <path id="mcf-ifs-test-build.test-classpath">
-        <path refid="mcf-test-build.test-classpath"/>
-        <fileset dir="../../connectors/filesystem/dist/lib">
-            <include name="*.jar"/>
-        </fileset>
-        <fileset dir="../../connectors/filesystem/build/test-jar">
-            <include name="*.jar"/>
-        </fileset>
-    </path>
-
-    <path id="test-classpath">
-        <path refid="mcf-ifs-test-build.test-classpath"/>
-    </path>
-
-    <target name="run-derby" depends="mcf-test-build.run-derby"/>
-    <target name="run-postgresql" depends="mcf-test-build.run-postgresql"/>
-    <target name="run-HSQLDB" depends="mcf-test-build.run-HSQLDB"/>
-    <target name="run-HSQLDBext" depends="mcf-test-build.run-HSQLDBext"/>
-    <target name="run-mysql" depends="mcf-test-build.run-mysql"/>
-    
-    <target name="run-load-derby" depends="mcf-test-build.run-load-derby"/>
-    <target name="run-load-postgresql" depends="mcf-test-build.run-load-postgresql"/>
-    <target name="run-load-HSQLDB" depends="mcf-test-build.run-load-HSQLDB"/>
-    <target name="run-load-HSQLDBext" depends="mcf-test-build.run-load-HSQLDBext"/>
-    <target name="run-load-mysql" depends="mcf-test-build.run-load-mysql"/>
-    
-    <target name="run-UI-derby" depends="mcf-test-build.run-UI-derby"/>
-    <target name="run-UI-postgresql" depends="mcf-test-build.run-UI-postgresql"/>
-    <target name="run-UI-HSQLDB" depends="mcf-test-build.run-UI-HSQLDB"/>
-    <target name="run-UI-HSQLDBext" depends="mcf-test-build.run-UI-HSQLDBext"/>
-    <target name="run-UI-mysql" depends="mcf-test-build.run-UI-mysql"/>
-    
-</project>
diff --git a/tests/ino-test-build.xml b/tests/ino-test-build.xml
deleted file mode 100644
index e2074fa..0000000
--- a/tests/ino-test-build.xml
+++ /dev/null
@@ -1,55 +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.
--->
-
-<!-- Include null output in addition to the test connector -->
-<project name="mcf-ino-test-build">
-
-    <import file="test-build.xml"/>
-
-    <path id="mcf-ino-test-build.test-classpath">
-        <path refid="mcf-test-build.test-classpath"/>
-        <fileset dir="../../connectors/nulloutput/dist/lib">
-            <include name="*.jar"/>
-        </fileset>
-        <fileset dir="../../connectors/nulloutput/build/test-jar">
-            <include name="*.jar"/>
-        </fileset>
-    </path>
-
-    <path id="test-classpath">
-        <path refid="mcf-ino-test-build.test-classpath"/>
-    </path>
-
-    <target name="run-derby" depends="mcf-test-build.run-derby"/>
-    <target name="run-postgresql" depends="mcf-test-build.run-postgresql"/>
-    <target name="run-HSQLDB" depends="mcf-test-build.run-HSQLDB"/>
-    <target name="run-HSQLDBext" depends="mcf-test-build.run-HSQLDBext"/>
-    <target name="run-mysql" depends="mcf-test-build.run-mysql"/>
-    
-    <target name="run-load-derby" depends="mcf-test-build.run-load-derby"/>
-    <target name="run-load-postgresql" depends="mcf-test-build.run-load-postgresql"/>
-    <target name="run-load-HSQLDB" depends="mcf-test-build.run-load-HSQLDB"/>
-    <target name="run-load-HSQLDBext" depends="mcf-test-build.run-load-HSQLDBext"/>
-    <target name="run-load-mysql" depends="mcf-test-build.run-load-mysql"/>
-    
-    <target name="run-UI-derby" depends="mcf-test-build.run-UI-derby"/>
-    <target name="run-UI-postgresql" depends="mcf-test-build.run-UI-postgresql"/>
-    <target name="run-UI-HSQLDB" depends="mcf-test-build.run-UI-HSQLDB"/>
-    <target name="run-UI-HSQLDBext" depends="mcf-test-build.run-UI-HSQLDBext"/>
-    <target name="run-UI-mysql" depends="mcf-test-build.run-UI-mysql"/>
-    
-</project>
diff --git a/tests/jcifs/build.xml b/tests/jcifs/build.xml
deleted file mode 100644
index 0295671..0000000
--- a/tests/jcifs/build.xml
+++ /dev/null
@@ -1,29 +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.
--->
-
-<project name="jcifs" default="all">
-
-    <import file="../ino-test-build.xml"/>
-
-    <path id="test-classpath">
-        <path refid="mcf-ino-test-build.test-classpath"/>
-        <fileset dir="../../connectors/jcifs/dist/lib-proprietary-only">
-            <include name="*.jar"/>
-        </fileset>
-    </path>
-
-</project>
diff --git a/tests/jdbc/build.xml b/tests/jdbc/build.xml
deleted file mode 100644
index b5fd9f2..0000000
--- a/tests/jdbc/build.xml
+++ /dev/null
@@ -1,22 +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.
--->
-
-<project name="jdbc" default="all">
-
-    <import file="../ino-test-build.xml"/>
-    
-</project>
diff --git a/tests/ldap/build.xml b/tests/ldap/build.xml
deleted file mode 100644
index ed722a9..0000000
--- a/tests/ldap/build.xml
+++ /dev/null
@@ -1,22 +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.
--->
-
-<project name="ldap" default="all">
-
-    <import file="../test-build.xml"/>
-    
-</project>
diff --git a/tests/nullauthority/build.xml b/tests/nullauthority/build.xml
deleted file mode 100644
index fbdd77b..0000000
--- a/tests/nullauthority/build.xml
+++ /dev/null
@@ -1,22 +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.
--->
-
-<project name="nullauthority" default="all">
-
-    <import file="../test-build.xml"/>
-    
-</project>
diff --git a/tests/nullauthority/src/test/java/org/apache/manifoldcf/nullauthority_tests/NavigationDerbyUI.java b/tests/nullauthority/src/test/java/org/apache/manifoldcf/nullauthority_tests/NavigationDerbyUI.java
deleted file mode 100644
index 52b14b7..0000000
--- a/tests/nullauthority/src/test/java/org/apache/manifoldcf/nullauthority_tests/NavigationDerbyUI.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/* $Id$ */
-
-/**
-* 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.
-*/
-package org.apache.manifoldcf.nullauthority_tests;
-
-import org.apache.manifoldcf.core.interfaces.*;
-import org.apache.manifoldcf.agents.interfaces.*;
-import org.apache.manifoldcf.crawler.interfaces.*;
-import org.apache.manifoldcf.crawler.system.ManifoldCF;
-
-import java.io.*;
-import java.util.*;
-import org.junit.*;
-
-import org.apache.manifoldcf.core.tests.HTMLTester;
-
-/** Basic UI navigation tests */
-public class NavigationDerbyUI extends BaseUIDerby
-{
-
-  @Test
-  public void createConnectionsAndJob()
-    throws Exception
-  {
-    testerInstance.newTest(Locale.US);
-    
-    HTMLTester.Window window;
-    HTMLTester.Link link;
-    HTMLTester.Form form;
-    HTMLTester.Textarea textarea;
-    HTMLTester.Selectbox selectbox;
-    HTMLTester.Button button;
-    HTMLTester.Radiobutton radiobutton;
-    HTMLTester.Loop loop;
-    
-    window = testerInstance.openMainWindow("http://localhost:8346/mcf-crawler-ui/index.jsp");
-    
-    // Login
-    form = window.findForm(testerInstance.createStringDescription("loginform"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("userID"));
-    textarea.setValue(testerInstance.createStringDescription("admin"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("password"));
-    textarea.setValue(testerInstance.createStringDescription("admin"));
-    button = window.findButton(testerInstance.createStringDescription("Login"));
-    button.click();
-    window = testerInstance.findWindow(null);
-
-    // Define an authority connection via the UI
-    link = window.findLink(testerInstance.createStringDescription("List authorities"));
-    link.click();
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Add a new connection"));
-    link.click();
-    // Fill in a name
-    window = testerInstance.findWindow(null);
-    form = window.findForm(testerInstance.createStringDescription("editconnection"));
-    textarea = form.findTextarea(testerInstance.createStringDescription("connname"));
-    textarea.setValue(testerInstance.createStringDescription("MyAuthorityConnection"));
-    link = window.findLink(testerInstance.createStringDescription("Type tab"));
-    link.click();
-    // Select a type
-    window = testerInstance.findWindow(null);
-    form = window.findForm(testerInstance.createStringDescription("editconnection"));
-    selectbox = form.findSelectbox(testerInstance.createStringDescription("classname"));
-    selectbox.selectValue(testerInstance.createStringDescription("org.apache.manifoldcf.authorities.authorities.nullauthority.NullAuthority"));
-    button = window.findButton(testerInstance.createStringDescription("Continue to next page"));
-    button.click();
-    // Go back to the Name tab
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Name tab"));
-    link.click();
-    // Now save the connection.
-    window = testerInstance.findWindow(null);
-    button = window.findButton(testerInstance.createStringDescription("Save this authority connection"));
-    button.click();
-
-    // Delete the authority connection
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("List authorities"));
-    link.click();
-    window = testerInstance.findWindow(null);
-    link = window.findLink(testerInstance.createStringDescription("Delete MyAuthorityConnection"));
-    link.click();
-
-    testerInstance.executeTest();
-  }
-  
-}
diff --git a/tests/opensearchserver/build.xml b/tests/opensearchserver/build.xml
deleted file mode 100644
index e71fb60..0000000
--- a/tests/opensearchserver/build.xml
+++ /dev/null
@@ -1,22 +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.
--->
-
-<project name="opensearchserver" default="all">
-
-    <import file="../ifs-test-build.xml"/>
-    
-</project>
diff --git a/tests/pom.xml b/tests/pom.xml
deleted file mode 100644
index 0f73462..0000000
--- a/tests/pom.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <parent>
-    <groupId>org.apache.manifoldcf</groupId>
-    <artifactId>mcf-parent</artifactId>
-    <version>1.6-SNAPSHOT</version>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>mcf-tests</artifactId>
-  <name>ManifoldCF - Tests</name>
-  <packaging>pom</packaging>
-  <modules>
-    <module>elasticsearch</module>
-    <module>alfresco</module> 
-    <module>wiki</module>
-    <module>cmis</module>
-    <module>filesystem</module>
-    <module>sharepoint</module>
-    <module>rss</module>
-    <module>webcrawler</module>
-  </modules>
-  <build>
-    <defaultGoal>integration-test</defaultGoal>
-  </build>
-</project>
\ No newline at end of file
diff --git a/tests/rss/build.xml b/tests/rss/build.xml
deleted file mode 100644
index e8702eb..0000000
--- a/tests/rss/build.xml
+++ /dev/null
@@ -1,22 +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.
--->
-
-<project name="rss" default="all">
-
-    <import file="../ino-test-build.xml"/>
-    
-</project>
diff --git a/tests/rss/pom.xml b/tests/rss/pom.xml
deleted file mode 100644
index 5e8c781..0000000
--- a/tests/rss/pom.xml
+++ /dev/null
@@ -1,306 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <parent>
-    <groupId>org.apache.manifoldcf</groupId>
-    <artifactId>mcf-tests</artifactId>
-    <version>1.6-SNAPSHOT</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-
-  <artifactId>mcf-rss-test</artifactId>
-  <name>ManifoldCF - Test - RSS</name>
-
-  <build>
-    <defaultGoal>integration-test</defaultGoal>
-    <plugins>
-      <plugin>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-           <execution>
-            <id>copy-war</id>
-            <phase>generate-resources</phase>
-            <goals>
-              <goal>copy</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>target/dependency</outputDirectory>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-api-service</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-authority-service</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-combined-service</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-crawler-ui</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                </artifactItem>
-              </artifactItems>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-failsafe-plugin</artifactId>
-        <version>2.10</version>
-        <configuration>
-          <skipTests>${skipITs}</skipTests>
-          <systemPropertyVariables>
-            <crawlerWarPath>../dependency/mcf-crawler-ui-${project.version}.war</crawlerWarPath>
-            <authorityserviceWarPath>../dependency/mcf-authority-service-${project.version}.war</authorityserviceWarPath>
-            <apiWarPath>../dependency/mcf-api-service-${project.version}.war</apiWarPath>
-            <combinedWarPath>../dependency/mcf-combined-service-${project.version}.war</combinedWarPath>
-          </systemPropertyVariables>
-          <excludes>
-            <exclude>**/*Postgresql*.java</exclude>
-            <exclude>**/*MySQL*.java</exclude>
-          </excludes>
-          <forkMode>always</forkMode>
-          <workingDirectory>target/test-output</workingDirectory>
-        </configuration>
-        <executions>
-          <execution>
-            <id>integration-test</id>
-            <goals>
-              <goal>integration-test</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>verify</id>
-            <goals>
-              <goal>verify</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-  <dependencies>
-    <!-- Internal dependencies -->
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-api-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-authority-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-combined-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-crawler-ui</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-agents</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-pull-agent</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-rss-connector</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-nulloutput-connector</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-server</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-util</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-webapp</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-servlet</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-http</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-io</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-security</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-continuation</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-xml</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-      <version>${slf4j.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-simple</artifactId>
-      <version>${slf4j.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jsp-api-2.1-glassfish</artifactId>
-      <version>${glassfish.version}</version>
-    </dependency>    
-    <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jsp-2.1-glassfish</artifactId>
-      <version>${glassfish.version}</version>
-    </dependency>
-    
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-core</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-agents</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-pull-agent</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>${junit.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>postgresql</groupId>
-      <artifactId>postgresql</artifactId>
-      <version>${postgresql.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.hsqldb</groupId>
-      <artifactId>hsqldb</artifactId>
-      <version>${hsqldb.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.derby</groupId>
-      <artifactId>derby</artifactId>
-      <version>${derby.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>mysql</groupId>
-      <artifactId>mysql-connector-java</artifactId>
-      <version>${mysql.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>httpclient</artifactId>
-      <version>${httpcomponent.httpclient.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-logging</groupId>
-      <artifactId>commons-logging</artifactId>
-      <version>${commons-logging.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-      <version>${commons-codec.version}</version>
-    </dependency>
-  </dependencies>
-</project>
\ No newline at end of file
diff --git a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BasePostgresql.java b/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BasePostgresql.java
deleted file mode 100644
index 8bff645..0000000
--- a/tests/rss/src/test/java/org/apache/manifoldcf/rss_tests/BasePostgresql.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/* $Id$ */
-
-/**
-* 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.
-*/
-package org.apache.manifoldcf.rss_tests;
-
-import org.apache.manifoldcf.core.interfaces.*;
-import org.apache.manifoldcf.agents.interfaces.*;
-import org.apache.manifoldcf.crawler.interfaces.*;
-import org.apache.manifoldcf.crawler.system.ManifoldCF;
-
-import java.io.*;
-import java.util.*;
-import org.junit.*;
-
-/** Tests that run the "agents daemon" should be derived from this */
-public class BasePostgresql extends org.apache.manifoldcf.crawler.tests.BaseITPostgresql
-{
-  protected String[] getConnectorNames()
-  {
-    return new String[]{"File Connector"};
-  }
-  
-  protected String[] getConnectorClasses()
-  {
-    return new String[]{"org.apache.manifoldcf.crawler.connectors.rss.RSSConnector"};
-  }
-  
-  protected String[] getOutputNames()
-  {
-    return new String[]{"Null Output"};
-  }
-  
-  protected String[] getOutputClasses()
-  {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
-  }
-  
-}
diff --git a/tests/sharepoint/build.xml b/tests/sharepoint/build.xml
deleted file mode 100644
index 16a5258..0000000
--- a/tests/sharepoint/build.xml
+++ /dev/null
@@ -1,22 +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.
--->
-
-<project name="sharepoint" default="all">
-
-    <import file="../ino-test-build.xml"/>
-    
-</project>
diff --git a/tests/sharepoint/pom.xml b/tests/sharepoint/pom.xml
deleted file mode 100644
index fa9d1e4..0000000
--- a/tests/sharepoint/pom.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <parent>
-    <groupId>org.apache.manifoldcf</groupId>
-    <artifactId>mcf-tests</artifactId>
-    <version>1.6-SNAPSHOT</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-
-  <artifactId>mcf-sharepoint-test</artifactId>
-  <name>ManifoldCF - Test - Sharepoint</name>
-
-  <dependencies>
-    <!-- Internal dependencies -->
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-api-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-authority-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-crawler-ui</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-core</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>${junit.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>postgresql</groupId>
-      <artifactId>postgresql</artifactId>
-      <version>${postgresql.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.hsqldb</groupId>
-      <artifactId>hsqldb</artifactId>
-      <version>${hsqldb.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.derby</groupId>
-      <artifactId>derby</artifactId>
-      <version>${derby.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>mysql</groupId>
-      <artifactId>mysql-connector-java</artifactId>
-      <version>${mysql.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>httpclient</artifactId>
-      <version>${httpcomponent.httpclient.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-logging</groupId>
-      <artifactId>commons-logging</artifactId>
-      <version>${commons-logging.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-      <version>${commons-codec.version}</version>
-    </dependency>
-  </dependencies>
-</project>
\ No newline at end of file
diff --git a/tests/solr/build.xml b/tests/solr/build.xml
deleted file mode 100644
index 2425978..0000000
--- a/tests/solr/build.xml
+++ /dev/null
@@ -1,22 +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.
--->
-
-<project name="solr" default="all">
-
-    <import file="../ifs-test-build.xml"/>
-    
-</project>
diff --git a/tests/test-build.xml b/tests/test-build.xml
deleted file mode 100644
index 388606a..0000000
--- a/tests/test-build.xml
+++ /dev/null
@@ -1,412 +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.
--->
-
-<project name="mcf-test-build">
-
-    <import file="../common-build.xml"/>
-    
-    <target name="clean">
-        <delete dir="build"/>
-        <delete dir="test-derby-output"/>
-        <delete dir="test-postgresql-output"/>
-        <delete dir="test-mysql-output"/>
-        <delete dir="test-HSQLDB-output"/>
-        <delete dir="test-HSQLDBext-output"/>
-    </target>
-
-    <path id="framework-classpath">
-        <fileset dir="../../lib">
-            <include name="json*.jar"/>
-            <include name="commons-codec*.jar"/>
-            <include name="commons-collections*.jar"/>
-            <include name="commons-el*.jar"/>
-            <include name="commons-fileupload*.jar"/>
-            <include name="httpcore*.jar"/>
-            <include name="httpclient*.jar"/>
-            <include name="commons-io*.jar"/>
-            <include name="commons-lang*.jar"/>
-            <include name="commons-logging*.jar"/>
-            <include name="ecj*.jar"/>
-            <include name="jasper*.jar"/>
-            <include name="jetty*.jar"/>
-            <include name="slf4j*.jar"/>
-            <include name="jsp-2.1*.jar"/>
-            <include name="jsp-api*.jar"/>
-            <include name="junit*.jar"/>
-            <include name="log4j*.jar"/>
-            <include name="serializer*.jar"/>
-            <include name="servlet-api*.jar"/>
-            <include name="juli*.jar"/>
-            <include name="xalan*.jar"/>
-            <include name="xercesImpl*.jar"/>
-            <include name="xml-apis*.jar"/>
-            <include name="velocity*.jar"/>
-        </fileset>
-        <fileset dir="../../lib">
-            <include name="postgresql*.jar"/>
-            <include name="derby*.jar"/>
-            <include name="hsqldb*.jar"/>
-        </fileset>
-        <fileset dir="../../lib-proprietary">
-            <include name="mysql*.jar"/>
-        </fileset>
-
-    </path>
-
-    <path id="mcf-test-build.test-classpath">
-        <path refid="framework-classpath"/>
-        <fileset dir="../../framework/build/jar">
-            <include name="*.jar"/>
-        </fileset>
-        <fileset dir="../../framework/build/test-jar">
-            <include name="*.jar"/>
-        </fileset>
-        <fileset dir="../../connectors/${ant.project.name}/dist/lib">
-            <include name="*.jar"/>
-        </fileset>
-        <fileset dir="../../connectors/${ant.project.name}/build/test-jar">
-            <include name="*.jar"/>
-        </fileset>
-    </path>
-    
-    <path id="test-classpath">
-        <path refid="mcf-test-build.test-classpath"/>
-    </path>
-
-    <target name="has-resources-check">
-        <available file="src/test/resources" property="hasResources"/>
-    </target>
-
-    <target name="compile-test-resources" depends="has-resources-check" if="hasResources">
-        <mkdir dir="build/test/classes"/>
-        <copy todir="build/test/classes">
-            <fileset dir="src/test/resources"/>
-        </copy>
-    </target>
-
-    <target name="compile-tests" depends="compile-test-resources">
-        <mkdir dir="build/test/classes"/>
-        <javac srcdir="src/test/java" destdir="build/test/classes" target="1.6" source="1.6" debug="true" debuglevel="lines,vars,source" encoding="UTF-8">
-            <classpath>
-                <path refid="test-classpath"/>
-            </classpath>
-        </javac>
-    </target>
-
-    <target name="run-derby" depends="compile-tests">
-        <mkdir dir="test-derby-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-derby-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war-proprietary/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war-proprietary/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war-proprietary/mcf-api-service.war"/>
-            <jvmarg value="-DcombinedWarPath=../../../framework/build/war-proprietary/mcf-combined-service.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-derby-output">
-                <fileset dir="build/test/classes">
-                    <include name="**/*DerbyIT.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-    
-    <target name="run-postgresql" depends="compile-tests">
-        <mkdir dir="test-postgresql-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-postgresql-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war-proprietary/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war-proprietary/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war-proprietary/mcf-api-service.war"/>
-            <jvmarg value="-DcombinedWarPath=../../../framework/build/war-proprietary/mcf-combined-service.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-postgresql-output">
-                <fileset dir="build/test/classes">
-                    <include name="**/*PostgresqlIT.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-    
-    <target name="run-HSQLDB" depends="compile-tests">
-        <mkdir dir="test-HSQLDB-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-HSQLDB-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war-proprietary/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war-proprietary/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war-proprietary/mcf-api-service.war"/>
-            <jvmarg value="-DcombinedWarPath=../../../framework/build/war-proprietary/mcf-combined-service.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-HSQLDB-output">
-                <fileset dir="build/test/classes">
-                    <include name="**/*HSQLDBIT.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-    
-    <target name="run-HSQLDBext" depends="compile-tests">
-        <mkdir dir="test-HSQLDBext-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-HSQLDBext-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war-proprietary/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war-proprietary/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war-proprietary/mcf-api-service.war"/>
-            <jvmarg value="-DcombinedWarPath=../../../framework/build/war-proprietary/mcf-combined-service.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-HSQLDBext-output">
-                <fileset dir="build/test/classes">
-                    <include name="**/*HSQLDBextIT.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-    
-    <target name="run-mysql" depends="compile-tests">
-        <mkdir dir="test-mysql-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-mysql-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war-proprietary/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war-proprietary/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war-proprietary/mcf-api-service.war"/>
-            <jvmarg value="-DcombinedWarPath=../../../framework/build/war-proprietary/mcf-combined-service.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-mysql-output">
-                <fileset dir="build/test/classes">
-                    <include name="**/*MySQLIT.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-    
-    <target name="run-load-derby" depends="compile-tests">
-        <mkdir dir="test-derby-output"/>
-        <junit fork="true" maxmemory="384m" dir="test-derby-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war-proprietary/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war-proprietary/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war-proprietary/mcf-api-service.war"/>
-            <jvmarg value="-DcombinedWarPath=../../../framework/build/war-proprietary/mcf-combined-service.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-derby-output">
-                <fileset dir="build/test/classes">
-                    <include name="**/*DerbyLT.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-    
-    <target name="run-load-postgresql" depends="compile-tests">
-        <mkdir dir="test-postgresql-output"/>
-        <junit fork="true" maxmemory="384m" dir="test-postgresql-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war-proprietary/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war-proprietary/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war-proprietary/mcf-api-service.war"/>
-            <jvmarg value="-DcombinedWarPath=../../../framework/build/war-proprietary/mcf-combined-service.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-postgresql-output">
-                <fileset dir="build/test/classes">
-                    <include name="**/*PostgresqlLT.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-    
-    <target name="run-load-HSQLDB" depends="compile-tests">
-        <mkdir dir="test-HSQLDB-output"/>
-        <junit fork="true" maxmemory="384m" dir="test-HSQLDB-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war-proprietary/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war-proprietary/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war-proprietary/mcf-api-service.war"/>
-            <jvmarg value="-DcombinedWarPath=../../../framework/build/war-proprietary/mcf-combined-service.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-HSQLDB-output">
-                <fileset dir="build/test/classes">
-                    <include name="**/*HSQLDBLT.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-    
-    <target name="run-load-HSQLDBext" depends="compile-tests">
-        <mkdir dir="test-HSQLDBext-output"/>
-        <junit fork="true" maxmemory="384m" dir="test-HSQLDBext-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war-proprietary/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war-proprietary/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war-proprietary/mcf-api-service.war"/>
-            <jvmarg value="-DcombinedWarPath=../../../framework/build/war-proprietary/mcf-combined-service.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-HSQLDBext-output">
-                <fileset dir="build/test/classes">
-                    <include name="**/*HSQLDBextLT.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-    
-    <target name="run-load-mysql" depends="compile-tests">
-        <mkdir dir="test-mysql-output"/>
-        <junit fork="true" maxmemory="384m" dir="test-mysql-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war-proprietary/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war-proprietary/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war-proprietary/mcf-api-service.war"/>
-            <jvmarg value="-DcombinedWarPath=../../../framework/build/war-proprietary/mcf-combined-service.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-mysql-output">
-                <fileset dir="build/test/classes">
-                    <include name="**/*MySQLLT.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-    
-    <target name="run-UI-derby" depends="compile-tests">
-        <mkdir dir="test-derby-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-derby-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war-proprietary/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war-proprietary/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war-proprietary/mcf-api-service.war"/>
-            <jvmarg value="-DcombinedWarPath=../../../framework/build/war-proprietary/mcf-combined-service.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-derby-output">
-                <fileset dir="build/test/classes">
-                    <include name="**/*DerbyUI.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-    
-    <target name="run-UI-postgresql" depends="compile-tests">
-        <mkdir dir="test-postgresql-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-postgresql-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war-proprietary/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war-proprietary/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war-proprietary/mcf-api-service.war"/>
-            <jvmarg value="-DcombinedWarPath=../../../framework/build/war-proprietary/mcf-combined-service.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-postgresql-output">
-                <fileset dir="build/test/classes">
-                    <include name="**/*PostgresqlUI.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-
-    <target name="run-UI-HSQLDB" depends="compile-tests">
-        <mkdir dir="test-HSQLDB-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-HSQLDB-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war-proprietary/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war-proprietary/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war-proprietary/mcf-api-service.war"/>
-            <jvmarg value="-DcombinedWarPath=../../../framework/build/war-proprietary/mcf-combined-service.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-HSQLDB-output">
-                <fileset dir="build/test/classes">
-                    <include name="**/*HSQLDBUI.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-    
-    <target name="run-UI-HSQLDBext" depends="compile-tests">
-        <mkdir dir="test-HSQLDBext-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-HSQLDBext-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war-proprietary/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war-proprietary/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war-proprietary/mcf-api-service.war"/>
-            <jvmarg value="-DcombinedWarPath=../../../framework/build/war-proprietary/mcf-combined-service.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-HSQLDBext-output">
-                <fileset dir="build/test/classes">
-                    <include name="**/*HSQLDBextUI.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-    
-    <target name="run-UI-mysql" depends="compile-tests">
-        <mkdir dir="test-mysql-output"/>
-        <junit fork="true" maxmemory="128m" dir="test-mysql-output" outputtoformatters="true" showoutput="true" haltonfailure="true">
-            <jvmarg value="-DcrawlerWarPath=../../../framework/build/war-proprietary/mcf-crawler-ui.war"/>
-            <jvmarg value="-DauthorityserviceWarPath=../../../framework/build/war-proprietary/mcf-authority-service.war"/>
-            <jvmarg value="-DapiWarPath=../../../framework/build/war-proprietary/mcf-api-service.war"/>
-            <jvmarg value="-DcombinedWarPath=../../../framework/build/war-proprietary/mcf-combined-service.war"/>
-            <classpath>
-                <path refid="test-classpath"/>
-                <pathelement location="build/test/classes"/>
-            </classpath>
-            <formatter type="brief" usefile="false"/>
-            <batchtest todir="test-mysql-output">
-                <fileset dir="build/test/classes">
-                    <include name="**/*MySQLUI.class"/>
-                </fileset>
-            </batchtest>
-        </junit>
-    </target>
-    
-    <target name="all"/>
-    
-</project>
diff --git a/tests/webcrawler/build.xml b/tests/webcrawler/build.xml
deleted file mode 100644
index b535f57..0000000
--- a/tests/webcrawler/build.xml
+++ /dev/null
@@ -1,22 +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.
--->
-
-<project name="webcrawler" default="all">
-
-    <import file="../ino-test-build.xml"/>
-    
-</project>
diff --git a/tests/webcrawler/pom.xml b/tests/webcrawler/pom.xml
deleted file mode 100644
index 3e3b1c1..0000000
--- a/tests/webcrawler/pom.xml
+++ /dev/null
@@ -1,292 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <parent>
-    <groupId>org.apache.manifoldcf</groupId>
-    <artifactId>mcf-tests</artifactId>
-    <version>1.6-SNAPSHOT</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-
-  <artifactId>mcf-webcrawler-test</artifactId>
-  <name>ManifoldCF - Test - Webcrawler</name>
-
-  <build>
-    <defaultGoal>integration-test</defaultGoal>
-    <plugins>
-      <plugin>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-           <execution>
-            <id>copy-war</id>
-            <phase>generate-resources</phase>
-            <goals>
-              <goal>copy</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>target/dependency</outputDirectory>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-api-service</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-authority-service</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-crawler-ui</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                </artifactItem>
-              </artifactItems>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-failsafe-plugin</artifactId>
-        <version>2.10</version>
-        <configuration>
-          <skipTests>${skipITs}</skipTests>
-          <systemPropertyVariables>
-            <crawlerWarPath>../dependency/mcf-crawler-ui-${project.version}.war</crawlerWarPath>
-            <authorityserviceWarPath>../dependency/mcf-authority-service-${project.version}.war</authorityserviceWarPath>
-            <apiWarPath>../dependency/mcf-api-service-${project.version}.war</apiWarPath>
-          </systemPropertyVariables>
-          <excludes>
-            <exclude>**/*Postgresql*.java</exclude>
-            <exclude>**/*MySQL*.java</exclude>
-          </excludes>
-          <forkMode>always</forkMode>
-          <workingDirectory>target/test-output</workingDirectory>
-        </configuration>
-        <executions>
-          <execution>
-            <id>integration-test</id>
-            <goals>
-              <goal>integration-test</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>verify</id>
-            <goals>
-              <goal>verify</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-  <dependencies>
-    <!-- Internal dependencies -->
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-api-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-authority-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-crawler-ui</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-agents</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-pull-agent</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-web-connector</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-nulloutput-connector</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-server</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-util</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-webapp</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-servlet</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-http</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-io</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-security</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-continuation</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-xml</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-      <version>${slf4j.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-simple</artifactId>
-      <version>${slf4j.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jsp-api-2.1-glassfish</artifactId>
-      <version>${glassfish.version}</version>
-    </dependency>    
-    <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jsp-2.1-glassfish</artifactId>
-      <version>${glassfish.version}</version>
-    </dependency>
-    
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-core</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-agents</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-pull-agent</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>${junit.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>postgresql</groupId>
-      <artifactId>postgresql</artifactId>
-      <version>${postgresql.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.hsqldb</groupId>
-      <artifactId>hsqldb</artifactId>
-      <version>${hsqldb.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.derby</groupId>
-      <artifactId>derby</artifactId>
-      <version>${derby.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>mysql</groupId>
-      <artifactId>mysql-connector-java</artifactId>
-      <version>${mysql.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>httpclient</artifactId>
-      <version>${httpcomponent.httpclient.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-logging</groupId>
-      <artifactId>commons-logging</artifactId>
-      <version>${commons-logging.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-      <version>${commons-codec.version}</version>
-    </dependency>
-  </dependencies>
-</project>
\ No newline at end of file
diff --git a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BasePostgresql.java b/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BasePostgresql.java
deleted file mode 100644
index bff9f2c..0000000
--- a/tests/webcrawler/src/test/java/org/apache/manifoldcf/webcrawler_tests/BasePostgresql.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/* $Id$ */
-
-/**
-* 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.
-*/
-package org.apache.manifoldcf.webcrawler_tests;
-
-import org.apache.manifoldcf.core.interfaces.*;
-import org.apache.manifoldcf.agents.interfaces.*;
-import org.apache.manifoldcf.crawler.interfaces.*;
-import org.apache.manifoldcf.crawler.system.ManifoldCF;
-
-import java.io.*;
-import java.util.*;
-import org.junit.*;
-
-/** Tests that run the "agents daemon" should be derived from this */
-public class BasePostgresql extends org.apache.manifoldcf.crawler.tests.BaseITPostgresql
-{
-  protected String[] getConnectorNames()
-  {
-    return new String[]{"Web Connector"};
-  }
-  
-  protected String[] getConnectorClasses()
-  {
-    return new String[]{"org.apache.manifoldcf.crawler.connectors.webcrawler.WebcrawlerConnector"};
-  }
-  
-  protected String[] getOutputNames()
-  {
-    return new String[]{"Null Output"};
-  }
-  
-  protected String[] getOutputClasses()
-  {
-    return new String[]{"org.apache.manifoldcf.agents.output.nullconnector.NullConnector"};
-  }
-  
-}
diff --git a/tests/wiki/build.xml b/tests/wiki/build.xml
deleted file mode 100644
index 4db3d9e..0000000
--- a/tests/wiki/build.xml
+++ /dev/null
@@ -1,22 +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.
--->
-
-<project name="wiki" default="all">
-
-    <import file="../ino-test-build.xml"/>
-    
-</project>
diff --git a/tests/wiki/pom.xml b/tests/wiki/pom.xml
deleted file mode 100644
index 99ec463..0000000
--- a/tests/wiki/pom.xml
+++ /dev/null
@@ -1,298 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- 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.
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <parent>
-    <groupId>org.apache.manifoldcf</groupId>
-    <artifactId>mcf-tests</artifactId>
-    <version>1.6-SNAPSHOT</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-
-  <artifactId>mcf-wiki-test</artifactId>
-  <name>ManifoldCF - Test - Wiki</name>
-
-  <build>
-    <defaultGoal>test</defaultGoal>
-    <plugins>
-      <plugin>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-           <execution>
-            <id>copy-war</id>
-            <phase>generate-resources</phase>
-            <goals>
-              <goal>copy</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>target/dependency</outputDirectory>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-api-service</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-authority-service</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                </artifactItem>
-                <artifactItem>
-                  <groupId>${project.groupId}</groupId>
-                  <artifactId>mcf-crawler-ui</artifactId>
-                  <version>${project.version}</version>
-                  <type>war</type>
-                  <overWrite>false</overWrite>
-                </artifactItem>
-              </artifactItems>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-failsafe-plugin</artifactId>
-        <version>2.10</version>
-        <configuration>
-          <skipTests>${skipITs}</skipTests>
-          <systemPropertyVariables>
-            <crawlerWarPath>../dependency/mcf-crawler-ui-${project.version}.war</crawlerWarPath>
-            <authorityserviceWarPath>../dependency/mcf-authority-service-${project.version}.war</authorityserviceWarPath>
-            <apiWarPath>../dependency/mcf-api-service-${project.version}.war</apiWarPath>
-          </systemPropertyVariables>
-          <excludes>
-            <exclude>**/*Postgresql*.java</exclude>
-            <exclude>**/*MySQL*.java</exclude>
-          </excludes>
-          <forkMode>always</forkMode>
-          <workingDirectory>target/test-output</workingDirectory>
-        </configuration>
-        <executions>
-          <execution>
-            <id>integration-test</id>
-            <goals>
-              <goal>integration-test</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>verify</id>
-            <goals>
-              <goal>verify</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-
-    </plugins>
-  </build>
-
-  <dependencies>
-    <!-- Internal dependencies -->
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-api-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-authority-service</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-crawler-ui</artifactId>
-      <version>${project.version}</version>
-      <type>war</type>
-    </dependency>
-
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-core</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-agents</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-pull-agent</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-wiki-connector</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-nulloutput-connector</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-    
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-server</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-util</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-webapp</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-servlet</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-http</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-io</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-security</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-continuation</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-xml</artifactId>
-      <version>${jetty.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-      <version>${slf4j.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-simple</artifactId>
-      <version>${slf4j.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jsp-api-2.1-glassfish</artifactId>
-      <version>${glassfish.version}</version>
-    </dependency>    
-    <dependency>
-      <groupId>org.mortbay.jetty</groupId>
-      <artifactId>jsp-2.1-glassfish</artifactId>
-      <version>${glassfish.version}</version>
-    </dependency>
-
-    <dependency>
-      <groupId>xerces</groupId>
-      <artifactId>xercesImpl</artifactId>
-      <version>${xerces.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-core</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-agents</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mcf-pull-agent</artifactId>
-      <version>${project.version}</version>
-      <type>test-jar</type>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>${junit.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>postgresql</groupId>
-      <artifactId>postgresql</artifactId>
-      <version>${postgresql.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.hsqldb</groupId>
-      <artifactId>hsqldb</artifactId>
-      <version>${hsqldb.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.derby</groupId>
-      <artifactId>derby</artifactId>
-      <version>${derby.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>mysql</groupId>
-      <artifactId>mysql-connector-java</artifactId>
-      <version>${mysql.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.httpcomponents</groupId>
-      <artifactId>httpclient</artifactId>
-      <version>${httpcomponent.httpclient.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-logging</groupId>
-      <artifactId>commons-logging</artifactId>
-      <version>${commons-logging.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-      <version>${commons-codec.version}</version>
-    </dependency>
-  </dependencies>
-</project>
\ No newline at end of file