diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..dfdb8b7
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+*.sh text eol=lf
diff --git a/KEYS b/KEYS
index 5e8abae..5c7663a 100644
--- a/KEYS
+++ b/KEYS
@@ -1738,30 +1738,99 @@
 uid           [ultimate] Alex O'Ree <alexoree@apache.org>
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 
-mQINBFv3+7oBEADXMQXwYMxs45ePjno3XcOouM5NMCYsKk6qmrCBr2ffLLTPER6M
-9KtyYAqCqe1DQmB0BRau1GuBRN6mydzILjVaJ6B1S+SsDGHOTDpTVyKUKSkQ292X
-KzGq3w5xqvQ1ZP1Iob38XvGQDR2vKnqDeZhVcCsDrbMPBpO3bxCCwrztwHogGZiA
-wejypOGlYz3stRY7SKvFkuuH75An6KGx/C9VDh8EH0tUT3hQ09On1/m6+I/8X3YR
-WUhCj5WuUg9oaI0MCd9CjgKRH7PEnemFhb1iXBxcOn8vC8hRmYqsl54gIhfF9T8P
-HdyTfqji7AKNu3zz3yiiaqlteZewxFyjhwnjvmJMQ+D5Mt9ZfexuDIMY7319psiY
-w8x8CuDb1NPq3vR/P0oo5baldIk2r3K0uOdXBGOls1bbqUTv2V+fFdAzk7qC+kxU
-PrEpkFKMKd2jtkcO/0Qfgn5r5r7aU1AyGRbXT7fySMT2/6GFu4XSrVWBtjFP9u7F
-5ELb19dFaQk6eUCr+ZMTwz5TP6pajDp3NSBX+lXZipYHQEIcwk0P8kSwHwqVUhgr
-uAlyy5E/bvmBxX0nFZVbGwlUedT2OkwhU2FeQKfMG9Ohimpx0qK0XQbRRAaJ8AI9
-ws3rC/RkPdfOZvgIdGScf+aNJNb9/5pnSUx+bpBppg7MhbWTnRkkCR1qsQARAQAB
-tCBBbGV4IE8nUmVlIDxhbGV4b3JlZUBhcGFjaGUub3JnPokCVAQTAQgAPhYhBDoa
-r6m4mh0d3V86S5itLhm/9BBtBQJb9/u6AhsDBQkJZgGABQsJCAcCBhUKCQgLAgQW
-AgMBAh4BAheAAAoJEJitLhm/9BBt8jEQAKU8DFRyiVFVK+k+TwVIFgS7ZF3uV48p
-6I6VSCZUQsWYJWu0LnT8k/vi1lSz3i4080J5vB/8pkuYtJW3Bfv15BcZ6xDg9Asm
-XcAvt/sS315x+TyjBeqvfi3yJEVlCySduc3PeoMVLOZmtPcmbeajAmHh9P1TkZ7g
-f9sXtdzXrnViwMYMs+CN91qlWCfZJopfomEf1aazhJixYfjjh12wwSfLRsa7cHWd
-XeuTdXg7xAOnegLLdfzgzpQdRC67QM6K6GmucqY0dCKIWIgN1UuV5n33336fI0WB
-RR+LKGTZK39l2ddh0iizurJO9QYM4m8FmhVmym2e/2ClY3N1QniXU1a8ZGIPlSIS
-/tbyMYXt+3CiP9P+nyrQKoilCX54L1RdwOrDb7Z1B4DnQqls6MrdEphHtZMdDkeX
-INBX9q3P7J4SrwA5xAbvevaVHJ5mk7rgmG2V1FVGmDeX8ACF4ONfOs4T4C1bTMhw
-SOM+ulVAtr1nsrDZWO7/Kv9LlVXr1/pbOZuRp6ioveQlZZNzzfjLm4WxpeTqeQ4w
-PJzYFhDkrJXyb4GOhnsyVyHclxnMWP3xB0iV4BFyY92SMIPfnaoLoI4sBui+Ua7i
-PUwMIH473BaLm7fvqothns0DAmXYd+VKpAx0zta0ucya0wtBXY0xaz7h4vVHB6zJ
-Ui44RuYe758D
-=LGw7
+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
+=wX6S
 -----END PGP PUBLIC KEY BLOCK-----
+
diff --git a/RELEASE_NOTES.html b/RELEASE_NOTES.html
index 36a181f..bb08eca 100644
--- a/RELEASE_NOTES.html
+++ b/RELEASE_NOTES.html
@@ -15,6 +15,34 @@
  *
  * -->
  
+ 
+
+        Release Notes - jUDDI - Version 3.3.6
+            
+<h2>        Bug
+</h2>
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/JUDDI-992'>JUDDI-992</a>] -         FindBinding API call doesn&#39;t exactly match the spec, can&#39;t search for just the service key
+</li>
+<li>[<a href='https://issues.apache.org/jira/browse/JUDDI-994'>JUDDI-994</a>] -         Bash scripts containing windows CRLF line endings
+</li>
+</ul>
+                
+<h2>        Improvement
+</h2>
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/JUDDI-988'>JUDDI-988</a>] -         Update to tomcat 9
+</li>
+</ul>
+            
+<h2>        Task
+</h2>
+<ul>
+<li>[<a href='https://issues.apache.org/jira/browse/JUDDI-962'>JUDDI-962</a>] -         Convert juddi.apache.org back to mvn site
+</li>
+</ul>
+                                                                                                                                        
+                                                                                                                                        
         Release Notes - jUDDI - Version 3.3.5
                                 
 <h2>        Bug
diff --git a/docs/asciidoc/ClientGuide/pom.xml b/docs/asciidoc/ClientGuide/pom.xml
index e9072c6..546044d 100644
--- a/docs/asciidoc/ClientGuide/pom.xml
+++ b/docs/asciidoc/ClientGuide/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <groupId>org.apache.juddi.juddi-docs</groupId>
         <artifactId>juddi-guide-parent</artifactId>
-        <version>3.3.6-SNAPSHOT</version>
+        <version>3.3.7-SNAPSHOT</version>
     </parent>
     <artifactId>juddi-client-guide</artifactId>
     <packaging>jdocbook</packaging>
diff --git a/docs/asciidoc/Guide/pom.xml b/docs/asciidoc/Guide/pom.xml
index 4d0dec8..8d6ad41 100644
--- a/docs/asciidoc/Guide/pom.xml
+++ b/docs/asciidoc/Guide/pom.xml
@@ -19,7 +19,7 @@
     <parent>
         <groupId>org.apache.juddi.juddi-docs</groupId>
         <artifactId>juddi-guide-parent</artifactId>
-        <version>3.3.6-SNAPSHOT</version>
+        <version>3.3.7-SNAPSHOT</version>
     </parent>
     <artifactId>juddi-guide</artifactId>
     <packaging>jdocbook</packaging>
diff --git a/docs/asciidoc/pom.xml b/docs/asciidoc/pom.xml
index 4bd5fa2..c26cac7 100644
--- a/docs/asciidoc/pom.xml
+++ b/docs/asciidoc/pom.xml
@@ -19,7 +19,7 @@
 	<parent>
         <groupId>org.apache.juddi.juddi-docs</groupId>
         <artifactId>juddi-docs</artifactId>
-        <version>3.3.6-SNAPSHOT</version>
+        <version>3.3.7-SNAPSHOT</version>
     </parent>
 	<packaging>pom</packaging>
 	<groupId>org.apache.juddi.juddi-docs</groupId>
diff --git a/docs/dist/pom.xml b/docs/dist/pom.xml
index fbf6878..7e16330 100644
--- a/docs/dist/pom.xml
+++ b/docs/dist/pom.xml
@@ -12,7 +12,7 @@
 	<parent>
 		<groupId>org.apache.juddi.juddi-docs</groupId>
 		<artifactId>juddi-docs</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 	</parent>
 	<artifactId>juddi-docs-dist</artifactId>
 	<name>jUDDI Document Packaging</name>
diff --git a/docs/pom.xml b/docs/pom.xml
index f14e131..c7ae90d 100644
--- a/docs/pom.xml
+++ b/docs/pom.xml
@@ -12,7 +12,7 @@
 	<parent>
 		<groupId>org.apache.juddi</groupId>
 		<artifactId>juddi-parent</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 	</parent>
 	<groupId>org.apache.juddi.juddi-docs</groupId>
 	<artifactId>juddi-docs</artifactId>
diff --git a/juddi-client-cli/pom.xml b/juddi-client-cli/pom.xml
index 6903358..7bc3949 100644
--- a/juddi-client-cli/pom.xml
+++ b/juddi-client-cli/pom.xml
@@ -20,11 +20,11 @@
      <parent>
         <groupId>org.apache.juddi</groupId>
         <artifactId>juddi-parent</artifactId>
-        <version>3.3.6-SNAPSHOT</version>
+        <version>3.3.7-SNAPSHOT</version>
     </parent> 
     <groupId>org.apache.juddi</groupId>
     <artifactId>juddi-client-cli</artifactId>
-    <version>3.3.6-SNAPSHOT</version>
+    <version>3.3.7-SNAPSHOT</version>
     <packaging>jar</packaging>
 
     <name>jUDDI CLI Client</name>
diff --git a/juddi-client/pom.xml b/juddi-client/pom.xml
index 804b7f3..f28ac19 100644
--- a/juddi-client/pom.xml
+++ b/juddi-client/pom.xml
@@ -20,7 +20,7 @@
 	<parent>
 		<groupId>org.apache.juddi</groupId>
 		<artifactId>juddi-parent</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 	</parent> 
 	<artifactId>juddi-client</artifactId>
 	<packaging>bundle</packaging>
diff --git a/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClient.java b/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClient.java
index e7b83e5..62439c5 100644
--- a/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClient.java
+++ b/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClient.java
@@ -510,77 +510,77 @@
                         bt.setTModelInstanceDetails(new TModelInstanceDetails());
                 }
                 TModelInstanceInfo tModelInstanceInfo;
-                if (!Exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.PROTOCOL_SOAP)) {
+                if (!exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.PROTOCOL_SOAP)) {
                         tModelInstanceInfo = new TModelInstanceInfo();
                         tModelInstanceInfo.setTModelKey(UDDIConstants.PROTOCOL_SOAP);
                         bt.getTModelInstanceDetails().getTModelInstanceInfo().add(tModelInstanceInfo);
                 }
 
                 if (bt.getAccessPoint() != null && bt.getAccessPoint().getValue().startsWith("http:")) {
-                        if (!Exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_HTTP)) {
+                        if (!exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_HTTP)) {
                                 tModelInstanceInfo = new TModelInstanceInfo();
                                 tModelInstanceInfo.setTModelKey(UDDIConstants.TRANSPORT_HTTP);
                                 bt.getTModelInstanceDetails().getTModelInstanceInfo().add(tModelInstanceInfo);
                         }
                 }
                 if (bt.getAccessPoint() != null && bt.getAccessPoint().getValue().startsWith("jms:")) {
-                        if (!Exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_JMS)) {
+                        if (!exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_JMS)) {
                                 tModelInstanceInfo = new TModelInstanceInfo();
                                 tModelInstanceInfo.setTModelKey(UDDIConstants.TRANSPORT_JMS);
                                 bt.getTModelInstanceDetails().getTModelInstanceInfo().add(tModelInstanceInfo);
                         }
                 }
                 if (bt.getAccessPoint() != null && bt.getAccessPoint().getValue().startsWith("rmi:")) {
-                        if (!Exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_RMI)) {
+                        if (!exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_RMI)) {
                                 tModelInstanceInfo = new TModelInstanceInfo();
                                 tModelInstanceInfo.setTModelKey(UDDIConstants.TRANSPORT_RMI);
                                 bt.getTModelInstanceDetails().getTModelInstanceInfo().add(tModelInstanceInfo);
                         }
                 }
                 if (bt.getAccessPoint() != null && bt.getAccessPoint().getValue().startsWith("udp:")) {
-                        if (!Exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_UDP)) {
+                        if (!exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_UDP)) {
                                 tModelInstanceInfo = new TModelInstanceInfo();
                                 tModelInstanceInfo.setTModelKey(UDDIConstants.TRANSPORT_UDP);
                                 bt.getTModelInstanceDetails().getTModelInstanceInfo().add(tModelInstanceInfo);
                         }
                 }
                 if (bt.getAccessPoint() != null && bt.getAccessPoint().getValue().startsWith("amqp:")) {
-                        if (!Exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_AMQP)) {
+                        if (!exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_AMQP)) {
                                 tModelInstanceInfo = new TModelInstanceInfo();
                                 tModelInstanceInfo.setTModelKey(UDDIConstants.TRANSPORT_AMQP);
                                 bt.getTModelInstanceDetails().getTModelInstanceInfo().add(tModelInstanceInfo);
                         }
                 }
                 if (bt.getAccessPoint() != null && bt.getAccessPoint().getValue().startsWith("mailto:")) {
-                        if (!Exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_EMAIL)) {
+                        if (!exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_EMAIL)) {
                                 tModelInstanceInfo = new TModelInstanceInfo();
                                 tModelInstanceInfo.setTModelKey(UDDIConstants.TRANSPORT_EMAIL);
                                 bt.getTModelInstanceDetails().getTModelInstanceInfo().add(tModelInstanceInfo);
                         }
                 }
                 if (bt.getAccessPoint() != null && bt.getAccessPoint().getValue().startsWith("ftp:")) {
-                        if (!Exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_FTP)) {
+                        if (!exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_FTP)) {
                                 tModelInstanceInfo = new TModelInstanceInfo();
                                 tModelInstanceInfo.setTModelKey(UDDIConstants.TRANSPORT_FTP);
                                 bt.getTModelInstanceDetails().getTModelInstanceInfo().add(tModelInstanceInfo);
                         }
                 }
                 if (bt.getAccessPoint() != null && bt.getAccessPoint().getValue().startsWith("https:")) {
-                        if (!Exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.PROTOCOL_SSLv3)) {
+                        if (!exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.PROTOCOL_SSLv3)) {
                                 tModelInstanceInfo = new TModelInstanceInfo();
                                 tModelInstanceInfo.setTModelKey(UDDIConstants.PROTOCOL_SSLv3);
                                 bt.getTModelInstanceDetails().getTModelInstanceInfo().add(tModelInstanceInfo);
                         }
                 }
                 if (bt.getAccessPoint() != null && bt.getAccessPoint().getValue().startsWith("ftps:")) {
-                        if (!Exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.PROTOCOL_SSLv3)) {
+                        if (!exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.PROTOCOL_SSLv3)) {
                                 tModelInstanceInfo = new TModelInstanceInfo();
                                 tModelInstanceInfo.setTModelKey(UDDIConstants.PROTOCOL_SSLv3);
                                 bt.getTModelInstanceDetails().getTModelInstanceInfo().add(tModelInstanceInfo);
                         }
                 }
                 if (bt.getAccessPoint() != null && bt.getAccessPoint().getValue().startsWith("jndi:")) {
-                        if (!Exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_JNDI_RMI)) {
+                        if (!exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_JNDI_RMI)) {
                                 tModelInstanceInfo = new TModelInstanceInfo();
                                 tModelInstanceInfo.setTModelKey(UDDIConstants.TRANSPORT_JNDI_RMI);
                                 bt.getTModelInstanceDetails().getTModelInstanceInfo().add(tModelInstanceInfo);
@@ -601,21 +601,21 @@
                         bt.setTModelInstanceDetails(new TModelInstanceDetails());
                 }
                 TModelInstanceInfo tModelInstanceInfo;
-                if (!Exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.PROTOCOL_REST)) {
+                if (!exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.PROTOCOL_REST)) {
                         tModelInstanceInfo = new TModelInstanceInfo();
                         tModelInstanceInfo.setTModelKey(UDDIConstants.PROTOCOL_REST);
                         bt.getTModelInstanceDetails().getTModelInstanceInfo().add(tModelInstanceInfo);
                 }
 
                 if (bt.getAccessPoint() != null && bt.getAccessPoint().getValue().startsWith("http:")) {
-                        if (!Exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_HTTP)) {
+                        if (!exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.TRANSPORT_HTTP)) {
                                 tModelInstanceInfo = new TModelInstanceInfo();
                                 tModelInstanceInfo.setTModelKey(UDDIConstants.TRANSPORT_HTTP);
                                 bt.getTModelInstanceDetails().getTModelInstanceInfo().add(tModelInstanceInfo);
                         }
                 }
                 if (bt.getAccessPoint() != null && bt.getAccessPoint().getValue().startsWith("https:")) {
-                        if (!Exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.PROTOCOL_SSLv3)) {
+                        if (!exists(bt.getTModelInstanceDetails().getTModelInstanceInfo(), UDDIConstants.PROTOCOL_SSLv3)) {
                                 tModelInstanceInfo = new TModelInstanceInfo();
                                 tModelInstanceInfo.setTModelKey(UDDIConstants.PROTOCOL_SSLv3);
                                 bt.getTModelInstanceDetails().getTModelInstanceInfo().add(tModelInstanceInfo);
@@ -624,7 +624,7 @@
                 return bt;
         }
 
-        private static boolean Exists(List<TModelInstanceInfo> items, String key) {
+        private static boolean exists(List<TModelInstanceInfo> items, String key) {
                 for (int i = 0; i < items.size(); i++) {
                         if (items.get(i).getTModelKey() != null
                                 && items.get(i).getTModelKey().equalsIgnoreCase(key)) {
diff --git a/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/JAXWSTransport.java b/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/JAXWSTransport.java
index be36ea5..57a411c 100644
--- a/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/JAXWSTransport.java
+++ b/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/JAXWSTransport.java
@@ -81,7 +81,7 @@
                         Map<String, Object> requestContext = ((BindingProvider) inquiryService).getRequestContext();
                         if (endpointURL != null) {
                         
-                        requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL);
+                                requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL);
                         }
                         setCredentials(requestContext);
                 } catch (Exception e) {
@@ -127,7 +127,7 @@
                         }
                         Map<String, Object> requestContext = ((BindingProvider) publishService).getRequestContext();
                         if (endpointURL != null)
-                        requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL);
+                                requestContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL);
                         setCredentials(requestContext);
                 } catch (Exception e) {
                         throw new TransportException(e.getMessage(), e);
diff --git a/juddi-core-openjpa/pom.xml b/juddi-core-openjpa/pom.xml
index ccbb270..e8bc864 100644
--- a/juddi-core-openjpa/pom.xml
+++ b/juddi-core-openjpa/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.juddi</groupId>
         <artifactId>juddi-parent</artifactId>
-        <version>3.3.6-SNAPSHOT</version>
+        <version>3.3.7-SNAPSHOT</version>
     </parent>
     <artifactId>juddi-core-openjpa</artifactId>
     <packaging>bundle</packaging>
diff --git a/juddi-core/pom.xml b/juddi-core/pom.xml
index 1f83029..7aab1e0 100644
--- a/juddi-core/pom.xml
+++ b/juddi-core/pom.xml
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.apache.juddi</groupId>
         <artifactId>juddi-parent</artifactId>
-        <version>3.3.6-SNAPSHOT</version>
+        <version>3.3.7-SNAPSHOT</version>
     </parent>
     <artifactId>juddi-core</artifactId>
     <packaging>bundle</packaging>
diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
index a4ea297..83b7fab 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
@@ -1318,8 +1318,7 @@
                         }
 
                         StringBuilder sql = new StringBuilder();
-                        sql.append("select distinct c from ReplicationConfiguration c ");
-                        sql.toString();
+                        sql.append("select distinct c from Subscription c ");
                         Query qry = em.createQuery(sql.toString());
                         List<org.apache.juddi.model.Subscription> resultList = qry.getResultList();
                         for (int i = 0; i < resultList.size(); i++) {
diff --git a/juddi-core/src/main/java/org/apache/juddi/model/TmodelInstanceInfo.java b/juddi-core/src/main/java/org/apache/juddi/model/TmodelInstanceInfo.java
index 0996eb1..6c9b37b 100644
--- a/juddi-core/src/main/java/org/apache/juddi/model/TmodelInstanceInfo.java
+++ b/juddi-core/src/main/java/org/apache/juddi/model/TmodelInstanceInfo.java
@@ -26,6 +26,7 @@
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
 import javax.persistence.ManyToOne;
 import javax.persistence.OneToMany;
 import javax.persistence.OrderBy;
@@ -95,6 +96,7 @@
 		this.tmodelKey = tmodelKey;
 	}
 
+        @Lob
 	@Column(name = "instance_parms", length = 8192)
 	public String getInstanceParms() {
 		return this.instanceParms;
diff --git a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_141_JIRATest.java b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_141_JIRATest.java
index df25af0..f71336b 100644
--- a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_141_JIRATest.java
+++ b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_141_JIRATest.java
@@ -28,6 +28,7 @@
 import org.apache.juddi.Registry;
 import org.apache.juddi.api_v3.GetEntityHistoryMessageRequest;
 import org.apache.juddi.api_v3.GetEntityHistoryMessageResponse;
+import org.apache.juddi.api_v3.SubscriptionWrapper;
 import org.apache.juddi.jaxb.PrintUDDI;
 import org.apache.juddi.v3.client.UDDIConstants;
 import org.apache.juddi.v3.client.config.UDDIClient;
@@ -1409,4 +1410,10 @@
             
     }
     
+    
+    @Test
+    public void testJira996SubscriotionTest() throws Exception {
+        JUDDIApiImpl j = new JUDDIApiImpl();
+        List<SubscriptionWrapper> allClientSubscriptionInfo = j.getAllClientSubscriptionInfo(authInfoJoe);
+    }
 }
diff --git a/juddi-ddl-generator/pom.xml b/juddi-ddl-generator/pom.xml
index eb80ebd..0cdedf2 100644
--- a/juddi-ddl-generator/pom.xml
+++ b/juddi-ddl-generator/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.juddi</groupId>
         <artifactId>juddi-parent</artifactId>
-        <version>3.3.6-SNAPSHOT</version>
+        <version>3.3.7-SNAPSHOT</version>
     </parent>
     <artifactId>juddi-ddl-generator</artifactId>
     <name>juddi-ddl-generator</name>
diff --git a/juddi-dist/pom.xml b/juddi-dist/pom.xml
index b8d0ef9..9f543e5 100644
--- a/juddi-dist/pom.xml
+++ b/juddi-dist/pom.xml
@@ -20,7 +20,7 @@
 	<parent>
 		<groupId>org.apache.juddi</groupId>
 		<artifactId>juddi-parent</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 	</parent>
 	<artifactId>juddi-dist</artifactId>
 	<name>jUDDI Distribution Assembly</name>
diff --git a/juddi-examples/ValueSetValidator/pom.xml b/juddi-examples/ValueSetValidator/pom.xml
index b74fcdc..b81ee32 100644
--- a/juddi-examples/ValueSetValidator/pom.xml
+++ b/juddi-examples/ValueSetValidator/pom.xml
@@ -12,7 +12,7 @@
 	<parent>
 		<groupId>org.apache.juddi.example</groupId>
 		<artifactId>juddi-examples</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>example-vsv-validator</artifactId>
diff --git a/juddi-examples/create-partition/pom.xml b/juddi-examples/create-partition/pom.xml
index 6cef346..62dc60e 100644
--- a/juddi-examples/create-partition/pom.xml
+++ b/juddi-examples/create-partition/pom.xml
@@ -19,7 +19,7 @@
 	<parent>
 		<groupId>org.apache.juddi.example</groupId>
 		<artifactId>juddi-examples</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 		<relativePath>../pom.xml</relativePath>
 	</parent>
 	<artifactId>create-partition</artifactId>
diff --git a/juddi-examples/hello-world-embedded/pom.xml b/juddi-examples/hello-world-embedded/pom.xml
index cec232a..354f2fe 100644
--- a/juddi-examples/hello-world-embedded/pom.xml
+++ b/juddi-examples/hello-world-embedded/pom.xml
@@ -19,7 +19,7 @@
 	<parent>
 		<groupId>org.apache.juddi.example</groupId>
 		<artifactId>juddi-examples</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 		<relativePath>../pom.xml</relativePath>
 	</parent>
 	<artifactId>hello-world-embedded</artifactId>
diff --git a/juddi-examples/hello-world/pom.xml b/juddi-examples/hello-world/pom.xml
index b8232cd..17d1c8c 100644
--- a/juddi-examples/hello-world/pom.xml
+++ b/juddi-examples/hello-world/pom.xml
@@ -19,7 +19,7 @@
 	<parent>
 		<groupId>org.apache.juddi.example</groupId>
 		<artifactId>juddi-examples</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 		<relativePath>../pom.xml</relativePath>
 	</parent>
 	<artifactId>hello-world</artifactId>
diff --git a/juddi-examples/hello-world/src/main/java/org/apache/juddi/example/helloworld/HelloWorld.java b/juddi-examples/hello-world/src/main/java/org/apache/juddi/example/helloworld/HelloWorld.java
index 4be1827..a7f06c3 100644
--- a/juddi-examples/hello-world/src/main/java/org/apache/juddi/example/helloworld/HelloWorld.java
+++ b/juddi-examples/hello-world/src/main/java/org/apache/juddi/example/helloworld/HelloWorld.java
@@ -41,7 +41,7 @@
         	// a UddiClient can be a client to multiple UDDI nodes, so 
                         // supply the nodeName (defined in your uddi.xml.
                         // The transport can be WS, inVM, RMI etc which is defined in the uddi.xml
-                        Transport transport = uddiClient.getTransport();
+                        Transport transport = uddiClient.getTransport("default");
                         // Now you create a reference to the UDDI API
                         security = transport.getUDDISecurityService();
                 } catch (Exception e) {
diff --git a/juddi-examples/more-uddi-samples/pom.xml b/juddi-examples/more-uddi-samples/pom.xml
index d360a87..94a9a8f 100644
--- a/juddi-examples/more-uddi-samples/pom.xml
+++ b/juddi-examples/more-uddi-samples/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.juddi.example</groupId>
         <artifactId>juddi-examples</artifactId>
-        <version>3.3.6-SNAPSHOT</version>
+        <version>3.3.7-SNAPSHOT</version>
     </parent>
     <groupId>org.apache.juddi</groupId>
     <artifactId>juddi-more-samples</artifactId>
diff --git a/juddi-examples/pom.xml b/juddi-examples/pom.xml
index 26cf9b9..6999269 100644
--- a/juddi-examples/pom.xml
+++ b/juddi-examples/pom.xml
@@ -15,7 +15,7 @@
 	<parent>
 		<groupId>org.apache.juddi</groupId>
 		<artifactId>juddi-parent</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 		<relativePath>../pom.xml</relativePath>
 	</parent>
 	<groupId>org.apache.juddi.example</groupId>
diff --git a/juddi-examples/service-version/pom.xml b/juddi-examples/service-version/pom.xml
index 2a29fa2..9234aaf 100644
--- a/juddi-examples/service-version/pom.xml
+++ b/juddi-examples/service-version/pom.xml
@@ -20,7 +20,7 @@
 	<parent>
 		<groupId>org.apache.juddi.example</groupId>
 		<artifactId>juddi-examples</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 	</parent>
 	<groupId>org.apache.juddi</groupId>
 	<artifactId>service-version</artifactId>
diff --git a/juddi-examples/simple-browse/pom.xml b/juddi-examples/simple-browse/pom.xml
index 2416e4e..4b51318 100644
--- a/juddi-examples/simple-browse/pom.xml
+++ b/juddi-examples/simple-browse/pom.xml
@@ -19,7 +19,7 @@
 	<parent>
 		<groupId>org.apache.juddi.example</groupId>
 		<artifactId>juddi-examples</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 		<relativePath>../pom.xml</relativePath>
 	</parent>
 	<artifactId>simple-browse</artifactId>
diff --git a/juddi-examples/simple-publish-clerk/pom.xml b/juddi-examples/simple-publish-clerk/pom.xml
index 30932fe..011c3df 100644
--- a/juddi-examples/simple-publish-clerk/pom.xml
+++ b/juddi-examples/simple-publish-clerk/pom.xml
@@ -19,7 +19,7 @@
 	<parent>
 		<groupId>org.apache.juddi.example</groupId>
 		<artifactId>juddi-examples</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 		<relativePath>../pom.xml</relativePath>
 	</parent>
 	<artifactId>simple-publish-clerk</artifactId>
diff --git a/juddi-examples/simple-publish-portable/pom.xml b/juddi-examples/simple-publish-portable/pom.xml
index bdcab60..d580ca5 100644
--- a/juddi-examples/simple-publish-portable/pom.xml
+++ b/juddi-examples/simple-publish-portable/pom.xml
@@ -19,7 +19,7 @@
 	<parent>
 		<groupId>org.apache.juddi.example</groupId>
 		<artifactId>juddi-examples</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 		<relativePath>../pom.xml</relativePath>
 	</parent>
 	<artifactId>simple-publish-portable</artifactId>
diff --git a/juddi-examples/subscription-notification-amqp/pom.xml b/juddi-examples/subscription-notification-amqp/pom.xml
index fb28b7e..2b5aa4b 100644
--- a/juddi-examples/subscription-notification-amqp/pom.xml
+++ b/juddi-examples/subscription-notification-amqp/pom.xml
@@ -12,7 +12,7 @@
 	<parent>
 		<groupId>org.apache.juddi.example</groupId>
 		<artifactId>juddi-examples</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 	</parent>
 	<artifactId>subscription-notification-amqp</artifactId>
 	<name>jUDDI Example AMQP Notifier for Subscription callbacks</name>
diff --git a/juddi-examples/uddi-annotations/pom.xml b/juddi-examples/uddi-annotations/pom.xml
index 5e76e9e..b770dff 100644
--- a/juddi-examples/uddi-annotations/pom.xml
+++ b/juddi-examples/uddi-annotations/pom.xml
@@ -20,7 +20,7 @@
 	<parent>
 		<groupId>org.apache.juddi.example</groupId>
 		<artifactId>juddi-examples</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 		<relativePath>../pom.xml</relativePath>
 	</parent>
 	<artifactId>uddi-annotations</artifactId>
diff --git a/juddi-examples/uddiv2-api-bridge-example/pom.xml b/juddi-examples/uddiv2-api-bridge-example/pom.xml
index 84c1379..4d06522 100644
--- a/juddi-examples/uddiv2-api-bridge-example/pom.xml
+++ b/juddi-examples/uddiv2-api-bridge-example/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.juddi.example</groupId>
     <artifactId>juddi-examples</artifactId>
-    <version>3.3.6-SNAPSHOT</version>
+    <version>3.3.7-SNAPSHOT</version>
   </parent>
   <groupId>org.apache.juddi.example</groupId>
   <artifactId>uddiv2-api-bridge-example</artifactId>
diff --git a/juddi-examples/wsdl2uddi-lifecyle/pom.xml b/juddi-examples/wsdl2uddi-lifecyle/pom.xml
index 4525fe6..e9f6d95 100644
--- a/juddi-examples/wsdl2uddi-lifecyle/pom.xml
+++ b/juddi-examples/wsdl2uddi-lifecyle/pom.xml
@@ -19,7 +19,7 @@
   <parent>
      <groupId>org.apache.juddi.example</groupId>
      <artifactId>juddi-examples</artifactId>
-     <version>3.3.6-SNAPSHOT</version>
+     <version>3.3.7-SNAPSHOT</version>
      <relativePath>../pom.xml</relativePath>
   </parent>
   <artifactId>wsdl2uddi-lifecycle</artifactId>
diff --git a/juddi-examples/wsdl2uddi/generate-client.sh b/juddi-examples/wsdl2uddi/generate-client.sh
index 0da8254..95dcc23 100644
--- a/juddi-examples/wsdl2uddi/generate-client.sh
+++ b/juddi-examples/wsdl2uddi/generate-client.sh
@@ -1 +1 @@
-wsimport ../src/main/resources/wsdl/helloworld.wsdl -s ../src/main/java/ -d target/classes
+wsimport ../src/main/resources/wsdl/helloworld.wsdl -s ../src/main/java/ -d target/classes 
diff --git a/juddi-examples/wsdl2uddi/pom.xml b/juddi-examples/wsdl2uddi/pom.xml
index eb8c6dc..4a58bfb 100644
--- a/juddi-examples/wsdl2uddi/pom.xml
+++ b/juddi-examples/wsdl2uddi/pom.xml
@@ -19,7 +19,7 @@
   <parent>
      <groupId>org.apache.juddi.example</groupId>
      <artifactId>juddi-examples</artifactId>
-     <version>3.3.6-SNAPSHOT</version>
+     <version>3.3.7-SNAPSHOT</version>
      <relativePath>../pom.xml</relativePath>
   </parent>
   <artifactId>wsdl2uddi</artifactId>
diff --git a/juddi-gui-dsig/pom.xml b/juddi-gui-dsig/pom.xml
index 0f9bb54..5e61d95 100644
--- a/juddi-gui-dsig/pom.xml
+++ b/juddi-gui-dsig/pom.xml
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.apache.juddi</groupId>
         <artifactId>juddi-parent</artifactId>
-        <version>3.3.6-SNAPSHOT</version>
+        <version>3.3.7-SNAPSHOT</version>
     </parent>
     <artifactId>juddi-gui-dsig</artifactId>
     <name>jUDDI Web Client Digital Signature Applet</name>
diff --git a/juddi-gui/pom.xml b/juddi-gui/pom.xml
index 3a455be..3351486 100644
--- a/juddi-gui/pom.xml
+++ b/juddi-gui/pom.xml
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.apache.juddi</groupId>
         <artifactId>juddi-parent</artifactId>
-        <version>3.3.6-SNAPSHOT</version>
+        <version>3.3.7-SNAPSHOT</version>
     </parent>
     <artifactId>juddi-gui-war</artifactId>
     <packaging>war</packaging>
diff --git a/juddi-rest-cxf/pom.xml b/juddi-rest-cxf/pom.xml
index 521f62b..43fdb24 100644
--- a/juddi-rest-cxf/pom.xml
+++ b/juddi-rest-cxf/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.juddi</groupId>
         <artifactId>juddi-parent</artifactId>
-        <version>3.3.6-SNAPSHOT</version>
+        <version>3.3.7-SNAPSHOT</version>
     </parent>
     <groupId>org.apache.juddi</groupId>
     <artifactId>juddi-rest-cxf</artifactId>
diff --git a/juddi-tomcat/catalina.sh b/juddi-tomcat/catalina.sh
index 30ef848..48f9a08 100755
--- a/juddi-tomcat/catalina.sh
+++ b/juddi-tomcat/catalina.sh
@@ -1,5 +1,5 @@
-#!/bin/sh
-
+#!/bin/sh 
+ 
 # 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.
diff --git a/juddi-tomcat/juddi-cryptor.sh b/juddi-tomcat/juddi-cryptor.sh
index 2a6d8c2..c9be60c 100644
--- a/juddi-tomcat/juddi-cryptor.sh
+++ b/juddi-tomcat/juddi-cryptor.sh
@@ -1,2 +1,2 @@
-#!/bin/bash     
+#!/bin/bash
 java -cp ../webapps/juddiv3/WEB-INF/lib:../webapps/juddiv3/WEB-INF/lib/* org.apache.juddi.v3.client.cryptor.CryptorUtil $*
diff --git a/juddi-tomcat/juddi-md5.sh b/juddi-tomcat/juddi-md5.sh
index 58e2085..771eada 100644
--- a/juddi-tomcat/juddi-md5.sh
+++ b/juddi-tomcat/juddi-md5.sh
@@ -1,2 +1,2 @@
-#!/bin/bash     
+#!/bin/bash
 java -cp ../webapps/juddiv3/WEB-INF/lib:../webapps/juddiv3/WEB-INF/lib/* org.apache.juddi.v3.auth.MD5XMLDocAuthenticator
\ No newline at end of file
diff --git a/juddi-tomcat/pom.xml b/juddi-tomcat/pom.xml
index a371930..5ed0a1d 100644
--- a/juddi-tomcat/pom.xml
+++ b/juddi-tomcat/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <groupId>org.apache.juddi</groupId>
         <artifactId>juddi-parent</artifactId>
-        <version>3.3.6-SNAPSHOT</version>
+        <version>3.3.7-SNAPSHOT</version>
     </parent>
     <artifactId>juddi-tomcat</artifactId>
     <name>jUDDI Tomcat Packaging</name>
diff --git a/juddiv3-war-repl/pom.xml b/juddiv3-war-repl/pom.xml
index d7f6bee..c4e98b0 100644
--- a/juddiv3-war-repl/pom.xml
+++ b/juddiv3-war-repl/pom.xml
@@ -12,7 +12,7 @@
 	<parent>
 		<groupId>org.apache.juddi</groupId>
 		<artifactId>juddi-parent</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 	</parent>
 	<artifactId>juddiv3-war-repl</artifactId>
 	<packaging>war</packaging>
diff --git a/juddiv3-war/pom.xml b/juddiv3-war/pom.xml
index 03478ae..46efd04 100644
--- a/juddiv3-war/pom.xml
+++ b/juddiv3-war/pom.xml
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.apache.juddi</groupId>
         <artifactId>juddi-parent</artifactId>
-        <version>3.3.6-SNAPSHOT</version>
+        <version>3.3.7-SNAPSHOT</version>
     </parent>
     <artifactId>juddiv3-war</artifactId>
     <packaging>war</packaging>
diff --git a/pom.xml b/pom.xml
index 68f0557..cee0379 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,7 +27,7 @@
 	<packaging>pom</packaging>
 	<groupId>org.apache.juddi</groupId>
 	<artifactId>juddi-parent</artifactId>
-	<version>3.3.6-SNAPSHOT</version>
+	<version>3.3.7-SNAPSHOT</version>
 	<name>jUDDI_v3 Parent</name>
 	<description>jUDDI (pronounced "Judy") is an open source Java
         implementation of the Universal Description, Discovery, and
@@ -45,7 +45,7 @@
 		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 		<cxf.version>3.2.6</cxf.version>
 		<springframework.version>3.2.18.RELEASE</springframework.version>
-		<apache.tomcat.version>9.0.10</apache.tomcat.version>
+		<apache.tomcat.version>9.0.30</apache.tomcat.version>
 		<jacoco.it.execution.data.file>${project.build.directory}/coverage-reports/jacoco-it.exec</jacoco.it.execution.data.file>
 		<jacoco.ut.execution.data.file>${project.build.directory}/coverage-reports/jacoco-ut.exec</jacoco.ut.execution.data.file>
 
@@ -164,9 +164,9 @@
 		</license>
 	</licenses>
 	<scm>
-		<connection>scm:git:https://git-wip-us.apache.org/repos/asf/juddi.git</connection>
-		<developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/juddi.git</developerConnection>
-		<url>https://git-wip-us.apache.org/repos/asf/juddi.git/?p=juddi.git;a=summary</url>
+		<connection>scm:git:https://gitbox.apache.org/repos/asf/juddi.git</connection>
+		<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/juddi.git</developerConnection>
+		<url>https://gitbox.apache.org/repos/asf/juddi.git/?p=juddi.git;a=summary</url>
 		<tag>HEAD</tag>
 	</scm>
 	<build>
@@ -299,6 +299,24 @@
 		</pluginManagement>
 		<plugins>
 			<plugin>
+			<groupId>net.nicoulaj.maven.plugins</groupId>
+			<artifactId>checksum-maven-plugin</artifactId>
+			<version>1.8</version>
+			<executions>
+			  <execution>
+				<goals>
+				  <goal>artifacts</goal>
+				</goals>
+			  </execution>
+			</executions>
+			<configuration>
+			<algorithms>
+				<algorithm>SHA-512</algorithm>
+			</algorithms>
+			  <!-- put your configurations here -->
+			</configuration>
+		  </plugin>
+			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-enforcer-plugin</artifactId>
 				<version>3.0.0-M1</version>
diff --git a/src/site/markdown/index.md b/src/site/markdown/index.md
index f0fb2d3..75d3b55 100644
--- a/src/site/markdown/index.md
+++ b/src/site/markdown/index.md
@@ -43,6 +43,8 @@
 
 ## News
 
+Dec 5, 2018, jUDDI Release 3.3.6
+
 Nov 23, 2017, jUDDI Release 3.3.5
 
 Feb 11, 2017, jUDDI Release 3.3.4
diff --git a/src/site/markdown/releases.md b/src/site/markdown/releases.md
index ab68b93..bb24aba 100644
--- a/src/site/markdown/releases.md
+++ b/src/site/markdown/releases.md
@@ -4,6 +4,7 @@
 
 | Name 																| Date  		| Description  			|
 | ---				| --- | --- |										
+| [3.3.6](http://www.apache.org/dyn/closer.cgi/juddi/juddi/3.3.6/)  | Dec 5, 2017   | Stable 3.3.6 Release  |		| 
 | [3.3.5](http://www.apache.org/dyn/closer.cgi/juddi/juddi/3.3.5/)  | Nov 23, 2017   | Stable 3.3.5 Release  |		| 
 | [Older releases](http://archive.apache.org/dist/juddi/)		    | 			  	| Archived Releases  	|
 
diff --git a/uddi-client-dist/pom.xml b/uddi-client-dist/pom.xml
index caac778..dc14d1b 100644
--- a/uddi-client-dist/pom.xml
+++ b/uddi-client-dist/pom.xml
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.apache.juddi</groupId>
         <artifactId>juddi-parent</artifactId>
-        <version>3.3.6-SNAPSHOT</version>
+        <version>3.3.7-SNAPSHOT</version>
     </parent>
     <artifactId>uddi-client-dist</artifactId>
     <name>UDDI Client Distribution Assembly</name>
diff --git a/uddi-client-dist/src/main/bin/juddi-client-cryptor.sh b/uddi-client-dist/src/main/bin/juddi-client-cryptor.sh
index 4f72fc8..50d4aa1 100644
--- a/uddi-client-dist/src/main/bin/juddi-client-cryptor.sh
+++ b/uddi-client-dist/src/main/bin/juddi-client-cryptor.sh
@@ -1,2 +1,2 @@
-#!/bin/bash     
+#!/bin/bash
 java -cp ./* org.apache.juddi.v3.client.cryptor.CryptorUtil $*
diff --git a/uddi-migration-tool/pom.xml b/uddi-migration-tool/pom.xml
index 56e936d..ed4ba01 100644
--- a/uddi-migration-tool/pom.xml
+++ b/uddi-migration-tool/pom.xml
@@ -20,7 +20,7 @@
 	<parent>
 		<groupId>org.apache.juddi</groupId>
 		<artifactId>juddi-parent</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 	</parent>
 	
 	<groupId>org.apache.juddi</groupId>
diff --git a/uddi-tck-base/pom.xml b/uddi-tck-base/pom.xml
index a555e48..236d9a1 100644
--- a/uddi-tck-base/pom.xml
+++ b/uddi-tck-base/pom.xml
@@ -19,7 +19,7 @@
 	<parent>
 		<groupId>org.apache.juddi</groupId>
 		<artifactId>juddi-parent</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 	</parent>
 	<artifactId>uddi-tck-base</artifactId>
 	<packaging>bundle</packaging>
diff --git a/uddi-tck-runner/pom.xml b/uddi-tck-runner/pom.xml
index 9191c25..45aa7ff 100644
--- a/uddi-tck-runner/pom.xml
+++ b/uddi-tck-runner/pom.xml
@@ -20,7 +20,7 @@
   <parent>
     <groupId>org.apache.juddi</groupId>
     <artifactId>juddi-parent</artifactId>
-    <version>3.3.6-SNAPSHOT</version>
+    <version>3.3.7-SNAPSHOT</version>
   </parent>
   <artifactId>uddi-tck-runner</artifactId>
   <name>UDDI TCK Test Runner</name>
diff --git a/uddi-tck/pom.xml b/uddi-tck/pom.xml
index 217522e..7134127 100644
--- a/uddi-tck/pom.xml
+++ b/uddi-tck/pom.xml
@@ -20,7 +20,7 @@
 	<parent>
 		<groupId>org.apache.juddi</groupId>
 		<artifactId>juddi-parent</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 	</parent>
 	<artifactId>uddi-tck</artifactId>
 	<packaging>jar</packaging>
diff --git a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_101_ClientSubscriptionCallbackAPIIntegrationTest.java b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_101_ClientSubscriptionCallbackAPIIntegrationTest.java
index 0c3d55a..f53a792 100644
--- a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_101_ClientSubscriptionCallbackAPIIntegrationTest.java
+++ b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_101_ClientSubscriptionCallbackAPIIntegrationTest.java
@@ -35,6 +35,7 @@
 import org.junit.Assert;
 import org.junit.Assume;
 import org.junit.BeforeClass;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.uddi.api_v3.BindingTemplate;
 import org.uddi.api_v3.BusinessEntity;
@@ -97,6 +98,7 @@
         }
 
         @Test
+        @Ignore
         public void SubscriptionCallbackTest1() throws Exception {
                 //first some setup
                 if (!TckPublisher.isEnabled()) return;
diff --git a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_300_MultiNodeIntegrationTest.java b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_300_MultiNodeIntegrationTest.java
index 35c0aee..ce48ab7 100644
--- a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_300_MultiNodeIntegrationTest.java
+++ b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_300_MultiNodeIntegrationTest.java
@@ -342,7 +342,7 @@
          * @throws Exception
          */
         @Test
-        //@Ignore
+        @Ignore
         public void testMultiNodeBusinessCustodyTransfer() throws Exception {
                 logger.info("testMultiNodeBusinessCustodyTransfer");
                 try {
@@ -798,7 +798,7 @@
          * @throws Exception
          */
         @Test
-        //@Ignore
+        @Ignore
         public void testReplicationServiceBindingAddRemove() throws Exception {
                 Assume.assumeTrue(TckPublisher.isReplicationEnabled());
                 Assume.assumeTrue(TckPublisher.isJUDDI());
diff --git a/uddi-ws/pom.xml b/uddi-ws/pom.xml
index 07d0b78..5c19446 100644
--- a/uddi-ws/pom.xml
+++ b/uddi-ws/pom.xml
@@ -20,7 +20,7 @@
 	<parent>
 		<groupId>org.apache.juddi</groupId>
 		<artifactId>juddi-parent</artifactId>
-		<version>3.3.6-SNAPSHOT</version>
+		<version>3.3.7-SNAPSHOT</version>
 	</parent>
 	<artifactId>uddi-ws</artifactId>
 	<packaging>bundle</packaging>
