You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by al...@apache.org on 2015/02/16 03:18:16 UTC

[01/12] juddi git commit: JUDDI-919 replication now works with ssl + client-cert authentication. In order to support this, we need to have two different war file (unfortunately). Included with this change set is number of typos in our deployment files (w

Repository: juddi
Updated Branches:
  refs/heads/master 5eda4a714 -> 5994cd063


http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war/JAX-WS/Axis2/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war/JAX-WS/Axis2/WEB-INF/web.xml b/juddiv3-war/JAX-WS/Axis2/WEB-INF/web.xml
index 853c850..4e520b5 100644
--- a/juddiv3-war/JAX-WS/Axis2/WEB-INF/web.xml
+++ b/juddiv3-war/JAX-WS/Axis2/WEB-INF/web.xml
@@ -15,26 +15,26 @@
 	
 	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.
+        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.
 -->
 <web-app>
  
-  <context-param>
-    <param-name>log4jConfigLocation</param-name>
-    <param-value>/WEB-INF/classes/log4j.properties</param-value>
-  </context-param>
+    <context-param>
+        <param-name>log4jConfigLocation</param-name>
+        <param-value>/WEB-INF/classes/log4j.properties</param-value>
+    </context-param>
 
-  <listener>
-		 <!-- this class setups the encryption key for the session-->
-    <listener-class>org.apache.juddi.adminconsole.StartupServlet</listener-class>
+    <listener>
+        <!-- this class setups the encryption key for the session-->
+        <listener-class>org.apache.juddi.adminconsole.StartupServlet</listener-class>
     
-  </listener>
- <servlet>
+    </listener>
+    <servlet>
         <servlet-name>AxisServlet</servlet-name>
         <display-name>Apache-Axis Servlet</display-name>
         <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
@@ -52,23 +52,23 @@
     </servlet>
    
   
-   <servlet>
-    <servlet-name>RegistryServlet</servlet-name>
-    <display-name>Registry Servlet</display-name>
-    <servlet-class>
-      org.apache.juddi.servlets.RegistryServlet
-		</servlet-class>
-    <load-on-startup>1</load-on-startup> 
-  </servlet>
+    <servlet>
+        <servlet-name>RegistryServlet</servlet-name>
+        <display-name>Registry Servlet</display-name>
+        <servlet-class>
+            org.apache.juddi.servlets.RegistryServlet
+        </servlet-class>
+        <load-on-startup>1</load-on-startup> 
+    </servlet>
   
-   <servlet>
-    <servlet-name>NotifyServlet</servlet-name>
-    <display-name>Notify Servlet</display-name>
-    <servlet-class>
-      org.apache.juddi.servlets.NotifyServlet
-    </servlet-class>
-    <load-on-startup>1</load-on-startup>
-  </servlet>
+    <servlet>
+        <servlet-name>NotifyServlet</servlet-name>
+        <display-name>Notify Servlet</display-name>
+        <servlet-class>
+            org.apache.juddi.servlets.NotifyServlet
+        </servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
   
   
   
@@ -88,41 +88,41 @@
     </servlet-mapping>
  
 	
-  <servlet-mapping>
-  	<servlet-name>NotifyServlet</servlet-name>
-  	<url-pattern>/notify/*</url-pattern>
-  </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>NotifyServlet</servlet-name>
+        <url-pattern>/notify/*</url-pattern>
+    </servlet-mapping>
  
-  <resource-ref>
-      <description>jUDDI DataSource</description>
-      <res-ref-name>jdbc/juddiDB</res-ref-name>
-      <res-type>javax.sql.DataSource</res-type>
-      <res-auth>Container</res-auth>
-      <res-sharing-scope>Shareable</res-sharing-scope>
-  </resource-ref>
+    <resource-ref>
+        <description>jUDDI DataSource</description>
+        <res-ref-name>jdbc/juddiDB</res-ref-name>
+        <res-type>javax.sql.DataSource</res-type>
+        <res-auth>Container</res-auth>
+        <res-sharing-scope>Shareable</res-sharing-scope>
+    </resource-ref>
 
-<security-constraint>
-      <display-name>jUDDI Admin content</display-name>
-      <web-resource-collection>
-          <web-resource-name>admin</web-resource-name>
-          <url-pattern>/admin/*</url-pattern>
+    <security-constraint>
+        <display-name>jUDDI Admin content</display-name>
+        <web-resource-collection>
+            <web-resource-name>admin</web-resource-name>
+            <url-pattern>/admin/*</url-pattern>
           
           
-      </web-resource-collection>
-      <auth-constraint>
-          <role-name>uddiadmin</role-name>
-      </auth-constraint>
-      <!-- uncomment to require SSL <user-data-constraint>
-        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
-      </user-data-constraint>
-      -->
-  </security-constraint>
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>uddiadmin</role-name>
+        </auth-constraint>
+        <!-- uncomment to require SSL <user-data-constraint>
+          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
+        </user-data-constraint>
+        -->
+    </security-constraint>
     <login-config> 
-	<auth-method>BASIC</auth-method> 
-	<!-- you should consider NOT using BASIC is favor of something more secure, see your web app servers documentation for details -->
-	<realm-name>Apache jUDDI - Make sure you're using HTTPS!</realm-name> 
-  </login-config> 
-  <security-role>
-      <role-name>uddiadmin</role-name>
-  </security-role>
+        <auth-method>BASIC</auth-method> 
+        <!-- you should consider NOT using BASIC is favor of something more secure, see your web app servers documentation for details -->
+        <realm-name>Apache jUDDI - Make sure you're using HTTPS!</realm-name> 
+    </login-config> 
+    <security-role>
+        <role-name>uddiadmin</role-name>
+    </security-role>
 </web-app>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war/JAX-WS/CXF-JBossAS7Up/WEB-INF/beans.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war/JAX-WS/CXF-JBossAS7Up/WEB-INF/beans.xml b/juddiv3-war/JAX-WS/CXF-JBossAS7Up/WEB-INF/beans.xml
index 4392e1f..e956edd 100644
--- a/juddiv3-war/JAX-WS/CXF-JBossAS7Up/WEB-INF/beans.xml
+++ b/juddiv3-war/JAX-WS/CXF-JBossAS7Up/WEB-INF/beans.xml
@@ -69,7 +69,8 @@
     </jaxws:properties>
   </jaxws:endpoint>
 
-<!--  not yet implemented
+<!--  
+  This is covered under the juddiv3replication in order to ensure client-cert auth
   <jaxws:endpoint id="replication" implementor="org.apache.juddi.api.impl.UDDIReplicationImpl" address="/replication">
     <jaxws:properties>
       <entry key="schema-validation-enabled" value="true"/>
@@ -77,7 +78,6 @@
   </jaxws:endpoint>
 -->
 
-<!-- ClientSide APIs
   <jaxws:endpoint id="valueset-validation" implementor="org.apache.juddi.api.impl.UDDIValueSetValidationImpl" address="/valueset-validation">
     <jaxws:properties>
       <entry key="schema-validation-enabled" value="true"/>
@@ -89,7 +89,6 @@
       <entry key="schema-validation-enabled" value="true"/>
     </jaxws:properties>
   </jaxws:endpoint>
--->
 
   <jaxws:endpoint id="inquiryv2" implementor="org.apache.juddi.api.impl.UDDIv2InquiryImpl" address="/inquiryv2">
     <jaxws:properties>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war/JAX-WS/CXF-JBossAS7Up/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war/JAX-WS/CXF-JBossAS7Up/WEB-INF/web.xml b/juddiv3-war/JAX-WS/CXF-JBossAS7Up/WEB-INF/web.xml
index 7f544b7..2018539 100644
--- a/juddiv3-war/JAX-WS/CXF-JBossAS7Up/WEB-INF/web.xml
+++ b/juddiv3-war/JAX-WS/CXF-JBossAS7Up/WEB-INF/web.xml
@@ -48,6 +48,26 @@
       <param-value>org.apache.juddi.api.impl.UDDISecurityImpl</param-value>
     </init-param>
   </servlet>
+
+  <servlet>
+    <servlet-name>UDDIValueSetCachingWS</servlet-name>
+    <servlet-class>org.jboss.wsf.stack.cxf.CXFServletExt</servlet-class>
+    <init-param>
+      <param-name>jboss.ws.endpoint</param-name>
+      <param-value>org.apache.juddi.api.impl.UDDIValueSetCachingImpl</param-value>
+    </init-param>
+  </servlet>
+
+  <servlet>
+    <servlet-name>UDDIValueSetValidationWS</servlet-name>
+    <servlet-class>org.jboss.wsf.stack.cxf.CXFServletExt</servlet-class>
+    <init-param>
+      <param-name>jboss.ws.endpoint</param-name>
+      <param-value>org.apache.juddi.api.impl.UDDIValueSetValidationImpl</param-value>
+    </init-param>
+  </servlet>
+
+
   <servlet>
     <servlet-name>UDDIPublishWS</servlet-name>
     <servlet-class>org.jboss.wsf.stack.cxf.CXFServletExt</servlet-class>
@@ -112,6 +132,19 @@
       <param-value>org.apache.juddi.api.impl.JUDDIApiImpl</param-value>
     </init-param>
   </servlet>
+
+  
+
+<servlet-mapping>
+    <servlet-name>UDDIValueSetCachingWS</servlet-name>
+    <url-pattern>/services/valueset-caching/*</url-pattern>
+  </servlet-mapping>
+  <servlet-mapping>
+    <servlet-name>UDDIValueSetValidationWS</servlet-name>
+    <url-pattern>/services/valueset-validation/*</url-pattern>
+  </servlet-mapping>
+
+
   <servlet-mapping>
     <servlet-name>UDDISecurityWS</servlet-name>
     <url-pattern>/services/security/*</url-pattern>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war/JAX-WS/CXF/WEB-INF/beans.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war/JAX-WS/CXF/WEB-INF/beans.xml b/juddiv3-war/JAX-WS/CXF/WEB-INF/beans.xml
index b7c1e09..0b4049e 100644
--- a/juddiv3-war/JAX-WS/CXF/WEB-INF/beans.xml
+++ b/juddiv3-war/JAX-WS/CXF/WEB-INF/beans.xml
@@ -69,12 +69,14 @@
     </jaxws:properties>
   </jaxws:endpoint>
 
+<!--
+  This is covered under the juddiv3replication in order to ensure client-cert auth
   <jaxws:endpoint id="replication" implementor="org.apache.juddi.api.impl.UDDIReplicationImpl" address="/replication">
     <jaxws:properties>
       <entry key="schema-validation-enabled" value="true"/>
     </jaxws:properties>
   </jaxws:endpoint>
-
+-->
 
 <!-- ClientSide APIs -->
   <jaxws:endpoint id="valueset-validation" implementor="org.apache.juddi.api.impl.UDDIValueSetValidationImpl" address="/valueset-validation">

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war/JAX-WS/CXF/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war/JAX-WS/CXF/WEB-INF/web.xml b/juddiv3-war/JAX-WS/CXF/WEB-INF/web.xml
index bff48dc..bcaf621 100644
--- a/juddiv3-war/JAX-WS/CXF/WEB-INF/web.xml
+++ b/juddiv3-war/JAX-WS/CXF/WEB-INF/web.xml
@@ -15,101 +15,101 @@
 	
 	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.
+        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.
 -->
 <web-app>
-  <context-param>
-    <param-name>contextConfigLocation</param-name>
-    <param-value>WEB-INF/beans.xml</param-value>
-  </context-param>
+    <context-param>
+        <param-name>contextConfigLocation</param-name>
+        <param-value>WEB-INF/beans.xml</param-value>
+    </context-param>
 
-  <context-param>
-    <param-name>log4jConfigLocation</param-name>
-    <param-value>/WEB-INF/classes/log4j.properties</param-value>
-  </context-param>
+    <context-param>
+        <param-name>log4jConfigLocation</param-name>
+        <param-value>/WEB-INF/classes/log4j.properties</param-value>
+    </context-param>
 
-  <listener>
-    <listener-class>
-      org.springframework.web.context.ContextLoaderListener
-		</listener-class>
-		 <!-- this class setups the encryption key for the session-->
-    <listener-class>org.apache.juddi.adminconsole.StartupServlet</listener-class>
+    <listener>
+        <listener-class>
+            org.springframework.web.context.ContextLoaderListener
+        </listener-class>
+        <!-- this class setups the encryption key for the session-->
+        <listener-class>org.apache.juddi.adminconsole.StartupServlet</listener-class>
     
-  </listener>
+    </listener>
 
-  <servlet>
-    <servlet-name>CXFServlet</servlet-name>
-    <display-name>CXF Servlet</display-name>
-    <servlet-class>
-      org.apache.cxf.transport.servlet.CXFServlet
-		</servlet-class>
-    <load-on-startup>1</load-on-startup>
-  </servlet>
+    <servlet>
+        <servlet-name>CXFServlet</servlet-name>
+        <display-name>CXF Servlet</display-name>
+        <servlet-class>
+            org.apache.cxf.transport.servlet.CXFServlet
+        </servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
   
-   <servlet>
-    <servlet-name>RegistryServlet</servlet-name>
-    <display-name>Registry Servlet</display-name>
-    <servlet-class>
-      org.apache.juddi.servlets.RegistryServlet
-		</servlet-class>
-    <load-on-startup>1</load-on-startup>
-  </servlet>
+    <servlet>
+        <servlet-name>RegistryServlet</servlet-name>
+        <display-name>Registry Servlet</display-name>
+        <servlet-class>
+            org.apache.juddi.servlets.RegistryServlet
+        </servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
   
-   <servlet>
-    <servlet-name>NotifyServlet</servlet-name>
-    <display-name>Notify Servlet</display-name>
-    <servlet-class>
-      org.apache.juddi.servlets.NotifyServlet
-    </servlet-class>
-    <load-on-startup>1</load-on-startup>
-  </servlet>
+    <servlet>
+        <servlet-name>NotifyServlet</servlet-name>
+        <display-name>Notify Servlet</display-name>
+        <servlet-class>
+            org.apache.juddi.servlets.NotifyServlet
+        </servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
   
-  <servlet-mapping>
-    <servlet-name>CXFServlet</servlet-name>
-    <url-pattern>/services/*</url-pattern>
-  </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>CXFServlet</servlet-name>
+        <url-pattern>/services/*</url-pattern>
+    </servlet-mapping>
   
-  <servlet-mapping>
-  	<servlet-name>NotifyServlet</servlet-name>
-  	<url-pattern>/notify/*</url-pattern>
-  </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>NotifyServlet</servlet-name>
+        <url-pattern>/notify/*</url-pattern>
+    </servlet-mapping>
  
-  <resource-ref>
-      <description>jUDDI DataSource</description>
-      <res-ref-name>jdbc/juddiDB</res-ref-name>
-      <res-type>javax.sql.DataSource</res-type>
-      <res-auth>Container</res-auth>
-      <res-sharing-scope>Shareable</res-sharing-scope>
-  </resource-ref>
-  <security-constraint>
-      <display-name>jUDDI Admin content</display-name>
-      <web-resource-collection>
-          <web-resource-name>admin</web-resource-name>
-          <url-pattern>/admin/*</url-pattern>
+    <resource-ref>
+        <description>jUDDI DataSource</description>
+        <res-ref-name>jdbc/juddiDB</res-ref-name>
+        <res-type>javax.sql.DataSource</res-type>
+        <res-auth>Container</res-auth>
+        <res-sharing-scope>Shareable</res-sharing-scope>
+    </resource-ref>
+    <security-constraint>
+        <display-name>jUDDI Admin content</display-name>
+        <web-resource-collection>
+            <web-resource-name>admin</web-resource-name>
+            <url-pattern>/admin/*</url-pattern>
           
           
-      </web-resource-collection>
-      <auth-constraint>
-          <role-name>uddiadmin</role-name>
-      </auth-constraint>
-      <!-- uncomment to require SSL <user-data-constraint>
-        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
-      </user-data-constraint>
-      -->
-  </security-constraint>
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>uddiadmin</role-name>
+        </auth-constraint>
+        <!-- uncomment to require SSL <user-data-constraint>
+          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
+        </user-data-constraint>
+        -->
+    </security-constraint>
     <login-config> 
-	<auth-method>BASIC</auth-method> 
-	<!-- you should consider NOT using BASIC is favor of something more secure, see your web app servers documentation for details -->
-	<realm-name>Apache jUDDI - Make sure you're using HTTPS!</realm-name> 
-  </login-config> 
-  <security-role>
-      <role-name>uddiadmin</role-name>
-  </security-role>
+        <auth-method>BASIC</auth-method> 
+        <!-- you should consider NOT using BASIC is favor of something more secure, see your web app servers documentation for details -->
+        <realm-name>Apache jUDDI - Make sure you're using HTTPS!</realm-name> 
+    </login-config> 
+    <security-role>
+        <role-name>uddiadmin</role-name>
+    </security-role>
   
 
 </web-app>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war/JAX-WS/JBossWS-CXF/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war/JAX-WS/JBossWS-CXF/WEB-INF/web.xml b/juddiv3-war/JAX-WS/JBossWS-CXF/WEB-INF/web.xml
index 093c312..0d80ca2 100644
--- a/juddiv3-war/JAX-WS/JBossWS-CXF/WEB-INF/web.xml
+++ b/juddiv3-war/JAX-WS/JBossWS-CXF/WEB-INF/web.xml
@@ -91,8 +91,10 @@
       <param-value>org.apache.juddi.api.impl.UDDISubscriptionListenerImpl</param-value>
     </init-param>
   </servlet>
-  <servlet>
+  
  
+ <!-- 
+  This is covered under the juddiv3replication in order to ensure client-cert auth
   <servlet>
     <servlet-name>UDDIReplicationWS</servlet-name>
 
@@ -101,116 +103,120 @@
       <param-name>jboss.ws.endpoint</param-name>
       <param-value>org.apache.juddi.api.impl.UDDIReplicationImpl</param-value>
 
-    </init-param>
-  </servlet>
-
-  <servlet>
-    <servlet-name>UDDIValueSetWS</servlet-name>
-    <servlet-class>org.jboss.wsf.stack.cxf.CXFServletExt</servlet-class>
-    <init-param>
-      <param-name>jboss.ws.endpoint</param-name>
-      <param-value>org.apache.juddi.api.impl.UDDIValueSetValidationImpl</param-value>
-    </init-param>
-  </servlet>  
+        </init-param>
+      </servlet>
+    -->
+    <servlet>
+        <servlet-name>UDDIValueSetWS</servlet-name>
+        <servlet-class>org.jboss.wsf.stack.cxf.CXFServletExt</servlet-class>
+        <init-param>
+            <param-name>jboss.ws.endpoint</param-name>
+            <param-value>org.apache.juddi.api.impl.UDDIValueSetValidationImpl</param-value>
+        </init-param>
+    </servlet>  
   
     <servlet>
-    <servlet-name>UDDIValueSetCachingWS</servlet-name>
+        <servlet-name>UDDIValueSetCachingWS</servlet-name>
 
-    <servlet-class>org.jboss.wsf.stack.cxf.CXFServletExt</servlet-class>
-    <init-param>
-      <param-name>jboss.ws.endpoint</param-name>
-      <param-value>org.apache.juddi.api.impl.UDDIValueSetCachingImpl</param-value>
+        <servlet-class>org.jboss.wsf.stack.cxf.CXFServletExt</servlet-class>
+        <init-param>
+            <param-name>jboss.ws.endpoint</param-name>
+            <param-value>org.apache.juddi.api.impl.UDDIValueSetCachingImpl</param-value>
 
-    </init-param>
-  </servlet>  
-    <servlet-name>UDDICustodyTransferWS</servlet-name>
-    <servlet-class>org.jboss.wsf.stack.cxf.CXFServletExt</servlet-class>
-    <init-param>
-      <param-name>jboss.ws.endpoint</param-name>
-      <param-value>org.apache.juddi.api.impl.UDDICustodyTransferImpl</param-value>
-    </init-param>
-  </servlet>
-  <servlet>
-    <servlet-name>JUDDIApiWS</servlet-name>
-    <servlet-class>org.jboss.wsf.stack.cxf.CXFServletExt</servlet-class>
-    <init-param>
-      <param-name>jboss.ws.endpoint</param-name>
-      <param-value>org.apache.juddi.api.impl.JUDDIApiImpl</param-value>
-    </init-param>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>UDDISecurityWS</servlet-name>
-    <url-pattern>/services/security/*</url-pattern>
-  </servlet-mapping>
-  <servlet-mapping>
-    <servlet-name>UDDIPublishWS</servlet-name>
-    <url-pattern>/services/publish/*</url-pattern>
-  </servlet-mapping>
-   <servlet-mapping>
-    <servlet-name>UDDIValueSetCachingWS</servlet-name>
-    <url-pattern>/services/valueset-caching/*</url-pattern>
-  </servlet-mapping>
-  <servlet-mapping>
-    <servlet-name>UDDIValueSetWS</servlet-name>
-    <url-pattern>/services/valueset-validation/*</url-pattern>
-  </servlet-mapping>
-  
-  <servlet-mapping>
-    <servlet-name>UDDIReplicationWS</servlet-name>
-    <url-pattern>/services/replication/*</url-pattern>
-  </servlet-mapping>
-  <servlet-mapping>
-    <servlet-name>UDDIPublishWSv2</servlet-name>
-    <url-pattern>/services/publishv2/*</url-pattern>
-  </servlet-mapping>
-  <servlet-mapping>
-    <servlet-name>UDDIInquiryWS</servlet-name>
-    <url-pattern>/services/inquiry/*</url-pattern>
-  </servlet-mapping>
+        </init-param>
+    </servlet>  
+
+    <servlet>
+        <servlet-name>UDDICustodyTransferWS</servlet-name>
+        <servlet-class>org.jboss.wsf.stack.cxf.CXFServletExt</servlet-class>
+        <init-param>
+            <param-name>jboss.ws.endpoint</param-name>
+            <param-value>org.apache.juddi.api.impl.UDDICustodyTransferImpl</param-value>
+        </init-param>
+    </servlet>
+    <servlet>
+        <servlet-name>JUDDIApiWS</servlet-name>
+        <servlet-class>org.jboss.wsf.stack.cxf.CXFServletExt</servlet-class>
+        <init-param>
+            <param-name>jboss.ws.endpoint</param-name>
+            <param-value>org.apache.juddi.api.impl.JUDDIApiImpl</param-value>
+        </init-param>
+    </servlet>
     <servlet-mapping>
-    <servlet-name>UDDIInquiryWSv2</servlet-name>
-    <url-pattern>/services/inquire/*</url-pattern>
-  </servlet-mapping>
+        <servlet-name>UDDISecurityWS</servlet-name>
+        <url-pattern>/services/security/*</url-pattern>
+    </servlet-mapping>
     <servlet-mapping>
-    <servlet-name>UDDISubscriptionWS</servlet-name>
-    <url-pattern>/services/subscription/*</url-pattern>
-  </servlet-mapping>
-  <servlet-mapping>
-    <servlet-name>UDDISubscriptionListenerWS</servlet-name>
-    <url-pattern>/services/subscription-listener/*</url-pattern>
-  </servlet-mapping>
-  <servlet-mapping>
-    <servlet-name>UDDICustodyTransferWS</servlet-name>
-    <url-pattern>/services/custody-transfer/*</url-pattern>
-  </servlet-mapping>
-  <servlet-mapping>
-    <servlet-name>JUDDIApiWS</servlet-name>
-    <url-pattern>/services/juddi-api/*</url-pattern>
-  </servlet-mapping>
+        <servlet-name>UDDIPublishWS</servlet-name>
+        <url-pattern>/services/publish/*</url-pattern>
+    </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>UDDIValueSetCachingWS</servlet-name>
+        <url-pattern>/services/valueset-caching/*</url-pattern>
+    </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>UDDIValueSetWS</servlet-name>
+        <url-pattern>/services/valueset-validation/*</url-pattern>
+    </servlet-mapping>
+    <!--
+      This is covered under the juddiv3replication in order to ensure client-cert auth
+      <servlet-mapping>
+        <servlet-name>UDDIReplicationWS</servlet-name>
+        <url-pattern>/services/replication/*</url-pattern>
+      </servlet-mapping>
+    -->
+    <servlet-mapping>
+        <servlet-name>UDDIPublishWSv2</servlet-name>
+        <url-pattern>/services/publishv2/*</url-pattern>
+    </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>UDDIInquiryWS</servlet-name>
+        <url-pattern>/services/inquiry/*</url-pattern>
+    </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>UDDIInquiryWSv2</servlet-name>
+        <url-pattern>/services/inquire/*</url-pattern>
+    </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>UDDISubscriptionWS</servlet-name>
+        <url-pattern>/services/subscription/*</url-pattern>
+    </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>UDDISubscriptionListenerWS</servlet-name>
+        <url-pattern>/services/subscription-listener/*</url-pattern>
+    </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>UDDICustodyTransferWS</servlet-name>
+        <url-pattern>/services/custody-transfer/*</url-pattern>
+    </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>JUDDIApiWS</servlet-name>
+        <url-pattern>/services/juddi-api/*</url-pattern>
+    </servlet-mapping>
   
-  <security-constraint>
-      <display-name>jUDDI Admin content</display-name>
-      <web-resource-collection>
-          <web-resource-name>admin</web-resource-name>
-          <url-pattern>/admin/*</url-pattern>
+    <security-constraint>
+        <display-name>jUDDI Admin content</display-name>
+        <web-resource-collection>
+            <web-resource-name>admin</web-resource-name>
+            <url-pattern>/admin/*</url-pattern>
           
           
-      </web-resource-collection>
-      <auth-constraint>
-          <role-name>uddiadmin</role-name>
-      </auth-constraint>
-      <!-- uncomment to require SSL <user-data-constraint>
-        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
-      </user-data-constraint>
-      -->
-  </security-constraint>
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>uddiadmin</role-name>
+        </auth-constraint>
+        <!-- uncomment to require SSL <user-data-constraint>
+          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
+        </user-data-constraint>
+        -->
+    </security-constraint>
     <login-config> 
-	<auth-method>BASIC</auth-method> 
-	<!-- you should consider NOT using BASIC is favor of something more secure, see your web app servers documentation for details -->
-	<realm-name>Apache jUDDI - Make sure you're using HTTPS!</realm-name> 
-  </login-config> 
-  <security-role>
-      <role-name>uddiadmin</role-name>
-  </security-role>
+        <auth-method>BASIC</auth-method> 
+        <!-- you should consider NOT using BASIC is favor of something more secure, see your web app servers documentation for details -->
+        <realm-name>Apache jUDDI - Make sure you're using HTTPS!</realm-name> 
+    </login-config> 
+    <security-role>
+        <role-name>uddiadmin</role-name>
+    </security-role>
 </web-app>
   

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war/JAX-WS/JBossWS-Native/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war/JAX-WS/JBossWS-Native/WEB-INF/web.xml b/juddiv3-war/JAX-WS/JBossWS-Native/WEB-INF/web.xml
index d388982..6349e33 100644
--- a/juddiv3-war/JAX-WS/JBossWS-Native/WEB-INF/web.xml
+++ b/juddiv3-war/JAX-WS/JBossWS-Native/WEB-INF/web.xml
@@ -1,176 +1,198 @@
 <?xml version="1.0" encoding="UTF-8"?>
-	<!--
-		/* * Copyright 2001-2004 The Apache Software Foundation. * * Licensed
-		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. */
-	-->
+<!--
+        /* * Copyright 2001-2004 The Apache Software Foundation. * * Licensed
+        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. */
+-->
 <!DOCTYPE web-app PUBLIC
         "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
         "http://java.sun.com/dtd/web-app_2_3.dtd">
 
 <web-app>
 
-	<display-name>jUDDI</display-name>
-	<description>
-		jUDDI is Java-based implementation of an UDDI version 3.0 registry.
+    <display-name>jUDDI</display-name>
+    <description>
+        jUDDI is Java-based implementation of an UDDI version 3.0 registry.
     </description>
-	<listener>
-		 <!-- this class setups the encryption key for the session-->
-    <listener-class>org.apache.juddi.adminconsole.StartupServlet</listener-class>
+    <listener>
+        <!-- this class setups the encryption key for the session-->
+        <listener-class>org.apache.juddi.adminconsole.StartupServlet</listener-class>
     
-  </listener>
-	<servlet>
-		<servlet-name>RegistryServlet</servlet-name>
-		<display-name>Registry Servlet</display-name>
-		<servlet-class>org.apache.juddi.servlets.RegistryServlet</servlet-class>
-		<load-on-startup>1</load-on-startup>
-	</servlet>
-
-	<servlet>
-		<servlet-name>NotifyServlet</servlet-name>
-		<display-name>Notify Servlet</display-name>
-		<servlet-class>
-			org.apache.juddi.servlets.NotifyServlet
-    </servlet-class>
-		<load-on-startup>1</load-on-startup>
-	</servlet>
-
-	<servlet>
-		<servlet-name>InquiryService</servlet-name>
-		<servlet-class>org.apache.juddi.api.impl.UDDIInquiryImpl</servlet-class>
-	</servlet>
+    </listener>
+    <servlet>
+        <servlet-name>RegistryServlet</servlet-name>
+        <display-name>Registry Servlet</display-name>
+        <servlet-class>org.apache.juddi.servlets.RegistryServlet</servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+
+    <servlet>
+        <servlet-name>NotifyServlet</servlet-name>
+        <display-name>Notify Servlet</display-name>
+        <servlet-class>
+            org.apache.juddi.servlets.NotifyServlet
+        </servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+
+    <servlet>
+        <servlet-name>InquiryService</servlet-name>
+        <servlet-class>org.apache.juddi.api.impl.UDDIInquiryImpl</servlet-class>
+    </servlet>
 	
-	<servlet>
-		<servlet-name>InquiryServicev2</servlet-name>
-		<servlet-class>org.apache.juddi.api.impl.UDDIv2InquiryImpl</servlet-class>
-	</servlet>
-
-	<servlet>
-		<servlet-name>PublicationService</servlet-name>
-		<servlet-class>org.apache.juddi.api.impl.UDDIPublicationImpl</servlet-class>
-	</servlet>
-	<servlet>
-		<servlet-name>PublicationServicev2</servlet-name>
-		<servlet-class>org.apache.juddi.api.impl.UDDIv2PublishImpl</servlet-class>
-	</servlet>
-
-	<servlet>
-		<servlet-name>ReplicationService</servlet-name>
-		<servlet-class>org.apache.juddi.api.impl.UDDIReplicationImpl</servlet-class>
-	</servlet>
-
-	<servlet>
-		<servlet-name>SecurityService</servlet-name>
-		<servlet-class>org.apache.juddi.api.impl.UDDISecurityImpl</servlet-class>
-	</servlet>
-
-	<servlet>
-		<servlet-name>SubscriptionService</servlet-name>
-		<servlet-class>org.apache.juddi.api.impl.UDDISubscriptionImpl</servlet-class>
-	</servlet>
-
-	<servlet>
-		<servlet-name>SubscriptionListenerService</servlet-name>
-		<servlet-class>org.apache.juddi.api.impl.UDDISubscriptionListenerImpl</servlet-class>
-	</servlet>
-
-	 <servlet>
-		<servlet-name>CustodyTransferService</servlet-name>
-		<servlet-class>org.apache.juddi.api.impl.UDDICustodyTransferImpl</servlet-class>
-	</servlet>
-
-	<servlet>
-		<servlet-name>JUDDIApiService</servlet-name>
-		<servlet-class>org.apache.juddi.api.impl.JUDDIApiImpl</servlet-class>
-	</servlet>
-
-	<servlet-mapping>
-		<servlet-name>NotifyServlet</servlet-name>
-		<url-pattern>/notify/*</url-pattern>
-	</servlet-mapping>
-
-	<servlet-mapping>
-		<servlet-name>InquiryService</servlet-name>
-		<url-pattern>/services/inquiry</url-pattern>
-	</servlet-mapping>
-	<servlet-mapping>
-		<servlet-name>InquiryServicev2</servlet-name>
-		<url-pattern>/services/inquiryv2</url-pattern>
-	</servlet-mapping>
+    <servlet>
+        <servlet-name>InquiryServicev2</servlet-name>
+        <servlet-class>org.apache.juddi.api.impl.UDDIv2InquiryImpl</servlet-class>
+    </servlet>
+
+    <servlet>
+        <servlet-name>PublicationService</servlet-name>
+        <servlet-class>org.apache.juddi.api.impl.UDDIPublicationImpl</servlet-class>
+    </servlet>
+    <servlet>
+        <servlet-name>PublicationServicev2</servlet-name>
+        <servlet-class>org.apache.juddi.api.impl.UDDIv2PublishImpl</servlet-class>
+    </servlet>
+    <!-- 
+      This is covered under the juddiv3replication in order to ensure client-cert auth
+            <servlet>
+                    <servlet-name>ReplicationService</servlet-name>
+                    <servlet-class>org.apache.juddi.api.impl.UDDIReplicationImpl</servlet-class>
+            </servlet>
+    -->
+    <servlet>
+        <servlet-name>UDDIValueSetWS</servlet-name>
+        <servlet-class>org.jboss.wsf.stack.cxf.CXFServletExt</servlet-class>
+    </servlet>  
+  
+    <servlet>
+        <servlet-name>UDDIValueSetCachingWS</servlet-name>
+
+        <servlet-class>org.jboss.wsf.stack.cxf.CXFServletExt</servlet-class>
+    </servlet>  
+
+    <servlet>
+        <servlet-name>SecurityService</servlet-name>
+        <servlet-class>org.apache.juddi.api.impl.UDDISecurityImpl</servlet-class>
+    </servlet>
+
+    <servlet>
+        <servlet-name>SubscriptionService</servlet-name>
+        <servlet-class>org.apache.juddi.api.impl.UDDISubscriptionImpl</servlet-class>
+    </servlet>
+
+    <servlet>
+        <servlet-name>SubscriptionListenerService</servlet-name>
+        <servlet-class>org.apache.juddi.api.impl.UDDISubscriptionListenerImpl</servlet-class>
+    </servlet>
+
+    <servlet>
+        <servlet-name>CustodyTransferService</servlet-name>
+        <servlet-class>org.apache.juddi.api.impl.UDDICustodyTransferImpl</servlet-class>
+    </servlet>
+
+    <servlet>
+        <servlet-name>JUDDIApiService</servlet-name>
+        <servlet-class>org.apache.juddi.api.impl.JUDDIApiImpl</servlet-class>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>NotifyServlet</servlet-name>
+        <url-pattern>/notify/*</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>InquiryService</servlet-name>
+        <url-pattern>/services/inquiry</url-pattern>
+    </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>InquiryServicev2</servlet-name>
+        <url-pattern>/services/inquiryv2</url-pattern>
+    </servlet-mapping>
 	
-	<servlet-mapping>
-		<servlet-name>PublicationService</servlet-name>
-		<url-pattern>/services/publish</url-pattern>
-	</servlet-mapping>
-	<servlet-mapping>
-		<servlet-name>PublicationServicev2</servlet-name>
-		<url-pattern>/services/publishv2</url-pattern>
-	</servlet-mapping>
-
-	<servlet-mapping>
-		<servlet-name>ReplicationService</servlet-name>
-		<url-pattern>/services/replication</url-pattern>
-	</servlet-mapping>
-
-	<servlet-mapping>
-		<servlet-name>SecurityService</servlet-name>
-		<url-pattern>/services/security</url-pattern>
-	</servlet-mapping>
-
-	<servlet-mapping>
-		<servlet-name>SubscriptionService</servlet-name>
-		<url-pattern>/services/subscription</url-pattern>
-	</servlet-mapping>
-
-	<servlet-mapping>
-		<servlet-name>SubscriptionListenerService</servlet-name>
-		<url-pattern>/services/subscription-listener</url-pattern>
-	</servlet-mapping>
-
-	<servlet-mapping>
-		<servlet-name>CustodyTransferService</servlet-name>
-		<url-pattern>/services/custody-transfer</url-pattern>
-	</servlet-mapping>
-
-	<servlet-mapping>
-		<servlet-name>JUDDIApiService</servlet-name>
-		<url-pattern>/services/juddi-api</url-pattern>
-	</servlet-mapping>
-
-	<welcome-file-list id="WelcomeFileList">
-		<welcome-file>index.jsp</welcome-file>
-		<welcome-file>index.html</welcome-file>
-	</welcome-file-list>
-        <security-constraint>
-              <display-name>jUDDI Admin content</display-name>
-              <web-resource-collection>
-                  <web-resource-name>admin</web-resource-name>
-                  <url-pattern>/admin/*</url-pattern>
-
-
-              </web-resource-collection>
-              <auth-constraint>
-                  <role-name>uddiadmin</role-name>
-              </auth-constraint>
-              <!-- uncomment to require SSL <user-data-constraint>
-                <transport-guarantee>CONFIDENTIAL</transport-guarantee>
-              </user-data-constraint>
-              -->
-          </security-constraint>
-            <login-config> 
-                    <auth-method>BASIC</auth-method> 
-                    <!-- you should consider NOT using BASIC is favor of something more secure, see your web app servers documentation for details -->
-                    <realm-name>Apache jUDDI - Make sure you're using HTTPS!</realm-name> 
-              </login-config> 
-          <security-role>
-              <role-name>uddiadmin</role-name>
-          </security-role>
+    <servlet-mapping>
+        <servlet-name>PublicationService</servlet-name>
+        <url-pattern>/services/publish</url-pattern>
+    </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>PublicationServicev2</servlet-name>
+        <url-pattern>/services/publishv2</url-pattern>
+    </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>UDDIValueSetCachingWS</servlet-name>
+        <url-pattern>/services/valueset-caching/*</url-pattern>
+    </servlet-mapping>
+    <servlet-mapping>
+        <servlet-name>UDDIValueSetWS</servlet-name>
+        <url-pattern>/services/valueset-validation/*</url-pattern>
+    </servlet-mapping>
+  
+    <!--
+      This is covered under the juddiv3replication in order to ensure client-cert auth
+            <servlet-mapping>
+                    <servlet-name>ReplicationService</servlet-name>
+                    <url-pattern>/services/replication</url-pattern>
+            </servlet-mapping>
+    -->
+    <servlet-mapping>
+        <servlet-name>SecurityService</servlet-name>
+        <url-pattern>/services/security</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>SubscriptionService</servlet-name>
+        <url-pattern>/services/subscription</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>SubscriptionListenerService</servlet-name>
+        <url-pattern>/services/subscription-listener</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>CustodyTransferService</servlet-name>
+        <url-pattern>/services/custody-transfer</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>JUDDIApiService</servlet-name>
+        <url-pattern>/services/juddi-api</url-pattern>
+    </servlet-mapping>
+
+    <welcome-file-list id="WelcomeFileList">
+        <welcome-file>index.jsp</welcome-file>
+        <welcome-file>index.html</welcome-file>
+    </welcome-file-list>
+    <security-constraint>
+        <display-name>jUDDI Admin content</display-name>
+        <web-resource-collection>
+            <web-resource-name>admin</web-resource-name>
+            <url-pattern>/admin/*</url-pattern>
+
+
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>uddiadmin</role-name>
+        </auth-constraint>
+        <!-- uncomment to require SSL <user-data-constraint>
+          <transport-guarantee>CONFIDENTIAL</transport-guarantee>
+        </user-data-constraint>
+        -->
+    </security-constraint>
+    <login-config> 
+        <auth-method>BASIC</auth-method> 
+        <!-- you should consider NOT using BASIC is favor of something more secure, see your web app servers documentation for details -->
+        <realm-name>Apache jUDDI - Make sure you're using HTTPS!</realm-name> 
+    </login-config> 
+    <security-role>
+        <role-name>uddiadmin</role-name>
+    </security-role>
 </web-app>
     

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 7ae5049..aca35ac 100644
--- a/pom.xml
+++ b/pom.xml
@@ -305,6 +305,7 @@ under the License.
         <module>juddi-rest-cxf</module>
         <module>juddi-core-openjpa</module>
         <module>juddiv3-war</module>
+        <module>juddiv3-war-repl</module>
         <module>juddi-examples</module>
         <module>juddi-gui-dsig</module>
         <module>juddi-gui</module>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/uddi-tck-base/src/main/java/org/apache/juddi/v2/tck/TckPublisher.java
----------------------------------------------------------------------
diff --git a/uddi-tck-base/src/main/java/org/apache/juddi/v2/tck/TckPublisher.java b/uddi-tck-base/src/main/java/org/apache/juddi/v2/tck/TckPublisher.java
index 02539aa..f06c5c9 100644
--- a/uddi-tck-base/src/main/java/org/apache/juddi/v2/tck/TckPublisher.java
+++ b/uddi-tck-base/src/main/java/org/apache/juddi/v2/tck/TckPublisher.java
@@ -55,7 +55,7 @@ public class TckPublisher {
                                 logger.info("Loading tck.properties from " + f.getAbsolutePath());
                         } else {
                                 inputSteam = TckPublisher.class.getResourceAsStream("/tck.properties");
-                                logger.info("Loading tck.properties as a classpath resource, probable within uddi-tck-base.jar");
+                                logger.info("Loading tck.properties as a classpath resource, probably within uddi-tck-base.jar");
                         }
                         tckProperties.load(inputSteam);
                 } catch (IOException ioe) {

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckPublisher.java
----------------------------------------------------------------------
diff --git a/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckPublisher.java b/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckPublisher.java
index 8cf5a26..8259d6d 100644
--- a/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckPublisher.java
+++ b/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckPublisher.java
@@ -54,7 +54,7 @@ public class TckPublisher {
                                 logger.info("Loading tck.properties from " + f.getAbsolutePath());
                         } else {
                                 inputSteam = TckPublisher.class.getResourceAsStream("/tck.properties");
-                                logger.info("Loading tck.properties as a classpath resource, probable within uddi-tck-base.jar");
+                                logger.info("Loading tck.properties as a classpath resource, probably within uddi-tck-base.jar");
                         }
                         tckProperties.load(inputSteam);
                 } catch (IOException ioe) {

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/uddi-tck/pom.xml
----------------------------------------------------------------------
diff --git a/uddi-tck/pom.xml b/uddi-tck/pom.xml
index 91d4c26..c3a6b15 100644
--- a/uddi-tck/pom.xml
+++ b/uddi-tck/pom.xml
@@ -177,10 +177,18 @@
 								<copy file="${basedir}/juddi_install_data_node2/UDDI_tModels.xml" todir="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
 
 								<copy file="${basedir}/context.xml" todir="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddiv3/META-INF" overwrite="true"/>
+								<copy file="${basedir}/context.xml" todir="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddiv3replication/META-INF" overwrite="true"/>
+
 								<copy file="${basedir}/uddiNode2.xml" tofile="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddi-gui/WEB-INF/classes/META-INF/uddi.xml" overwrite="true"/>
+
 								<copy file="${basedir}/juddiv3Node2.xml" tofile="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddiv3/WEB-INF/classes/juddiv3.xml" overwrite="true" />
 
+								<copy file="${basedir}/juddiv3Node2.xml" tofile="target/node2/juddi-tomcat-${project.parent.version}/webapps/juddiv3replication/WEB-INF/classes/juddiv3.xml" overwrite="true" />
+
+
+
 								<copy file="${basedir}/juddiv3Node1.xml" tofile="target/juddi-tomcat-${project.parent.version}/webapps/juddiv3/WEB-INF/classes/juddiv3.xml" overwrite="true" />
+								<copy file="${basedir}/juddiv3Node1.xml" tofile="target/juddi-tomcat-${project.parent.version}/webapps/juddiv3replication/WEB-INF/classes/juddiv3.xml" overwrite="true" />
 
 
 
@@ -216,7 +224,7 @@
 									<cargo.logging>high</cargo.logging>
 									<cargo.hostname>localhost</cargo.hostname>
 									<cargo.servlet.port>8880</cargo.servlet.port>
-									<cargo.jvmargs>-Xms256m -Xmx256m -XX:MaxPermSize=256M -Djava.endorsed.dirs=${basedir}/target/juddi-tomcat-${project.parent.version}/endorsed</cargo.jvmargs>
+									<cargo.jvmargs>-Xms256m -Xmx256m -XX:MaxPermSize=256M -Djava.endorsed.dirs=${basedir}/target/juddi-tomcat-${project.parent.version}/endorsed -Djavax.net.ssl.keyStore=${basedir}/../juddi-tomcat/keystore.jks -Djavax.net.ssl.keyStorePassword=password -Djavax.net.ssl.trustStore=${basedir}/../juddi-tomcat/truststore.jks -Djavax.net.ssl.trustStorePassword=password</cargo.jvmargs>
 								</properties>
 							</configuration>
 						</configuration>
@@ -242,7 +250,7 @@
 									<cargo.logging>high</cargo.logging>
 									<cargo.hostname>localhost</cargo.hostname>
 									<cargo.servlet.port>8980</cargo.servlet.port>
-									<cargo.jvmargs>-Xms256m -Xmx256m -XX:MaxPermSize=256M -Djava.endorsed.dirs=${basedir}/target/node2/juddi-tomcat-${project.parent.version}/endorsed</cargo.jvmargs>
+									<cargo.jvmargs>-Xms256m -Xmx256m -XX:MaxPermSize=256M -Djava.endorsed.dirs=${basedir}/target/node2/juddi-tomcat-${project.parent.version}/endorsed -Djavax.net.ssl.keyStore=${basedir}/../juddi-tomcat/keystore.jks -Djavax.net.ssl.keyStorePassword=password  -Djavax.net.ssl.trustStore=${basedir}/../juddi-tomcat/truststore.jks -Djavax.net.ssl.trustStorePassword=password</cargo.jvmargs>
 								</properties>
 							</configuration>
 						</configuration>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/uddi-tck/server.xml
----------------------------------------------------------------------
diff --git a/uddi-tck/server.xml b/uddi-tck/server.xml
index 6c98bd7..d361fba 100644
--- a/uddi-tck/server.xml
+++ b/uddi-tck/server.xml
@@ -78,11 +78,13 @@
          This connector uses the JSSE configuration, when using APR, the 
          connector should be using the OpenSSL style configuration
          described in the APR documentation -->
-    <!--
+    
     <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                maxThreads="150" scheme="https" secure="true"
-               clientAuth="false" sslProtocol="TLS" />
-    -->
+               clientAuth="want" sslProtocol="TLS" 
+               truststoreFile="truststore.jks" truststorePass="password"
+         keystoreFile="conf/keystore.jks" keystorePass="password"
+         />
 
     <!-- Define an AJP 1.3 Connector on port 8009 -->
     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/uddi-tck/serverNode2.xml
----------------------------------------------------------------------
diff --git a/uddi-tck/serverNode2.xml b/uddi-tck/serverNode2.xml
index 1de8e6e..4f02569 100644
--- a/uddi-tck/serverNode2.xml
+++ b/uddi-tck/serverNode2.xml
@@ -84,6 +84,13 @@
                clientAuth="false" sslProtocol="TLS" />
     -->
 
+    <Connector port="9443" protocol="HTTP/1.1" SSLEnabled="true"
+               maxThreads="150" scheme="https" secure="true"
+               clientAuth="want" sslProtocol="TLS" 
+               truststoreFile="truststore.jks" truststorePass="password"
+         keystoreFile="conf/keystore.jks" keystorePass="password"
+         />
+
     <!-- Define an AJP 1.3 Connector on port 8009 -->
     <Connector port="9009" protocol="AJP/1.3" redirectPort="9443" />
 

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/uddi-tck/src/main/resources/META-INF/uddi.xml
----------------------------------------------------------------------
diff --git a/uddi-tck/src/main/resources/META-INF/uddi.xml b/uddi-tck/src/main/resources/META-INF/uddi.xml
index 0fdaff4..ec9e2a7 100644
--- a/uddi-tck/src/main/resources/META-INF/uddi.xml
+++ b/uddi-tck/src/main/resources/META-INF/uddi.xml
@@ -32,6 +32,7 @@
                                 <properties>
                                         <property name="serverName" value="localhost" />
                                         <property name="serverPort" value="8880" />
+                                        <property name="serverSSLPort" value="8443" />
                                         <!-- for UDDI nodes that use HTTP u/p, using the following 
                                         <property name="basicAuthUsername" value="root" />
                                         <property name="basicAuthPassword" value="password" />
@@ -48,7 +49,7 @@
                                 <subscriptionUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription</subscriptionUrl>
                                 <subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener</subscriptionListenerUrl>
                                 <juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api</juddiApiUrl>
-                                <replicationUrl>http://${serverName}:${serverPort}/juddiv3/services/replication</replicationUrl>
+                                <replicationUrl>https://${serverName}:${serverSSLPort}/juddiv3replication/services/replication</replicationUrl>
                                 <!-- this is just for juddi gui tests -->
                                 <juddigui>http://${serverName}:${serverPort}/juddi-gui/</juddigui>
                         </node>
@@ -60,6 +61,7 @@
                                 <properties>
                                         <property name="serverName" value="localhost" />
                                         <property name="serverPort" value="8980" />
+                                        <property name="serverSSLPort" value="9443" />
                                         <!-- for UDDI nodes that use HTTP u/p, using the following 
                                         <property name="basicAuthUsername" value="root" />
                                         <property name="basicAuthPassword" value="password" />
@@ -76,7 +78,7 @@
                                 <subscriptionUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription</subscriptionUrl>
                                 <subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener</subscriptionListenerUrl>
                                 <juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api</juddiApiUrl>
-                                <replicationUrl>http://${serverName}:${serverPort}/juddiv3/services/replication</replicationUrl>
+                                <replicationUrl>https://${serverName}:${serverSSLPort}/juddiv3replication/services/replication</replicationUrl>
                                 <!-- this is just for juddi gui tests -->
                                 <juddigui>http://${serverName}:${serverPort}/juddi-gui/</juddigui>
                         </node>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_300_MultiNodeIntegrationTest.java
----------------------------------------------------------------------
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 47a3b29..e52e58c 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
@@ -28,6 +28,7 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.juddi.v3.client.UDDIConstants;
 import org.apache.juddi.v3.client.UDDIService;
 import org.apache.juddi.v3.client.config.UDDIClient;
+import org.apache.juddi.v3.client.cryptor.TransportSecurityHelper;
 import org.apache.juddi.v3.client.transport.Transport;
 import org.apache.juddi.v3_service.JUDDIApiPortType;
 import org.junit.AfterClass;
@@ -107,8 +108,8 @@ public class JUDDI_300_MultiNodeIntegrationTest {
         private static UDDIPublicationPortType publishSamNode2;
         private static UDDIInquiryPortType inquiryMary;
         private static UDDIInquiryPortType inquirySamNode2;
-        private static UDDIReplicationPortType replicationMary;
-        private static UDDIReplicationPortType replicationSam;
+        //private static UDDIReplicationPortType replicationMary;
+        //private static UDDIReplicationPortType replicationSam;
         static TckBusiness maryBizNode1;
         static TckTModel maryTModelNode1;
 
@@ -144,11 +145,12 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                 custodyMary = node1.getUDDICustodyTransferService();
                 inquiryMary = node1.getUDDIInquiryService();
                 publishMary = node1.getUDDIPublishService();
-                UDDIService uddiService = new UDDIService();
+               // UDDIService uddiService = new UDDIService();
 
-                replicationMary = uddiService.getUDDIReplicationPort();
-
-                ((BindingProvider) replicationMary).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, manager.getClientConfig().getUDDINode(CFG_node1_MARY).getReplicationUrl());
+                //replicationMary = uddiService.getUDDIReplicationPort();
+                //((BindingProvider) replicationMary).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, manager.getClientConfig().getUDDINode(CFG_node1_MARY).getReplicationUrl());
+                //TransportSecurityHelper.applyTransportSecurity((BindingProvider) replicationMary);
+                //logger.info("Using replication endpoint Node1...@" + ((BindingProvider)replicationMary).getRequestContext().get(BindingProvider.ENDPOINT_ADDRESS_PROPERTY));
                 UDDISecurityPortType secNode1 = node1.getUDDISecurityService();
                 rootNode1Token = TckSecurity.getAuthToken(secNode1, TckPublisher.getRootPublisherId(), TckPublisher.getRootPassword());
                 maryTokenNode1 = TckSecurity.getAuthToken(secNode1, TckPublisher.getMaryPublisherId(), TckPublisher.getMaryPassword());
@@ -157,8 +159,11 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                 UDDISecurityPortType secNode2 = node2.getUDDISecurityService();
                 rootNode2Token = TckSecurity.getAuthToken(secNode2, TckPublisher.getRootPublisherId(), TckPublisher.getRootPassword());
                 samTokenNode2 = TckSecurity.getAuthToken(secNode2, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
-                replicationSam = uddiService.getUDDIReplicationPort();
-                ((BindingProvider) replicationSam).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, manager.getClientConfig().getUDDINode(CFG_node2_SAM).getReplicationUrl());
+                //replicationSam = uddiService.getUDDIReplicationPort();
+                //((BindingProvider) replicationSam).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, manager.getClientConfig().getUDDINode(CFG_node2_SAM).getReplicationUrl());
+                //TransportSecurityHelper.applyTransportSecurity((BindingProvider) replicationSam);
+                //logger.info("Using replication endpoint Node2...@" + ((BindingProvider)replicationSam).getRequestContext().get(BindingProvider.ENDPOINT_ADDRESS_PROPERTY));
+
                 juddiApiServiceNode2 = node2.getJUDDIApiService();
                 custodySam = node2.getUDDICustodyTransferService();
                 inquirySamNode2 = node2.getUDDIInquiryService();
@@ -176,11 +181,11 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                         TckSecurity.setCredentials((BindingProvider) custodyMary, TckPublisher.getMaryPublisherId(), TckPublisher.getMaryPassword());
                         TckSecurity.setCredentials((BindingProvider) inquiryMary, TckPublisher.getMaryPublisherId(), TckPublisher.getMaryPassword());
                         TckSecurity.setCredentials((BindingProvider) publishMary, TckPublisher.getMaryPublisherId(), TckPublisher.getMaryPassword());
-                        TckSecurity.setCredentials((BindingProvider) replicationMary, TckPublisher.getMaryPublisherId(), TckPublisher.getMaryPassword());
+                        //TckSecurity.setCredentials((BindingProvider) replicationMary, TckPublisher.getMaryPublisherId(), TckPublisher.getMaryPassword());
 
                         TckSecurity.setCredentials((BindingProvider) custodySam, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
                         TckSecurity.setCredentials((BindingProvider) inquirySamNode2, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
-                        TckSecurity.setCredentials((BindingProvider) replicationSam, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
+                        //TckSecurity.setCredentials((BindingProvider) replicationSam, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
                         TckSecurity.setCredentials((BindingProvider) publishSamNode2, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
 
                 }
@@ -248,9 +253,12 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                                 Assert.fail(ex.getMessage());
 
                         }
-                        if (replicationNode1.getCommunicationGraph() == null) {
-                                replicationNode1.setCommunicationGraph(new CommunicationGraph());
-                        }
+                        //if (replicationNode1.getCommunicationGraph() == null) {
+                        replicationNode1.setCommunicationGraph(new CommunicationGraph());
+                        //}
+
+                        replicationNode1.getOperator().clear();
+                        replicationNode1.getSignature().clear();
 
                         Operator op = new Operator();
                         op.setOperatorNodeID("uddi:juddi.apache.org:node1");
@@ -259,9 +267,9 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                         op.getContact().add(new Contact());
                         op.getContact().get(0).getPersonName().add(new PersonName("bob", "en"));
                         op.getContact().get(0).setUseType("admin");
-                        if (!Contains(replicationNode1.getOperator(), op)) {
+                        //if (!Contains(replicationNode1.getOperator(), op)) {
                                 replicationNode1.getOperator().add(op);
-                        }
+                        //}
 
                         op = new Operator();
                         op.setOperatorNodeID("uddi:another.juddi.apache.org:node2");
@@ -270,15 +278,16 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                         op.getContact().add(new Contact());
                         op.getContact().get(0).getPersonName().add(new PersonName("mary", "en"));
                         op.getContact().get(0).setUseType("admin");
-                        if (!Contains(replicationNode1.getOperator(), op)) {
+                        //if (!Contains(replicationNode1.getOperator(), op)) 
+                        {
                                 replicationNode1.getOperator().add(op);
                         }
-                        if (!replicationNode1.getCommunicationGraph().getNode().contains("uddi:another.juddi.apache.org:node2")) {
+                        //if (!replicationNode1.getCommunicationGraph().getNode().contains("uddi:another.juddi.apache.org:node2")) {
                                 replicationNode1.getCommunicationGraph().getNode().add("uddi:another.juddi.apache.org:node2");
-                        }
-                        if (!replicationNode1.getCommunicationGraph().getNode().contains("uddi:juddi.apache.org:node1")) {
+                        //}
+                        //if (!replicationNode1.getCommunicationGraph().getNode().contains("uddi:juddi.apache.org:node1")) {
                                 replicationNode1.getCommunicationGraph().getNode().add("uddi:juddi.apache.org:node1");
-                        }
+                        //}
                         replicationNode1.setSerialNumber(0L);
                         replicationNode1.setTimeOfConfigurationUpdate("");
                         replicationNode1.setMaximumTimeToGetChanges(BigInteger.ONE);
@@ -292,9 +301,12 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                         if (TckCommon.isDebug()) {
                                 JAXB.marshal(replicationNode1, System.out);
                         }
-                        logger.info("Setting replication config on Node 1...");
+
+                        logger.info(manager.getClientConfig().getConfigurationFile() + " Setting replication config on Node 1...@" + ((BindingProvider) juddiApiServiceNode1).getRequestContext().get(BindingProvider.ENDPOINT_ADDRESS_PROPERTY));
+                        logger.info("Setting replication url on Node 1...@" + manager.getClientConfig().getUDDINode(CFG_node1_MARY).getReplicationUrl());
                         juddiApiServiceNode1.setReplicationNodes(rootNode1Token, replicationNode1);
-                        logger.info("Setting replication config on Node 2...");
+                        logger.info("Setting replication config on Node 2...@" + ((BindingProvider) juddiApiServiceNode2).getRequestContext().get(BindingProvider.ENDPOINT_ADDRESS_PROPERTY));
+                        logger.info("Setting replication url on Node 2...@" + manager.getClientConfig().getUDDINode(CFG_node2_SAM).getReplicationUrl());
                         juddiApiServiceNode2.setReplicationNodes(rootNode2Token, replicationNode1);
 
                 } catch (Exception ex) {
@@ -702,14 +714,15 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                         while (timeout > 0) {
                                 logger.info("Waiting for the update...");
                                 try {
-                                        
+
                                         tModelDetail = inquirySamNode2.getTModelDetail(findTModel);
                                         Assert.assertNotNull(tModelDetail);
                                         Assert.assertNotNull(tModelDetail.getTModel());
                                         Assert.assertNotNull(tModelDetail.getTModel().get(0));
                                         Assert.assertEquals(tModelDetail.getTModel().get(0).getTModelKey(), TckTModel.MARY_PUBLISHER_TMODEL_KEY);
-                                        if (tModelDetail.getTModel().get(0).isDeleted())
+                                        if (tModelDetail.getTModel().get(0).isDeleted()) {
                                                 break;
+                                        }
                                 } catch (Exception ex) {
                                         logger.warn(ex.getMessage());
                                         tModelDetail = null;
@@ -760,9 +773,10 @@ public class JUDDI_300_MultiNodeIntegrationTest {
 
                         resetBusinesses();
                         resetTmodels();
-                        try{
-                        samTModelNode2.saveTmodels(rootNode2Token);
-                        }catch (Exception ex){}
+                        try {
+                                samTModelNode2.saveTmodels(rootNode2Token);
+                        } catch (Exception ex) {
+                        }
                         samTModelNode2.saveSamSyndicatorTmodel(samTokenNode2);
                         samBizNode2.saveSamSyndicatorBusiness(samTokenNode2);
 
@@ -1005,10 +1019,10 @@ public class JUDDI_300_MultiNodeIntegrationTest {
                                 DeleteBusiness db = new DeleteBusiness();
                                 db.setAuthInfo(samTokenNode2);
                                 db.getBusinessKey().add(TckBusiness.SAM_BUSINESS_KEY);
-                                try{
-                                publishSamNode2.deleteBusiness(db);
+                                try {
+                                        publishSamNode2.deleteBusiness(db);
+                                } catch (Exception ex) {
                                 }
-                                catch (Exception ex){}
                                 int timeout = TckPublisher.getSubscriptionTimeout();
                                 GetBusinessDetail findTModel = new GetBusinessDetail();
                                 findTModel.setAuthInfo(maryTokenNode1);
@@ -1049,10 +1063,10 @@ public class JUDDI_300_MultiNodeIntegrationTest {
          * @throws Exception
          */
         private void getReplicationStatus() throws Exception {
-                logger.info("Getting replication status....Mary's node1...");
-                waitUntilSynched(replicationMary);
-                logger.info("Getting replication status....Sam's node2...");
-                waitUntilSynched(replicationSam);
+              //  logger.info("Getting replication status....Mary's node1...");
+                //  waitUntilSynched(replicationMary);
+                //  logger.info("Getting replication status....Sam's node2...");
+                //  waitUntilSynched(replicationSam);
         }
 
         private void waitUntilSynched(UDDIReplicationPortType repl) throws Exception {
@@ -1245,7 +1259,9 @@ public class JUDDI_300_MultiNodeIntegrationTest {
          * <a href="http://www.uddi.org/pubs/uddi-v3.0.2-20041019.htm#_Toc85908178">7.3.9</a>
          * for more info on collision detection
          *
-         * requires support for conditional new data inserts and concurrence from nodes.
+         * requires support for conditional new data inserts and concurrence
+         * from nodes.
+         *
          * @throws Exception
          */
         @Test
@@ -1256,9 +1272,8 @@ public class JUDDI_300_MultiNodeIntegrationTest {
 
                         maryTModelNode1.saveMaryPublisherTmodel(maryTokenNode1);
                         samTModelNode2.saveMaryPublisherTmodel(samTokenNode2);
-                        
-                        //TODO assert both records removed
 
+                        //TODO assert both records removed
                 } finally {
                         resetTmodels();
                 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org


[03/12] juddi git commit: JUDDI-919 replication now works with ssl + client-cert authentication. In order to support this, we need to have two different war file (unfortunately). Included with this change set is number of typos in our deployment files (w

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/UDDI_tModels.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/UDDI_tModels.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/UDDI_tModels.xml
new file mode 100644
index 0000000..7ec0a9a
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/UDDI_tModels.xml
@@ -0,0 +1,800 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+<save_tModel xmlns="urn:uddi-org:api_v3">
+  <tModel tModelKey="uddi:uddi.org:keygenerator" xmlns="urn:uddi-org:api_v3">
+    <name>uddi-org:keyGenerator</name>
+    <description>UDDI domain key generator</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+        keyValue="keyGenerator" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:categorization:keygenerator" xmlns="urn:uddi-org:api_v3">
+    <name>uddi-org:categorization:keyGenerator
+		</name>
+    <description>Key Generator for UDDI Categorization tModels
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#categorizationKeyGen
+          </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:sortorder:keygenerator" xmlns="urn:uddi-org:api_v3">
+    <name>uddi-org:sortorder:keyGenerator
+		</name>
+    <description>Key Generator for UDDI Sort Order tModels
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#sortorderKeyGen
+          </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:transport:keygenerator" xmlns="urn:uddi-org:api_v3">
+    <name>uddi-org:transport:keyGenerator
+		</name>
+    <description>Key Generator for UDDI Transport tModels </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#transportKeyGen
+          </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:protocol:keygenerator" xmlns="urn:uddi-org:api_v3">
+    <name>uddi-org: protocol:keyGenerator</name>
+    <description> Key Generator for UDDI Protocol tModels </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#protocolKeyGen
+          </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:v3_inquiry">
+    <name>uddi-org:inquiry_v3</name>
+    <description>UDDI Inquiry API V3.0</description>
+    <overviewDoc>
+      <overviewURL useType="wsdlInterface">
+        http://uddi.org/wsdl/uddi_api_v3_binding.wsdl#UDDI_Inquiry_SoapBinding
+			</overviewURL>
+    </overviewDoc>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#InqV3
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:soap" keyValue="soapSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:xml" keyValue="xmlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:specification" keyValue="specification" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:v3_publication">
+    <name>uddi-org:publication_v3</name>
+    <description>UDDI Publication API V3.0</description>
+    <overviewDoc>
+      <overviewURL useType="wsdlInterface">
+        http://uddi.org/wsdl/uddi_api_v3_binding.wsdl#UDDI_Publication_SoapBinding
+			</overviewURL>
+    </overviewDoc>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#PubV3
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:soap" keyValue="soapSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:xml" keyValue="xmlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:specification" keyValue="specification" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:v3_security">
+    <name>uddi-org:security_v3</name>
+    <description>UDDI Security API V3.0</description>
+    <overviewDoc>
+      <overviewURL useType="wsdlInterface">
+        http://uddi.org/wsdl/uddi_api_v3_binding.wsdl#UDDI_Security_SoapBinding
+			</overviewURL>
+    </overviewDoc>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#SecV3
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:soap" keyValue="soapSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:xml" keyValue="xmlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:specification" keyValue="specification" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:categorization:types">
+    <name>uddi-org:types</name>
+    <description>UDDI Type Category System</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#UDDITypes
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:cacheable" keyValue="cacheable" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:categorization:general_keywords">
+    <name>uddi-org:general_keywords</name>
+    <description>Category system consisting of namespace
+      identifiers and the keywords associated with
+      the namespaces.
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#GenKW
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:categorization:nodes">
+    <name>uddi-org:nodes</name>
+    <description>Category system for identifying the nodes
+      of a registry.
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#Nodes
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:relationships">
+    <name>uddi-org:relationships</name>
+    <description>Basic types of business relationships
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#Relationships
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:unchecked" keyValue="unchecked" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:categorization:owningbusiness">
+    <name>uddi-org:owningBusiness_v3</name>
+    <description>Category system used to point to the
+      businessEntity
+      associated with the publisher of the tModel.
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#owningBusiness
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+
+      <keyedReference keyName="entityKeyValues" keyValue="businessKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:identifier:isreplacedby">
+    <name>uddi-org:isReplacedBy</name>
+    <description>Identifier system used to point to the UDDI
+      entity,
+      using UDDI keys, that is the logical replacement
+      for the one in which isReplacedBy is used.
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#IsReplacedBy
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:identifier" keyValue="identifier" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+
+      <keyedReference keyName="entityKeyValues" keyValue="businessKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+
+      <keyedReference keyName="entityKeyValues" keyValue="tModelKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:categorization:validatedby">
+    <name>uddi-org:validatedBy</name>
+    <description>Category system used to point a value set or
+      category
+      group system tModel to associated value set Web service
+      implementations.
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#validatedBy
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="entityKeyValues" keyValue="bindingKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:categorization:derivedfrom">
+    <name>uddi-org:derivedFrom</name>
+    <description>Category system for referring tModels to other
+      tModels for the purpose of reuse.
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#DerivedFrom
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="entityKeyValues" keyValue="tModelKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:categorization:entitykeyvalues">
+    <name>uddi-org:entityKeyValues</name>
+    <description>Category system used to declare that a value set
+      uses entity keys as valid values.
+     </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#entityKeyValues
+          </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:protocol:serverauthenticatedssl3">
+    <name>uddi-org:serverAuthenticatedSSL3
+		</name>
+    <description>Secure Sockets Layer Version 3.0 with Server
+      Authentication</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#serverSSL3
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:protocol" keyValue="protocol" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:protocol:mutualauthenticatedssl3">
+    <name>uddi-org:mutualAuthenticatedSSL3
+		</name>
+    <description>Secure Sockets Layer Version 3.0 with Mutual
+      Authentication</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#mutualSSL3
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:protocol" keyValue="protocol" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:transport:http">
+    <name>uddi-org:http</name>
+    <description> A Web service that uses HTTP transport</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#overHTTP
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:transport:smtp">
+    <name>uddi-org:smtp</name>
+    <description>E-mail based Web service</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#overSMTP
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:transport:ftp">
+    <name>uddi-org:ftp</name>
+    <description>File Transfer Protocol (FTP) based Web service
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#overFTP
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:transport:fax">
+    <name>uddi-org:fax</name>
+    <description>Fax-based Web service</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#overFax
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:transport:telephone">
+    <name>uddi-org:telephone</name>
+    <description>Telephone based service</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#overPhone
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:approximatematch">
+    <name>uddi-org:approximateMatch:SQL99
+		</name>
+    <description>UDDI approximate matching find qualifier
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#wildcard
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:exactmatch">
+    <name>uddi-org:exactMatch</name>
+    <description>UDDI exact name matching findQualifier
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#exactmatch
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:caseinsensitivematch">
+    <name>uddi-org:caseInsensitiveMatch
+		</name>
+    <description>UDDI case insensitive matching find qualifier
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#caseinsens
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:casesensitivematch">
+    <name>uddi-org:caseSensitiveMatch</name>
+    <description>UDDI Case Sensitive Matching find qualifier
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#casesens
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:diacriticsinsensitivematch">
+    <name>uddi-org:diacriticsInsensitiveMatch
+		</name>
+    <description>UDDI Diacritics Insensitive Matching find qualifier
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#diacritInsens
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:diacriticssensitivematch">
+    <name>uddi-org:diacriticsSensitiveMatch
+		</name>
+    <description>UDDI Diacritics Sensitive Matching find qualifier
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#diacritSens
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:sortorder:binarysort">
+    <name>uddi-org:binarySort</name>
+    <description>UDDI binary sort sortOrder qualifier
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#sortOrd
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:sortOrder" keyValue="sortOrder" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:sortorder:uts-10">
+    <name>uddi-org:UTS-10</name>
+    <description>UDDI Unicode Technical Standard #10 sort
+      collation sequence find qualifier
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#UCASort
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:sortOrder" keyValue="sortOrder" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:caseinsensitivesort">
+    <name>uddi-org:caseInsensitiveSort</name>
+    <description>UDDI sort qualifier used to sort results without
+      regard to case</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#caseInsensSort
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:casesensitivesort">
+    <name>uddi-org:caseSensitiveSort</name>
+    <description>UDDI sort qualifier used to sort results using
+      case sensitivity</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#caseSensSort
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+
+      <keyedReference keyName="uddi-org:types:sortOrder" keyValue="sortOrder" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:sortbynameasc">
+    <name>uddi-org:sortByNameAsc</name>
+    <description>UDDI sort qualifier used to sort results by name
+      in ascending order</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#nameAsc
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:sortbynamedesc">
+    <name>uddi-org:sortByNameDesc</name>
+    <description>UDDI sort qualifier used to sort results by
+      name in descending order</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#nameDesc
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:sortbydateasc">
+    <name>uddi-org:sortByDateAsc</name>
+    <description>UDDI sort qualifier used to sort results by date in
+      ascending order</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#dateAsc
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:sortbydatedesc">
+    <name>uddi-org:sortByDateDesc</name>
+    <description>UDDI sort qualifier used to sort results
+      by date in descending order</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#dateDesc
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:andallkeys">
+    <name>uddi-org:andAllKeys</name>
+    <description>UDDI find qualifier used to request that a
+      logical AND be performed on bag contents
+      prior to a search</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#andAll
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:orallkeys">
+    <name>uddi-org:orAllKeys</name>
+    <description>UDDI find qualifier used to request that a
+      logical OR be performed on bag contents
+      prior to a search</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#orAll
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:orlikekeys">
+    <name>uddi-org:orLikeKeys</name>
+    <description>UDDI find qualifier used to find entities
+      that reference one of the values from each
+      referenced value set</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#orLike
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:combinecategorybags">
+    <name>uddi-org:combineCategoryBags</name>
+    <description>UDDI find qualifier used to treat all of the
+      categoryBags within a businessEntity as if
+      they were one during inquiry</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#combineCatBags
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:servicesubset">
+    <name>uddi-org:serviceSubset</name>
+    <description>UDDI find qualifier used to use categoryBags
+      of businessService elements to satisfy the
+      find_business inquiry.</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#servSubset
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:bindingsubset">
+    <name>uddi-org:bindingSubset</name>
+    <description>UDDI find qualifier for specifying use of
+      categoryBags of bindingTempate elements to satisfy
+      the find_business or find_service inquiries.
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#bindSubset
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:suppressProjectedServices">
+    <name>uddi-org:suppressProjectedServices
+		</name>
+    <description>UDDI find qualifier used to exclude service
+      projections from an inquiry function at all
+      levels.</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#suppressProjSvcs
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:signaturepresent">
+    <name>uddi-org:signaturePresent</name>
+    <description>UDDI findQualifier used to return only entities
+      that have or are contained in entities that have
+      XML Digital Signatures.</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#sign
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:specification:hostingredirector">
+    <name>uddi-org:hostingRedirector</name>
+    <description>UDDI Hosting Redirector service specification
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#hostDir
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:specification" keyValue="specification" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:specification:v3_policy">
+    <name>uddi-org:v3_policy</name>
+    <description>UDDI Policy Description service specification
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#policyDesc
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:specification" keyValue="specification" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:v3_ownership_transfer">
+    <name>uddi-org:ownership_transfer_v3</name>
+    <description>UDDI Custody and Ownership Transfer API V3.0</description>
+    <overviewDoc>
+      <overviewURL useType="wsdlInterface">
+         http://uddi.org/wsdl/uddi_custody_v3_binding.wsdl
+      </overviewURL>
+    </overviewDoc>
+    <overviewDoc>
+      <overviewURL useType="text">
+         http://uddi.org/pubs/uddi_v3.htm#OwnershipTransfer
+      </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:wsdl"
+        keyValue="wsdlSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:soap"
+        keyValue="soapSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:xml"
+        keyValue="xmlSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:specification"
+        keyValue="specification"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+     </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:v3_subscription">
+    <name>uddi-org:subscription_v3</name>
+    <description>UDDI Subscription API V3.0</description>
+    <overviewDoc>
+      <overviewURL useType="wsdlInterface">
+         http://uddi.org/wsdl/uddi_sub_v3_binding.wsdl
+      </overviewURL>
+    </overviewDoc>
+    <overviewDoc>
+      <overviewURL useType="text">
+         http://uddi.org/pubs/uddi_v3.htm#Sub
+      </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:wsdl"
+        keyValue="wsdlSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:soap"
+        keyValue="soapSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:xml"
+        keyValue="xmlSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:specification"
+        keyValue="specification"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+     </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:v3_subscriptionlistener">
+    <name>uddi-org:subscriptionListener_v3</name>
+    <description>UDDI Subscription Listener API V3.0</description>
+    <overviewDoc>
+      <overviewURL useType="wsdlInterface">
+          http://uddi.org/wsdl/uddi_subr_v3_binding.wsdl
+      </overviewURL>
+    </overviewDoc>
+    <overviewDoc>
+      <overviewURL useType="text">
+         http://uddi.org/pubs/uddi_v3.htm#Subscribe
+      </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:wsdl"
+        keyValue="wsdlSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:soap"
+        keyValue="soapSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:xml"
+        keyValue="xmlSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:specification"
+        keyValue="specification"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+     </categoryBag>
+  </tModel>
+</save_tModel>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/marketing_BusinessEntity.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/marketing_BusinessEntity.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/marketing_BusinessEntity.xml
new file mode 100644
index 0000000..62d8593
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/marketing_BusinessEntity.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+ <!-- 
+  This file contains the root business entity structure that represents your registry.  The key chosen (or generated) for this entity will serve
+  as the node id for all entities published within the registry.  The services contained within this business entity reflect the UDDI APIs that
+  you wish to support (adding or subtracting the services here will not enable/disable them, simply add/omit them from being discovered via UDDI).
+  
+  The top-level business entity and sub-entities all use keys as unique identifiers.  They are left blank by default which means the system will
+  generate a key (generated as root partition with GUID appended).  You can choose to create your own, human-readable keys but they must match
+  the root key generator created in the root_tModelKeyGen.xml file.  Matching means they must equal the root key generator with the keyword
+  "keygenerator" replaced by your own string.
+  
+  Example:
+  
+  root_tModelKeyGen.xml key is uddi:www.mycompany.com:registry:keygenerator
+  
+  Legal user-defined keys are:
+  
+  uddi:www.mycompany.com:registry:ubr-node (for the businessKey)
+  uddi:www.mycompany.com:registry:inquiry-service (for the inquiry service service key)
+  uddi:www.mycompany.com:registry:inquiry-service-wsdlDeployment (for the inquiry service binding template that represents the WSDL)
+  
+  
+  See below for other fields that you may want to edit...
+  -->
+<businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:marketing.apache.org:marketing-asf">
+  <!-- Change the name field to represent the name of your registry -->
+  <name xml:lang="en">Marketing Node</name>
+  <!-- Change the description field to provided a brief description of your registry -->
+  <description xml:lang="en">This is a UDDI v3 registry for Marketing</description>
+  <discoveryURLs>
+    <!-- This discovery URL should point to the home installation URL of jUDDI -->
+    <discoveryURL useType="home">${juddi.server.baseurl}/juddiv3</discoveryURL>
+  </discoveryURLs>
+  <businessServices>
+    <!-- As mentioned above, you may want to provide user-defined keys for these (and the services/bindingTemplates below.  Services that you
+    don't intend to support should be removed entirely -->
+    <businessService serviceKey="uddi:marketing.apache.org:services-subscriptionlistener" businessKey="uddi:marketing.apache.org:marketing-asf">
+      <name xml:lang="en">Marketing Subscription Listener Service</name>
+      <description xml:lang="en">Web Service supporting UDDI Subscription Listener API</description>
+      <bindingTemplates>
+        <bindingTemplate bindingKey="uddi:marketing.apache.org:servicebindings-subscriptionlistener-ws" serviceKey="uddi:marketing.apache.org:services-subscriptionlistener">
+          <description>UDDI Subscription Listener API V3</description>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/subscription-listener?wsdl</accessPoint>
+          <tModelInstanceDetails>
+            <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_subscriptionlistener" />
+          </tModelInstanceDetails>
+          <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment" tModelKey="uddi:uddi.org:categorization:types"/>
+          </categoryBag>
+        </bindingTemplate>
+      </bindingTemplates>
+    </businessService>
+  </businessServices>
+</businessEntity>
+
+
+
+

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/marketing_Publisher.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/marketing_Publisher.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/marketing_Publisher.xml
new file mode 100644
index 0000000..af2822a
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/marketing_Publisher.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+<publisher xmlns="urn:juddi-apache-org:api_v3" authorizedName="marketing">
+  <publisherName>Marketing Listener Publisher</publisherName>
+  <isAdmin>false</isAdmin>
+</publisher>
+

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/marketing_tModels.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/marketing_tModels.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/marketing_tModels.xml
new file mode 100644
index 0000000..c88e302
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/marketing_tModels.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+<save_tModel xmlns="urn:uddi-org:api_v3">
+	<tModel tModelKey="uddi:marketing.apache.org:keygenerator" xmlns="urn:uddi-org:api_v3">
+	  <name>marketing-apache-org:keyGenerator</name>
+	  <description>Marketing domain key generator</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
+	  </overviewDoc>
+	  <categoryBag>
+	    <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+	      keyValue="keyGenerator" />
+	  </categoryBag>
+	</tModel>
+	<tModel tModelKey="uddi:marketing.apache.org:subscription:keygenerator" xmlns="urn:uddi-org:api_v3">
+	  <name>marketing-apache-org:subscription:keyGenerator</name>
+	  <description>Marketing Subscriptions domain key generator</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
+	  </overviewDoc>
+	  <categoryBag>
+	    <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+	      keyValue="keyGenerator" />
+	  </categoryBag>
+	</tModel>
+	<tModel tModelKey="uddi:sales.apache.org:keygenerator" xmlns="urn:uddi-org:api_v3">
+	  <name>sales-apache-org:keyGenerator</name>
+	  <description>Sales Root domain key generator</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
+	  </overviewDoc>
+	  <categoryBag>
+	    <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+	      keyValue="keyGenerator" />
+	  </categoryBag>
+	</tModel>
+</save_tModel>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/root_BusinessEntity.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/root_BusinessEntity.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/root_BusinessEntity.xml
new file mode 100644
index 0000000..6765a3f
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/root_BusinessEntity.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+ <!-- 
+  This file contains the root business entity structure that represents your registry.  The key chosen (or generated) for this entity will serve
+  as the node id for all entities published within the registry.  The services contained within this business entity reflect the UDDI APIs that
+  you wish to support (adding or subtracting the services here will not enable/disable them, simply add/omit them from being discovered via UDDI).
+  
+  The top-level business entity and sub-entities all use keys as unique identifiers.  They are left blank by default which means the system will
+  generate a key (generated as root partition with GUID appended).  You can choose to create your own, human-readable keys but they must match
+  the root key generator created in the root_tModelKeyGen.xml file.  Matching means they must equal the root key generator with the keyword
+  "keygenerator" replaced by your own string.
+  
+  Example:
+  
+  root_tModelKeyGen.xml key is uddi:www.mycompany.com:registry:keygenerator
+  
+  Legal user-defined keys are:
+  
+  uddi:www.mycompany.com:registry:ubr-node (for the businessKey)
+  uddi:www.mycompany.com:registry:inquiry-service (for the inquiry service service key)
+  uddi:www.mycompany.com:registry:inquiry-service-wsdlDeployment (for the inquiry service binding template that represents the WSDL)
+  
+  
+  See below for other fields that you may want to edit...
+  -->
+<businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:juddi.apache.org:business-marketing-asf">
+  <!-- Change the name field to represent the name of your registry -->
+  <name xml:lang="en">An Root Marketing jUDDI Node</name>
+  <!-- Change the description field to provided a brief description of your registry -->
+  <description xml:lang="en">This is a UDDI v3 registry node as implemented by Apache jUDDI.</description>
+  <discoveryURLs>
+    <!-- This discovery URL should point to the home installation URL of jUDDI -->
+    <discoveryURL useType="home">${juddi.server.baseurl}/juddiv3</discoveryURL>
+  </discoveryURLs>
+  <categoryBag>
+    <keyedReference tModelKey="uddi:uddi.org:categorization:nodes" keyValue="node" />
+  </categoryBag>
+  <businessServices>
+    <!-- As mentioned above, you may want to provide user-defined keys for these (and the services/bindingTemplates below.  Services that you
+    don't intend to support should be removed entirely -->
+    <businessService serviceKey="uddi:juddi.apache.org:services-inquiry" businessKey="uddi:juddi.apache.org:business-marketing-asf">
+      <name xml:lang="en">UDDI Inquiry Service</name>
+      <description xml:lang="en">Web Service supporting UDDI Inquiry API</description>
+      <bindingTemplates>
+        <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-inquiry-ws" serviceKey="uddi:juddi.apache.org:services-inquiry">
+          <description>UDDI Inquiry API V3</description>
+          <!-- This should be changed to the WSDL URL of the inquiry API.  An access point inside a bindingTemplate will be found for every service
+          in this file.  They all must point to their API's WSDL URL -->
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/inquiry?wsdl</accessPoint>
+          <tModelInstanceDetails>
+            <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_inquiry">
+              <instanceDetails>
+                <instanceParms>
+                <![CDATA[
+                  <?xml version="1.0" encoding="utf-8" ?>
+                  <UDDIinstanceParmsContainer xmlns="urn:uddi-org:policy_v3_instanceParms">
+                    <defaultSortOrder>
+                      uddi:uddi.org:sortorder:binarysort
+                    </defaultSortOrder>
+                  </UDDIinstanceParmsContainer>
+                ]]>
+                </instanceParms>
+              </instanceDetails>
+            </tModelInstanceInfo>
+          </tModelInstanceDetails>
+          <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment" tModelKey="uddi:uddi.org:categorization:types"/>
+          </categoryBag>
+        </bindingTemplate>
+      </bindingTemplates>
+    </businessService>
+    <businessService serviceKey="uddi:juddi.apache.org:services-publish" businessKey="uddi:juddi.apache.org:business-marketing-asf">
+      <name xml:lang="en">UDDI Publish Service</name>
+      <description xml:lang="en">Web Service supporting UDDI Publish API</description>
+      <bindingTemplates>
+        <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-publish-ws" serviceKey="uddi:juddi.apache.org:services-publish">
+          <description>UDDI Publication API V3</description>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/publish?wsdl</accessPoint>
+          <tModelInstanceDetails>
+            <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_publication">
+              <instanceDetails>
+                <instanceParms>
+                <![CDATA[
+                  <?xml version="1.0" encoding="utf-8" ?>
+                  <UDDIinstanceParmsContainer xmlns="urn:uddi-org:policy_v3_instanceParms">
+                    <authInfoUse>required</authInfoUse>
+                  </UDDIinstanceParmsContainer>
+                ]]>
+                </instanceParms>
+              </instanceDetails>
+            </tModelInstanceInfo>
+          </tModelInstanceDetails>
+          <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment" tModelKey="uddi:uddi.org:categorization:types"/>
+          </categoryBag>
+        </bindingTemplate>
+      </bindingTemplates>
+    </businessService>
+    <businessService serviceKey="uddi:juddi.apache.org:services-security" businessKey="uddi:juddi.apache.org:business-marketing-asf">
+      <name xml:lang="en">UDDI Security Service</name>
+      <description xml:lang="en">Web Service supporting UDDI Security API</description>
+      <bindingTemplates>
+        <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-security-ws" serviceKey="uddi:juddi.apache.org:services-security">
+          <description>UDDI Security API V3</description>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/security?wsdl</accessPoint>
+          <tModelInstanceDetails>
+            <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_security" />
+          </tModelInstanceDetails>
+          <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment" tModelKey="uddi:uddi.org:categorization:types"/>
+          </categoryBag>
+        </bindingTemplate>
+      </bindingTemplates>
+    </businessService>
+    <businessService serviceKey="uddi:juddi.apache.org:services-custodytransfer" businessKey="uddi:juddi.apache.org:business-marketing-asf">
+      <name xml:lang="en">UDDI Custody and Ownership Transfer Service</name>
+      <description xml:lang="en">Web Service supporting UDDI Custody and Ownership Transfer API</description>
+      <bindingTemplates>
+        <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-custodytransfer-ws" serviceKey="uddi:juddi.apache.org:services-custodytransfer">
+          <description>UDDI Custody and Ownership Transfer API V3</description>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/custody-transfer?wsdl</accessPoint>
+          <tModelInstanceDetails>
+            <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_ownership_transfer">
+              <instanceDetails>
+                <instanceParms>
+                <![CDATA[
+                <?xml version="1.0" encoding="utf-8" ?>
+                <UDDIinstanceParmsContainer
+                 xmlns="urn:uddi-org:policy_v3_instanceParms">
+                  <authInfoUse>required</authInfoUse>
+                </UDDIinstanceParmsContainer>
+                ]]>
+                </instanceParms>
+              </instanceDetails>
+            </tModelInstanceInfo>
+          </tModelInstanceDetails>
+          <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment" tModelKey="uddi:uddi.org:categorization:types"/>
+          </categoryBag>
+        </bindingTemplate>
+      </bindingTemplates>
+    </businessService>
+    <businessService serviceKey="uddi:juddi.apache.org:services-subscription" businessKey="uddi:juddi.apache.org:business-marketing-asf">
+      <name xml:lang="en">UDDI Subscription Service</name>
+      <description xml:lang="en">Web Service supporting UDDI Subscription API</description>
+      <bindingTemplates>
+        <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-subscription-ws" serviceKey="uddi:juddi.apache.org:services-subscription">
+          <description>UDDI Subscription API V3</description>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/subscription?wsdl</accessPoint>
+          <tModelInstanceDetails>
+            <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_subscription">
+              <instanceDetails>
+                <instanceParms>
+                <![CDATA[
+                <?xml version="1.0" encoding="utf-8" ?>
+                <UDDIinstanceParmsContainer
+                xmlns="urn:uddi-org:policy_v3_instanceParms">
+                <authInfoUse>required</authInfoUse>
+                <filterUsingFindAPI>supported</filterUsingFindAPI>
+                </UDDIinstanceParmsContainer>
+                ]]>
+                </instanceParms>
+              </instanceDetails>
+            </tModelInstanceInfo>
+          </tModelInstanceDetails>
+          <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment" tModelKey="uddi:uddi.org:categorization:types"/>
+          </categoryBag>
+        </bindingTemplate>
+      </bindingTemplates>
+    </businessService>
+     <businessService serviceKey="uddi:juddi.apache.org:services-publisher" businessKey="uddi:juddi.apache.org:business-marketing-asf">
+      <name xml:lang="en">jUDDI Publisher Service</name>
+      <description xml:lang="en">Web Service supporting jUDDI specific API</description>
+      <bindingTemplates>
+        <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-publisher-ws" serviceKey="uddi:juddi.apache.org:services-publisher">
+          <description>jUDDI Publisher Service API V3</description>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/publisher?wsdl</accessPoint>
+          <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment" tModelKey="uddi:uddi.org:categorization:types"/>
+          </categoryBag>
+        </bindingTemplate>
+      </bindingTemplates>
+    </businessService>
+  </businessServices>
+</businessEntity>
+
+
+
+

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/root_Publisher.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/root_Publisher.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/root_Publisher.xml
new file mode 100644
index 0000000..a5949f1
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/root_Publisher.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+<publisher xmlns="urn:juddi-apache-org:api_v3" authorizedName="root">
+  <publisherName>root publisher</publisherName>
+  <isAdmin>true</isAdmin>
+</publisher>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/root_tModelKeyGen.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/root_tModelKeyGen.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/root_tModelKeyGen.xml
new file mode 100644
index 0000000..73c0c8a
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/root_tModelKeyGen.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+<!-- 
+  In this file, you only need to edit the tModelKey just below.  This will determine your root partition; the base that all system-generated
+  keys will use.  The keywords "uddi" and "keygenerator" must enclose the partition, but you are free to edit the interior.  The general format
+  is a domain name followed by a colon-delimited list of keywords (known as key-specific strings).
+  
+  Examples:
+  
+  uddi:www.mycompany.com:registry:keygenerator
+  uddi:uddi.acme.com:keygenerator
+  uddi:engineering.umich.edu:soa:ubr:keygenerator
+ -->
+<tModel tModelKey="uddi:juddi.apache.org:keygenerator" xmlns="urn:uddi-org:api_v3">
+  <name>uddi-org:keyGenerator</name>
+  <description>Root domain key generator</description>
+  <overviewDoc>
+    <overviewURL useType="text">
+      http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
+  </overviewDoc>
+  <categoryBag>
+    <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+      keyValue="keyGenerator" />
+  </categoryBag>
+</tModel>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/sales_Publisher.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/sales_Publisher.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/sales_Publisher.xml
new file mode 100644
index 0000000..ab7c164
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/sales_Publisher.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+<publisher xmlns="urn:juddi-apache-org:api_v3" authorizedName="sales">
+  <publisherName>Sales Publisher</publisherName>
+  <isAdmin>false</isAdmin>
+</publisher>
+

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/sales_tModels.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/sales_tModels.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/sales_tModels.xml
new file mode 100644
index 0000000..9c7fc22
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/sales_tModels.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+<save_tModel xmlns="urn:uddi-org:api_v3">
+    <tModel tModelKey="uddi:sales.apache.org:subscription:keygenerator" xmlns="urn:uddi-org:api_v3">
+	  <name>uddi-org:keyGenerator</name>
+	  <description>Sales domain key generator</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
+	  </overviewDoc>
+	  <categoryBag>
+	    <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+	      keyValue="keyGenerator" />
+	  </categoryBag>
+	</tModel>
+</save_tModel>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/UDDI_Publisher.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/UDDI_Publisher.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/UDDI_Publisher.xml
new file mode 100644
index 0000000..0bfd815
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/UDDI_Publisher.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+<publisher xmlns="urn:juddi-apache-org:api_v3" authorizedName="uddi">
+  <publisherName>UDDI publisher</publisherName>
+  <isAdmin>false</isAdmin>
+</publisher>
+


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org


[05/12] juddi git commit: JUDDI-919 replication now works with ssl + client-cert authentication. In order to support this, we need to have two different war file (unfortunately). Included with this change set is number of typos in our deployment files (w

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/hub/builders/Printers.java
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/hub/builders/Printers.java b/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/hub/builders/Printers.java
new file mode 100644
index 0000000..24c4324
--- /dev/null
+++ b/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/hub/builders/Printers.java
@@ -0,0 +1,363 @@
+/*
+ * Copyright 2001-2013 The Apache Software Foundation.
+ * 
+ * Licensed 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.juddi.adminconsole.hub.builders;
+
+import java.util.List;
+import javax.servlet.http.HttpSession;
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.juddi.adminconsole.resources.ResourceLoader;
+import org.uddi.api_v3.*;
+
+/**
+ * Provides very basic UDDI spec to String formats, mostly used for debugging
+ *
+ * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
+ */
+public class Printers {
+
+    public static String TModelInfoToString(TModelInstanceDetails info) {
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < info.getTModelInstanceInfo().size(); i++) {
+            sb.append(info.getTModelInstanceInfo().get(i).getTModelKey());
+        }
+        return sb.toString();
+    }
+
+    /**
+     * Converts category bags of tmodels to a readable string
+     *
+     * @param categoryBag
+     * @return
+     */
+    public static String CatBagToString(CategoryBag categoryBag, String locale) {
+        StringBuilder sb = new StringBuilder();
+        if (categoryBag == null) {
+            return "no data";
+        }
+        for (int i = 0; i < categoryBag.getKeyedReference().size(); i++) {
+            sb.append(KeyedReferenceToString(categoryBag.getKeyedReference().get(i), locale));
+        }
+        for (int i = 0; i < categoryBag.getKeyedReferenceGroup().size(); i++) {
+            sb.append("Key Ref Grp: TModelKey=");
+            for (int k = 0; k < categoryBag.getKeyedReferenceGroup().get(i).getKeyedReference().size(); k++) {
+                sb.append(KeyedReferenceToString(categoryBag.getKeyedReferenceGroup().get(i).getKeyedReference().get(k), locale));
+            }
+        }
+        return sb.toString();
+    }
+
+    public static String KeyedReferenceToString(KeyedReference item, String locale) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("Key Ref: Name=").append(item.getKeyName()).append(" Value=").append(item.getKeyValue()).append(" tModel=").append(item.getTModelKey()).append(System.getProperty("line.separator"));
+        return sb.toString();
+    }
+
+    /**
+     * This function is useful for translating UDDI's somewhat complex data
+     * format to something that is more useful.
+     *
+     * @param bindingTemplates
+     */
+    public static String PrintBindingTemplates(BindingTemplates bindingTemplates, String locale) {
+        if (bindingTemplates == null) {
+            return "No binding templates";
+        }
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < bindingTemplates.getBindingTemplate().size(); i++) {
+            sb.append("Binding Key: ").append(bindingTemplates.getBindingTemplate().get(i).getBindingKey()).append("<Br>");
+            sb.append("Description: ").append(ListToDescString(bindingTemplates.getBindingTemplate().get(i).getDescription())).append("<Br>");
+            sb.append("CatBag: ").append(CatBagToString(bindingTemplates.getBindingTemplate().get(i).getCategoryBag(), locale)).append("<Br>");
+            sb.append("tModels: ").append(Printers.TModelInfoToString(bindingTemplates.getBindingTemplate().get(i).getTModelInstanceDetails())).append("<Br>");
+            if (bindingTemplates.getBindingTemplate().get(i).getAccessPoint() != null) {
+                sb.append("Access Point: ").append(bindingTemplates.getBindingTemplate().get(i).getAccessPoint().getValue()).append(" type ").append(bindingTemplates.getBindingTemplate().get(i).getAccessPoint().getUseType()).append("<Br>");
+            }
+            if (bindingTemplates.getBindingTemplate().get(i).getHostingRedirector() != null) {
+                sb.append("Hosting Director: ").append(bindingTemplates.getBindingTemplate().get(i).getHostingRedirector().getBindingKey()).append("<br>");
+            }
+        }
+        return sb.toString();
+    }
+
+    public static String ListToDescString(List<Description> name) {
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < name.size(); i++) {
+            sb.append(name.get(i).getValue()).append(" ");
+        }
+        return sb.toString();
+    }
+
+    public static String ListNamesToString(List<Name> name) {
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < name.size(); i++) {
+            sb.append(name.get(i).getValue()).append(" ");
+        }
+        return sb.toString();
+    }
+
+    public static String ListDiscoToString(DiscoveryURLs info) {
+        StringBuilder sb = new StringBuilder();
+        if (info == null) {
+            return "";
+        }
+        for (int i = 0; i < info.getDiscoveryURL().size(); i++) {
+            sb.append("Type: ").append(StringEscapeUtils.escapeHtml(info.getDiscoveryURL().get(i).getValue())).append(" ").append(StringEscapeUtils.escapeHtml(info.getDiscoveryURL().get(i).getValue()));
+        }
+        return sb.toString();
+    }
+
+    /**
+     * converts contacts to a simple string output
+     */
+    public static String PrintContacts(Contacts contacts, String locale) {
+        if (contacts == null) {
+            return "";
+        }
+        StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < contacts.getContact().size(); i++) {
+            sb.append("Contact ").append(i).append(" type:").append(contacts.getContact().get(i).getUseType()).append("<br>");
+            for (int k = 0; k < contacts.getContact().get(i).getPersonName().size(); k++) {
+                sb.append("Name: ").append(contacts.getContact().get(i).getPersonName().get(k).getValue()).append("<br>");
+            }
+            for (int k = 0; k < contacts.getContact().get(i).getEmail().size(); k++) {
+                sb.append("Email: ").append(contacts.getContact().get(i).getEmail().get(k).getValue()).append("<br>");
+            }
+            for (int k = 0; k < contacts.getContact().get(i).getAddress().size(); k++) {
+                sb.append("Address sort code ").append(contacts.getContact().get(i).getAddress().get(k).getSortCode()).append("<br>");
+                sb.append("Address use type ").append(contacts.getContact().get(i).getAddress().get(k).getUseType()).append("<br>");
+                sb.append("Address tmodel key ").append(contacts.getContact().get(i).getAddress().get(k).getTModelKey()).append("<br>");
+                for (int x = 0; x < contacts.getContact().get(i).getAddress().get(k).getAddressLine().size(); x++) {
+                    sb.append("Address line value ").append(contacts.getContact().get(i).getAddress().get(k).getAddressLine().get(x).getValue()).append("<br>");
+                    sb.append("Address line key name ").append(contacts.getContact().get(i).getAddress().get(k).getAddressLine().get(x).getKeyName()).append("<br>");
+                    sb.append("Address line key value ").append(contacts.getContact().get(i).getAddress().get(k).getAddressLine().get(x).getKeyValue()).append("<br>");
+                }
+            }
+            for (int k = 0; k < contacts.getContact().get(i).getDescription().size(); k++) {
+                sb.append("Desc: ").append(contacts.getContact().get(i).getDescription().get(k).getValue()).append("<br>");
+            }
+            for (int k = 0; k < contacts.getContact().get(i).getPhone().size(); k++) {
+                sb.append("Phone: ").append(contacts.getContact().get(i).getPhone().get(k).getValue()).append("<br>");
+            }
+        }
+        return sb.toString();
+    }
+
+    public static String ListIdentBagToString(IdentifierBag info, String locale) {
+        StringBuilder sb = new StringBuilder();
+        if (info == null) {
+            return "";
+        }
+        for (int i = 0; i < info.getKeyedReference().size(); i++) {
+            sb.append(KeyedReferenceToString(info.getKeyedReference().get(i), locale));
+        }
+        return sb.toString();
+    }
+
+    public static String PublisherAssertionsToHtml(List<PublisherAssertion> list, String locale) {
+        if (list == null || list.isEmpty()) {
+            return "No input";
+        }
+        StringBuilder sb = new StringBuilder();
+        sb.append("<table class=\"table\">");
+        for (int i = 0; i < list.size(); i++) {
+            sb.append("<tr><td>");
+            sb.append(StringEscapeUtils.escapeHtml(list.get(i).getToKey()));
+            sb.append("</td><td>");
+            sb.append(StringEscapeUtils.escapeHtml(list.get(i).getFromKey()));
+            sb.append("</td><td>");
+            sb.append(list.get(i).getSignature().isEmpty());
+            sb.append("</td><td>");
+            sb.append(StringEscapeUtils.escapeHtml(Printers.KeyedReferenceToString(list.get(i).getKeyedReference(), locale)));
+            sb.append("</td></tr>");
+        }
+        sb.append("</table>");
+        return sb.toString();
+    }
+
+    public static String PrintTModelListAsHtml(TModelList findTModel, HttpSession session, boolean isChooser) {
+
+        StringBuilder sb = new StringBuilder();
+
+        sb.append("<table class=\"table table-hover\"><tr><th>");
+        if (isChooser) {
+            sb.append("</th><th>");
+        }
+        sb.append(ResourceLoader.GetResource(session, "items.key"))
+                .append("</th><th>")
+                .append(ResourceLoader.GetResource(session, "items.name"))
+                .append("</th><th>")
+                .append(ResourceLoader.GetResource(session, "items.description"))
+                .append("</th></tr>");
+        for (int i = 0; i < findTModel.getTModelInfos().getTModelInfo().size(); i++) {
+            sb.append("<tr><td>");
+            if (isChooser) {
+                sb.append("<input class=\"modalableTmodel\" type=checkbox id=\"")
+                        .append(StringEscapeUtils.escapeHtml(findTModel.getTModelInfos().getTModelInfo().get(i).getTModelKey()))
+                        .append("\"></td><td>");
+            }
+            if (!isChooser) {
+                sb.append("<a href=\"tmodelEditor.jsp?id=")
+                        .append(StringEscapeUtils.escapeHtml(findTModel.getTModelInfos().getTModelInfo().get(i).getTModelKey()))
+                        .append("\" >");
+            }
+            sb.append(StringEscapeUtils.escapeHtml(findTModel.getTModelInfos().getTModelInfo().get(i).getTModelKey()));
+            if (!isChooser) {
+                sb.append("</a>");
+            }
+            sb.append("</td><td>")
+                    .append(StringEscapeUtils.escapeHtml(findTModel.getTModelInfos().getTModelInfo().get(i).getName().getValue()));
+            if (findTModel.getTModelInfos().getTModelInfo().get(i).getName().getLang() != null) {
+                sb.append(", ")
+                        .append(StringEscapeUtils.escapeHtml(findTModel.getTModelInfos().getTModelInfo().get(i).getName().getLang()));
+            }
+            sb.append("</td><td>")
+                    .append(StringEscapeUtils.escapeHtml(Printers.ListToDescString(findTModel.getTModelInfos().getTModelInfo().get(i).getDescription())))
+                    .append("</td></tr>");
+        }
+        sb.append("</table>");
+        return sb.toString();
+    }
+
+    @Deprecated
+    private static String PrintTModelListAsHtmlModel(TModelList findTModel, HttpSession session) {
+        StringBuilder sb = new StringBuilder();
+
+        sb.append("<table class=\"table table-hover\"><tr><th>");
+
+        sb.append("</th><th>");
+
+        sb.append(ResourceLoader.GetResource(session, "items.key"))
+                .append("</th><th>")
+                .append(ResourceLoader.GetResource(session, "items.name"))
+                .append("</th><th>")
+                .append(ResourceLoader.GetResource(session, "items.description"))
+                .append("</th></tr>");
+        for (int i = 0; i < findTModel.getTModelInfos().getTModelInfo().size(); i++) {
+            sb.append("<tr><td>");
+
+            sb.append("<input class=\"modalableTmodel\" type=checkbox id=\"")
+                    .append(StringEscapeUtils.escapeHtml(findTModel.getTModelInfos().getTModelInfo().get(i).getTModelKey()))
+                    .append("\"></td><td>");
+
+            sb.append(StringEscapeUtils.escapeHtml(findTModel.getTModelInfos().getTModelInfo().get(i).getTModelKey()));
+            sb.append("</td><td>")
+                    .append(StringEscapeUtils.escapeHtml(findTModel.getTModelInfos().getTModelInfo().get(i).getName().getValue()));
+            if (findTModel.getTModelInfos().getTModelInfo().get(i).getName().getLang() != null) {
+                sb.append(", ")
+                        .append(StringEscapeUtils.escapeHtml(findTModel.getTModelInfos().getTModelInfo().get(i).getName().getLang()));
+            }
+            sb.append("</td><td>")
+                    .append(StringEscapeUtils.escapeHtml(Printers.ListToDescString(findTModel.getTModelInfos().getTModelInfo().get(i).getDescription())))
+                    .append("</td></tr>");
+        }
+        sb.append("</table>");
+        return sb.toString();
+    }
+
+    public static String BusinessListAsTable(BusinessList findBusiness, HttpSession session, boolean isChooser) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("<table class=\"table table-hover\"<tr><th>");
+        if (isChooser) {
+            sb.append("</th><th>");
+        }
+        sb.append(ResourceLoader.GetResource(session, "items.name")).
+                append("</th><th>").
+                append(ResourceLoader.GetResource(session, "items.service")).
+                append("</th></tr>");
+        for (int i = 0; i < findBusiness.getBusinessInfos().getBusinessInfo().size(); i++) {
+            sb.append("<tr><td>");
+            if (isChooser) {
+                sb.append("<input type=\"checkbox\" class=\"modalableBusinessChooser\" id=\"").
+                        append(StringEscapeUtils.escapeHtml(findBusiness.getBusinessInfos().getBusinessInfo().get(i).getBusinessKey())).
+                        append("\"></td><td>");
+            }
+            sb.append("<a title=\"").
+                    append(StringEscapeUtils.escapeHtml(findBusiness.getBusinessInfos().getBusinessInfo().get(i).getBusinessKey())).
+                    append("\"  href=\"businessEditor2.jsp?id=").
+                    append(StringEscapeUtils.escapeHtml(findBusiness.getBusinessInfos().getBusinessInfo().get(i).getBusinessKey())).
+                    append("\">").
+                    append(StringEscapeUtils.escapeHtml(Printers.ListNamesToString(findBusiness.getBusinessInfos().getBusinessInfo().get(i).getName()))).
+                    append("</a></td><td>").
+                    append("<a class=\"btn btn-primary\" href=\"javascript:ShowServicesByBusinessKey('").
+                    append(StringEscapeUtils.escapeJavaScript(findBusiness.getBusinessInfos().getBusinessInfo().get(i).getBusinessKey())).
+                    append("');\">");
+
+            if (findBusiness.getBusinessInfos().getBusinessInfo().get(i).getServiceInfos() == null) {
+                sb.append("0");
+            } else {
+                sb.append("Show ").append(findBusiness.getBusinessInfos().getBusinessInfo().get(i).getServiceInfos().getServiceInfo().size());
+            }
+            sb.append("</a>");
+            if (!isChooser) {
+                sb.append("<a class=\"btn btn-primary\" href=\"serviceEditor.jsp?bizid=").
+                        append(StringEscapeUtils.escapeHtml(findBusiness.getBusinessInfos().getBusinessInfo().get(i).getBusinessKey())).
+                        append("\"><i class=\"icon-plus-sign icon-white  icon-large\"></i></a>");
+            }
+            sb.append("</td></tr>");
+
+            sb.append("<tr><td colspan=3><div id=\"").
+                    append(StringEscapeUtils.escapeHtml(findBusiness.getBusinessInfos().getBusinessInfo().get(i).getBusinessKey())).
+                    append("\"></div></td></tr>");
+        }
+        sb.append("</table>");
+        return sb.toString();
+    }
+
+    /**
+     * service list as html
+     * @param findService
+     * @param chooser
+     * @param session
+     * @return 
+     */
+    public static String ServiceListAsHtml(ServiceList findService, boolean chooser, HttpSession session) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("<table class=\"table\"><tr><th>");
+        if (chooser) {
+            sb.append("</th><th>");
+        }
+        sb.append(ResourceLoader.GetResource(session, "items.name")).
+                append("</th><th>").
+                append(ResourceLoader.GetResource(session, "items.key")).
+                append("</th><th>").
+                append(ResourceLoader.GetResource(session, "items.business")).
+                append("</th></tr>");
+        for (int i = 0; i < findService.getServiceInfos().getServiceInfo().size(); i++) {
+            sb.append("<tr><td>");
+            if (chooser) {
+                sb.append("<input class=\"modalableServiceChooser\" type=\"checkbox\" id=\"").
+                        append(StringEscapeUtils.escapeHtml(findService.getServiceInfos().getServiceInfo().get(i).getServiceKey())).
+                        append("\">");
+                sb.append("</td><td>");
+            }
+            sb.append("<a href=\"serviceEditor.jsp?id=").
+                    append(StringEscapeUtils.escapeHtml(findService.getServiceInfos().getServiceInfo().get(i).getServiceKey())).
+                    append("\" title=\"").
+                    append(StringEscapeUtils.escapeHtml(findService.getServiceInfos().getServiceInfo().get(i).getServiceKey()))
+                    .append("\">");
+            sb.append(Printers.ListNamesToString(findService.getServiceInfos().getServiceInfo().get(i).getName())).append("<i class=\"icon-edit icon-large\"></i<</a></td><td>");
+           
+            sb.append((findService.getServiceInfos().getServiceInfo().get(i).getServiceKey())).append("</td><td>");
+             sb.append("<a href=\"businessEditor2.jsp?id=")
+                    .append(StringEscapeUtils.escapeHtml((findService.getServiceInfos().getServiceInfo().get(i).getBusinessKey())))
+                    .append("\">");
+            sb.append(StringEscapeUtils.escapeHtml((findService.getServiceInfos().getServiceInfo().get(i).getBusinessKey())))
+                    .append("<i class=\"icon-edit icon-large\"></i<</a></td></tr>");
+        }
+        sb.append("</table>");
+        return sb.toString();
+    }
+}

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/resources/ResourceLoader.java
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/resources/ResourceLoader.java b/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/resources/ResourceLoader.java
new file mode 100644
index 0000000..323e0cd
--- /dev/null
+++ b/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/resources/ResourceLoader.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ * 
+ * Licensed 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.juddi.adminconsole.resources;
+
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+import javax.servlet.http.HttpSession;
+
+/**
+ * This a resource loader for specific locales for internationalization,
+ * provides some basic caching to prevent round trip disk access
+ *
+ * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
+ */
+public class ResourceLoader {
+
+        private static Map map = new HashMap();
+
+        /**
+         * returns a localized string in the locale defined within
+         * session.getAttribute("locale") or in the default locale, en
+         *
+         * @param session
+         * @param key
+         * @return a localized string
+         * @throws IllegalArgumentException if the key is null
+         * @throws MissingResourceException if the resource bundle can't be
+         * found
+         */
+        public static String GetResource(HttpSession session, String key) throws MissingResourceException {
+                if (key == null) {
+                        throw new IllegalArgumentException("key");
+                }
+                String locale = (String) session.getAttribute("locale");
+                return GetResource(locale, key);
+        }
+
+        /**
+         * returns a localized string in the locale defined within locale or in
+         * the default locale, en
+         *
+         * @param locale
+         * @param key
+         * @return a localized string
+         * @throws IllegalArgumentException if the key is null
+         * @throws MissingResourceException if the resource bundle can't be
+         * found
+         */
+        public static String GetResource(String locale, String key) throws MissingResourceException {
+                if (key == null) {
+                        throw new IllegalArgumentException("key");
+                }
+
+                ResourceBundle bundle = (ResourceBundle) map.get(locale);
+                if (bundle == null) {
+                        bundle = ResourceBundle.getBundle("org.apache.juddi.adminconsole.resources.web", new Locale(locale));
+                        map.put(locale, bundle);
+                }
+                try {
+                        return bundle.getString(key.trim());
+                } catch (Exception ex) {
+                        return "key " + key + " not found " + ex.getMessage();
+                }
+        }
+}

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/java/org/apache/juddi/servlets/NotifyServlet.java
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/java/org/apache/juddi/servlets/NotifyServlet.java b/juddiv3-war-repl/src/main/java/org/apache/juddi/servlets/NotifyServlet.java
new file mode 100644
index 0000000..842d2d7
--- /dev/null
+++ b/juddiv3-war-repl/src/main/java/org/apache/juddi/servlets/NotifyServlet.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2001-2009 The Apache Software Foundation.
+ * 
+ * Licensed 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.juddi.servlets;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Iterator;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.collections.Buffer;
+import org.apache.juddi.subscription.NotificationList;
+
+
+/**
+ * This servlet is used print out notifications received
+ * from subscriptions in the subscription portal. This servlet is
+ * used for this demo only and has no other purpose.
+ * 
+ * @author <a href="mailto:tcunning@apache.org">Tom Cunningham</a>
+ */
+public class NotifyServlet extends HttpServlet
+{
+	private static final long serialVersionUID = 4862936257096400737L;
+
+	@SuppressWarnings("unchecked")
+	public void doGet(HttpServletRequest request,
+			HttpServletResponse response) throws
+		ServletException, IOException {
+		StringBuffer sb = new StringBuffer();
+
+		Buffer nl = NotificationList.getInstance().getNotifications();
+		Iterator<String> it = nl.iterator();
+		while (it.hasNext()) {
+			String notification = (String) it.next();		
+			sb.append(notification);
+		}
+		nl.clear();
+		PrintWriter out = response.getWriter();
+		out.println(sb.toString());
+	}
+}

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/java/org/apache/juddi/servlets/RegistryServlet.java
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/java/org/apache/juddi/servlets/RegistryServlet.java b/juddiv3-war-repl/src/main/java/org/apache/juddi/servlets/RegistryServlet.java
new file mode 100644
index 0000000..6fcf8a3
--- /dev/null
+++ b/juddiv3-war-repl/src/main/java/org/apache/juddi/servlets/RegistryServlet.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed 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.juddi.servlets;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.Registry;
+
+/**
+ * This servlet is ONLY used to initialize the jUDDI webapp on startup and
+ * cleanup the jUDDI webapp on shutdown.
+ * 
+ * @author Steve Viens (sviens@apache.org)
+ */
+public class RegistryServlet extends HttpServlet {
+	
+	private static final long serialVersionUID = 4653310291840334765L;
+	private static Log logger = LogFactory.getLog(RegistryServlet.class);
+
+	/**
+	 * Create the shared instance of jUDDI's Registry class and call it's
+	 * "init()" method to initialize all core components.
+	 */
+	@Override
+	public void init(ServletConfig config) throws ServletException {
+		super.init(config);
+		try {
+			Registry.start();
+		} catch (ConfigurationException e) {
+			logger.error("jUDDI registry could not be started."
+					+ e.getMessage(), e);
+			throw new ServletException(e.getMessage(),e);
+		}
+	}
+	
+	@Override
+	public void destroy() {
+		try {
+			Registry.stop();
+		} catch (ConfigurationException e) {
+			logger.error("jUDDI registry could not be stopped."
+					+ e.getMessage(), e);
+		}
+		super.destroy();
+	}
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/resources/commons-logging.properties
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/resources/commons-logging.properties b/juddiv3-war-repl/src/main/resources/commons-logging.properties
new file mode 100644
index 0000000..bbeeb5b
--- /dev/null
+++ b/juddiv3-war-repl/src/main/resources/commons-logging.properties
@@ -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.
+
+org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/resources/schemas/orm_1_0.xsd
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/resources/schemas/orm_1_0.xsd b/juddiv3-war-repl/src/main/resources/schemas/orm_1_0.xsd
new file mode 100644
index 0000000..7b4380a
--- /dev/null
+++ b/juddiv3-war-repl/src/main/resources/schemas/orm_1_0.xsd
@@ -0,0 +1,1561 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Java Persistence API object-relational mapping file schema -->
+<xsd:schema targetNamespace="http://java.sun.com/xml/ns/persistence/orm" 
+  xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" 
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+  elementFormDefault="qualified" 
+  attributeFormDefault="unqualified" 
+  version="1.0">
+
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)orm_1_0.xsd 1.0  Feb 14 2006
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+      Copyright 2005-2007 Sun Microsystems, Inc. All rights reserved.
+
+      The contents of this file are subject to the terms of either the
+      GNU General Public License Version 2 only ("GPL") or the Common
+      Development and Distribution License("CDDL") (collectively, the
+      "License").  You may not use this file except in compliance with
+      the License. You can obtain a copy of the License at
+      https://glassfish.dev.java.net/public/CDDL+GPL.html or
+      glassfish/bootstrap/legal/LICENSE.txt.  See the License for the
+      specific language governing permissions and limitations under the
+      License.
+
+      When distributing the software, include this License Header
+      Notice in each file and include the License file at
+      glassfish/bootstrap/legal/LICENSE.txt.  Sun designates this
+      particular file as subject to the "Classpath" exception as
+      provided by Sun in the GPL Version 2 section of the License file
+      that accompanied this code.  If applicable, add the following
+      below the License Header, with the fields enclosed by brackets []
+      replaced by your own identifying information:
+      "Portions Copyrighted [year] [name of copyright owner]"
+
+      Contributor(s):
+
+      If you wish your version of this file to be governed by only the
+      CDDL or only the GPL Version 2, indicate your decision by adding
+      "[Contributor] elects to include this software in this
+      distribution under the [CDDL or GPL Version 2] license."  If you
+      don't indicate a single choice of license, a recipient has the
+      option to distribute your version of this file under either the
+      CDDL, the GPL Version 2 or to extend the choice of license to its
+      licensees as provided above.  However, if you add GPL Version 2
+      code and therefore, elected the GPL Version 2 license, then the
+      option applies only if the new code is made subject to such
+      option by the copyright holder.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+     <xsd:documentation><![CDATA[
+
+       This is the XML Schema for the persistence object-relational 
+       mapping file.
+       The file may be named "META-INF/orm.xml" in the persistence 
+       archive or it may be named some other name which would be 
+       used to locate the file as resource on the classpath.
+
+     ]]></xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:complexType name="emptyType"/>
+
+  <xsd:simpleType name="versionType">
+    <xsd:restriction base="xsd:token">
+      <xsd:pattern value="[0-9]+(\.[0-9]+)*"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:element name="entity-mappings">
+    <xsd:complexType>
+      <xsd:annotation>
+        <xsd:documentation>
+
+        The entity-mappings element is the root element of an mapping
+        file. It contains the following four types of elements:
+
+        1. The persistence-unit-metadata element contains metadata
+        for the entire persistence unit. It is undefined if this element
+        occurs in multiple mapping files within the same persistence unit.
+        
+        2. The package, schema, catalog and access elements apply to all of
+        the entity, mapped-superclass and embeddable elements defined in
+        the same file in which they occur.
+
+        3. The sequence-generator, table-generator, named-query,
+        named-native-query and sql-result-set-mapping elements are global
+        to the persistence unit. It is undefined to have more than one
+        sequence-generator or table-generator of the same name in the same
+        or different mapping files in a persistence unit. It is also 
+        undefined to have more than one named-query or named-native-query
+        of the same name in the same or different mapping files in a 
+        persistence unit.
+
+        4. The entity, mapped-superclass and embeddable elements each define
+        the mapping information for a managed persistent class. The mapping
+        information contained in these elements may be complete or it may
+        be partial.
+
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:sequence>
+        <xsd:element name="description" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="persistence-unit-metadata" 
+                     type="orm:persistence-unit-metadata"
+                     minOccurs="0"/>
+        <xsd:element name="package" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="schema" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="catalog" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="access" type="orm:access-type"
+                     minOccurs="0"/>
+        <xsd:element name="sequence-generator" type="orm:sequence-generator"
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="table-generator" type="orm:table-generator" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="named-query" type="orm:named-query" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="named-native-query" type="orm:named-native-query"
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="sql-result-set-mapping" 
+                     type="orm:sql-result-set-mapping" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="mapped-superclass" type="orm:mapped-superclass" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="entity" type="orm:entity" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="embeddable" type="orm:embeddable" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+      </xsd:sequence>
+      <xsd:attribute name="version" type="orm:versionType" 
+                     fixed="1.0" use="required"/>
+    </xsd:complexType>
+  </xsd:element>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="persistence-unit-metadata">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Metadata that applies to the persistence unit and not just to 
+        the mapping file in which it is contained. 
+
+        If the xml-mapping-metadata-complete element is specified then 
+        the complete set of mapping metadata for the persistence unit 
+        is contained in the XML mapping files for the persistence unit.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="xml-mapping-metadata-complete" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="persistence-unit-defaults" 
+                   type="orm:persistence-unit-defaults"
+                   minOccurs="0"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="persistence-unit-defaults">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        These defaults are applied to the persistence unit as a whole 
+        unless they are overridden by local annotation or XML 
+        element settings. 
+        
+        schema - Used as the schema for all tables or secondary tables
+            that apply to the persistence unit
+        catalog - Used as the catalog for all tables or secondary tables
+            that apply to the persistence unit
+        access - Used as the access type for all managed classes in
+            the persistence unit
+        cascade-persist - Adds cascade-persist to the set of cascade options
+            in entity relationships of the persistence unit
+        entity-listeners - List of default entity listeners to be invoked 
+            on each entity in the persistence unit. 
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+        <xsd:element name="schema" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="catalog" type="xsd:string"
+                     minOccurs="0"/>
+        <xsd:element name="access" type="orm:access-type"
+                     minOccurs="0"/>
+        <xsd:element name="cascade-persist" type="orm:emptyType" 
+                     minOccurs="0"/>
+        <xsd:element name="entity-listeners" type="orm:entity-listeners"
+                     minOccurs="0"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="entity">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Defines the settings and mappings for an entity. Is allowed to be
+        sparsely populated and used in conjunction with the annotations.
+        Alternatively, the metadata-complete attribute can be used to 
+        indicate that no annotations on the entity class (and its fields
+        or properties) are to be processed. If this is the case then 
+        the defaulting rules for the entity and its subelements will 
+        be recursively applied.
+
+        @Target(TYPE) @Retention(RUNTIME)
+          public @interface Entity {
+          String name() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:element name="table" type="orm:table" 
+                   minOccurs="0"/>
+      <xsd:element name="secondary-table" type="orm:secondary-table" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="primary-key-join-column" 
+                   type="orm:primary-key-join-column" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="id-class" type="orm:id-class" minOccurs="0"/>
+      <xsd:element name="inheritance" type="orm:inheritance" minOccurs="0"/>
+      <xsd:element name="discriminator-value" type="orm:discriminator-value" 
+                   minOccurs="0"/>
+      <xsd:element name="discriminator-column" 
+                   type="orm:discriminator-column" 
+                   minOccurs="0"/>
+      <xsd:element name="sequence-generator" type="orm:sequence-generator" 
+                   minOccurs="0"/>
+      <xsd:element name="table-generator" type="orm:table-generator" 
+                   minOccurs="0"/>
+      <xsd:element name="named-query" type="orm:named-query" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="named-native-query" type="orm:named-native-query" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="sql-result-set-mapping" 
+                   type="orm:sql-result-set-mapping" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="exclude-default-listeners" type="orm:emptyType" 
+                   minOccurs="0"/>
+      <xsd:element name="exclude-superclass-listeners" type="orm:emptyType" 
+                   minOccurs="0"/>
+      <xsd:element name="entity-listeners" type="orm:entity-listeners" 
+                   minOccurs="0"/>
+      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
+      <xsd:element name="post-persist" type="orm:post-persist" 
+                   minOccurs="0"/>
+      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
+      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
+      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
+      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
+      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
+      <xsd:element name="attribute-override" type="orm:attribute-override" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="association-override" 
+                   type="orm:association-override"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="attributes" type="orm:attributes" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="class" type="xsd:string" use="required"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="attributes">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        This element contains the entity field or property mappings.
+        It may be sparsely populated to include only a subset of the
+        fields or properties. If metadata-complete for the entity is true
+        then the remainder of the attributes will be defaulted according
+        to the default rules.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:choice>
+        <xsd:element name="id" type="orm:id" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="embedded-id" type="orm:embedded-id" 
+                     minOccurs="0"/>
+      </xsd:choice>
+      <xsd:element name="basic" type="orm:basic"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="version" type="orm:version"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="many-to-one" type="orm:many-to-one"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="one-to-many" type="orm:one-to-many"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="one-to-one" type="orm:one-to-one"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="many-to-many" type="orm:many-to-many" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="embedded" type="orm:embedded"
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="transient" type="orm:transient"
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="access-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        This element determines how the persistence provider accesses the
+        state of an entity or embedded object.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="PROPERTY"/>
+      <xsd:enumeration value="FIELD"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="entity-listeners">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface EntityListeners {
+          Class[] value();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="entity-listener" type="orm:entity-listener" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="entity-listener">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Defines an entity listener to be invoked at lifecycle events
+        for the entities that list this listener.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
+      <xsd:element name="post-persist" type="orm:post-persist" 
+                   minOccurs="0"/>
+      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
+      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
+      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
+      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
+      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="class" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="pre-persist">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PrePersist {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="post-persist">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PostPersist {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="pre-remove">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PreRemove {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="post-remove">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PostRemove {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="pre-update">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PreUpdate {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="post-update">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PostUpdate {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="post-load">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD}) @Retention(RUNTIME)
+        public @interface PostLoad {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="method-name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="query-hint">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({}) @Retention(RUNTIME) 
+        public @interface QueryHint {
+          String name();
+          String value();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="value" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="named-query">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface NamedQuery {
+          String name();
+          String query();
+          QueryHint[] hints() default {};
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="query" type="xsd:string"/>
+      <xsd:element name="hint" type="orm:query-hint" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="named-native-query">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface NamedNativeQuery {
+          String name();
+          String query();
+          QueryHint[] hints() default {};
+          Class resultClass() default void.class;
+          String resultSetMapping() default ""; //named SqlResultSetMapping
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="query" type="xsd:string"/>
+      <xsd:element name="hint" type="orm:query-hint" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="result-class" type="xsd:string"/>
+    <xsd:attribute name="result-set-mapping" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="sql-result-set-mapping">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface SqlResultSetMapping {
+          String name();
+          EntityResult[] entities() default {};
+          ColumnResult[] columns() default {};
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="entity-result" type="orm:entity-result" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="column-result" type="orm:column-result" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="entity-result">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({}) @Retention(RUNTIME)
+        public @interface EntityResult {
+          Class entityClass();
+          FieldResult[] fields() default {};
+          String discriminatorColumn() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="field-result" type="orm:field-result" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="entity-class" type="xsd:string" use="required"/>
+    <xsd:attribute name="discriminator-column" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="field-result">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({}) @Retention(RUNTIME)
+        public @interface FieldResult {
+          String name();
+          String column();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="column" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="column-result">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({}) @Retention(RUNTIME)
+        public @interface ColumnResult {
+          String name();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="table">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface Table {
+          String name() default "";
+          String catalog() default "";
+          String schema() default "";
+          UniqueConstraint[] uniqueConstraints() default {};
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="unique-constraint" type="orm:unique-constraint" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="catalog" type="xsd:string"/>
+    <xsd:attribute name="schema" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="secondary-table">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface SecondaryTable {
+          String name();
+          String catalog() default "";
+          String schema() default "";
+          PrimaryKeyJoinColumn[] pkJoinColumns() default {};
+          UniqueConstraint[] uniqueConstraints() default {};
+         }
+
+       </xsd:documentation>
+     </xsd:annotation>
+     <xsd:sequence>
+       <xsd:element name="primary-key-join-column" 
+                    type="orm:primary-key-join-column" 
+                    minOccurs="0" maxOccurs="unbounded"/>
+       <xsd:element name="unique-constraint" type="orm:unique-constraint" 
+                    minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="catalog" type="xsd:string"/>
+    <xsd:attribute name="schema" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="unique-constraint">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({}) @Retention(RUNTIME)
+        public @interface UniqueConstraint {
+          String[] columnNames();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="column-name" type="xsd:string" 
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="column">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Column {
+          String name() default "";
+          boolean unique() default false;
+          boolean nullable() default true;
+          boolean insertable() default true;
+          boolean updatable() default true;
+          String columnDefinition() default "";
+          String table() default "";
+          int length() default 255;
+          int precision() default 0; // decimal precision
+          int scale() default 0; // decimal scale
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="unique" type="xsd:boolean"/>
+    <xsd:attribute name="nullable" type="xsd:boolean"/>
+    <xsd:attribute name="insertable" type="xsd:boolean"/>
+    <xsd:attribute name="updatable" type="xsd:boolean"/>
+    <xsd:attribute name="column-definition" type="xsd:string"/>
+    <xsd:attribute name="table" type="xsd:string"/>
+    <xsd:attribute name="length" type="xsd:int"/>
+    <xsd:attribute name="precision" type="xsd:int"/>
+    <xsd:attribute name="scale" type="xsd:int"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="join-column">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface JoinColumn {
+          String name() default "";
+          String referencedColumnName() default "";
+          boolean unique() default false;
+          boolean nullable() default true;
+          boolean insertable() default true;
+          boolean updatable() default true;
+          String columnDefinition() default "";
+          String table() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="referenced-column-name" type="xsd:string"/>
+    <xsd:attribute name="unique" type="xsd:boolean"/>
+    <xsd:attribute name="nullable" type="xsd:boolean"/>
+    <xsd:attribute name="insertable" type="xsd:boolean"/>
+    <xsd:attribute name="updatable" type="xsd:boolean"/>
+    <xsd:attribute name="column-definition" type="xsd:string"/>
+    <xsd:attribute name="table" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="generation-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum GenerationType { TABLE, SEQUENCE, IDENTITY, AUTO };
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="TABLE"/>
+      <xsd:enumeration value="SEQUENCE"/>
+      <xsd:enumeration value="IDENTITY"/>
+      <xsd:enumeration value="AUTO"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="attribute-override">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface AttributeOverride {
+          String name();
+          Column column();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="column" type="orm:column"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="association-override">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface AssociationOverride {
+          String name();
+          JoinColumn[] joinColumns();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="join-column" type="orm:join-column"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="id-class">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface IdClass {
+          Class value();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="class" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="id">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Id {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="column" type="orm:column" 
+                   minOccurs="0"/>
+      <xsd:element name="generated-value" type="orm:generated-value"
+                   minOccurs="0"/>
+      <xsd:element name="temporal" type="orm:temporal" 
+                   minOccurs="0"/>
+      <xsd:element name="table-generator" type="orm:table-generator" 
+                   minOccurs="0"/>
+      <xsd:element name="sequence-generator" type="orm:sequence-generator"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="embedded-id">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface EmbeddedId {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="attribute-override" type="orm:attribute-override" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="transient">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Transient {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="version">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Version {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="column" type="orm:column" minOccurs="0"/>
+      <xsd:element name="temporal" type="orm:temporal" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="basic">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Basic {
+          FetchType fetch() default EAGER;
+          boolean optional() default true;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="column" type="orm:column" minOccurs="0"/>
+      <xsd:choice>
+        <xsd:element name="lob" type="orm:lob" minOccurs="0"/>
+        <xsd:element name="temporal" type="orm:temporal" minOccurs="0"/>
+        <xsd:element name="enumerated" type="orm:enumerated" minOccurs="0"/>
+      </xsd:choice>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="fetch" type="orm:fetch-type"/>
+    <xsd:attribute name="optional" type="xsd:boolean"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="fetch-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum FetchType { LAZY, EAGER };
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="LAZY"/>
+      <xsd:enumeration value="EAGER"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="lob">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Lob {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="temporal">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Temporal {
+          TemporalType value();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="orm:temporal-type"/>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="temporal-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum TemporalType {
+          DATE, // java.sql.Date
+          TIME, // java.sql.Time
+          TIMESTAMP // java.sql.Timestamp
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+      <xsd:restriction base="xsd:token">
+        <xsd:enumeration value="DATE"/>
+        <xsd:enumeration value="TIME"/>
+        <xsd:enumeration value="TIMESTAMP"/>
+     </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="enumerated">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Enumerated {
+          EnumType value() default ORDINAL;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="orm:enum-type"/>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="enum-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum EnumType {
+          ORDINAL,
+          STRING
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="ORDINAL"/>
+      <xsd:enumeration value="STRING"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="many-to-one">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface ManyToOne {
+          Class targetEntity() default void.class;
+          CascadeType[] cascade() default {};
+          FetchType fetch() default EAGER;
+          boolean optional() default true;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:choice>       
+        <xsd:element name="join-column" type="orm:join-column" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="join-table" type="orm:join-table" 
+                     minOccurs="0"/>
+      </xsd:choice>       
+      <xsd:element name="cascade" type="orm:cascade-type" 
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="target-entity" type="xsd:string"/>
+    <xsd:attribute name="fetch" type="orm:fetch-type"/>
+    <xsd:attribute name="optional" type="xsd:boolean"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="cascade-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum CascadeType { ALL, PERSIST, MERGE, REMOVE, REFRESH};
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="cascade-all" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="cascade-persist" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="cascade-merge" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="cascade-remove" type="orm:emptyType"
+                   minOccurs="0"/>
+      <xsd:element name="cascade-refresh" type="orm:emptyType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="one-to-one">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface OneToOne {
+          Class targetEntity() default void.class;
+          CascadeType[] cascade() default {};
+          FetchType fetch() default EAGER;
+          boolean optional() default true;
+          String mappedBy() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:choice>
+        <xsd:element name="primary-key-join-column" 
+                     type="orm:primary-key-join-column" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="join-column" type="orm:join-column" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+        <xsd:element name="join-table" type="orm:join-table" 
+                     minOccurs="0"/>
+      </xsd:choice>
+      <xsd:element name="cascade" type="orm:cascade-type" 
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="target-entity" type="xsd:string"/>
+    <xsd:attribute name="fetch" type="orm:fetch-type"/>
+    <xsd:attribute name="optional" type="xsd:boolean"/>
+    <xsd:attribute name="mapped-by" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="one-to-many">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface OneToMany {
+          Class targetEntity() default void.class;
+          CascadeType[] cascade() default {};
+          FetchType fetch() default LAZY;
+          String mappedBy() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="order-by" type="orm:order-by" 
+                   minOccurs="0"/>
+      <xsd:element name="map-key" type="orm:map-key" 
+                   minOccurs="0"/>
+      <xsd:choice>       
+        <xsd:element name="join-table" type="orm:join-table" 
+                     minOccurs="0"/>
+        <xsd:element name="join-column" type="orm:join-column" 
+                     minOccurs="0" maxOccurs="unbounded"/>
+      </xsd:choice>       
+      <xsd:element name="cascade" type="orm:cascade-type" 
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="target-entity" type="xsd:string"/>
+    <xsd:attribute name="fetch" type="orm:fetch-type"/>
+    <xsd:attribute name="mapped-by" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="join-table">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface JoinTable {
+          String name() default "";
+          String catalog() default "";
+          String schema() default "";
+          JoinColumn[] joinColumns() default {};
+          JoinColumn[] inverseJoinColumns() default {};
+          UniqueConstraint[] uniqueConstraints() default {};
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="join-column" type="orm:join-column" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="inverse-join-column" type="orm:join-column" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="unique-constraint" type="orm:unique-constraint" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="catalog" type="xsd:string"/>
+    <xsd:attribute name="schema" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="many-to-many">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface ManyToMany {
+          Class targetEntity() default void.class;
+          CascadeType[] cascade() default {};
+          FetchType fetch() default LAZY;
+          String mappedBy() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="order-by" type="orm:order-by" 
+                   minOccurs="0"/>
+      <xsd:element name="map-key" type="orm:map-key" 
+                   minOccurs="0"/>
+      <xsd:element name="join-table" type="orm:join-table" 
+                   minOccurs="0"/>
+      <xsd:element name="cascade" type="orm:cascade-type" 
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="target-entity" type="xsd:string"/>
+    <xsd:attribute name="fetch" type="orm:fetch-type"/>
+    <xsd:attribute name="mapped-by" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="generated-value">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface GeneratedValue {
+          GenerationType strategy() default AUTO;
+          String generator() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="strategy" type="orm:generation-type"/>
+    <xsd:attribute name="generator" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="map-key">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface MapKey {
+          String name() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="order-by">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface OrderBy {
+          String value() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:string"/>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="inheritance">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface Inheritance {
+          InheritanceType strategy() default SINGLE_TABLE;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="strategy" type="orm:inheritance-type"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="inheritance-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum InheritanceType
+          { SINGLE_TABLE, JOINED, TABLE_PER_CLASS};
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="SINGLE_TABLE"/>
+      <xsd:enumeration value="JOINED"/>
+      <xsd:enumeration value="TABLE_PER_CLASS"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="discriminator-value">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface DiscriminatorValue {
+          String value();
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:string"/>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="discriminator-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum DiscriminatorType { STRING, CHAR, INTEGER };
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="STRING"/>
+      <xsd:enumeration value="CHAR"/>
+      <xsd:enumeration value="INTEGER"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="primary-key-join-column">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface PrimaryKeyJoinColumn {
+          String name() default "";
+          String referencedColumnName() default "";
+          String columnDefinition() default "";
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="referenced-column-name" type="xsd:string"/>
+    <xsd:attribute name="column-definition" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="discriminator-column">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface DiscriminatorColumn {
+          String name() default "DTYPE";
+          DiscriminatorType discriminatorType() default STRING;
+          String columnDefinition() default "";
+          int length() default 31;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string"/>
+    <xsd:attribute name="discriminator-type" type="orm:discriminator-type"/>
+    <xsd:attribute name="column-definition" type="xsd:string"/>
+    <xsd:attribute name="length" type="xsd:int"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="embeddable">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Defines the settings and mappings for embeddable objects. Is 
+        allowed to be sparsely populated and used in conjunction with 
+        the annotations. Alternatively, the metadata-complete attribute 
+        can be used to indicate that no annotations are to be processed 
+        in the class. If this is the case then the defaulting rules will 
+        be recursively applied.
+
+        @Target({TYPE}) @Retention(RUNTIME)
+        public @interface Embeddable {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:element name="attributes" type="orm:embeddable-attributes" 
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="class" type="xsd:string" use="required"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="embeddable-attributes">
+    <xsd:sequence>
+      <xsd:element name="basic" type="orm:basic" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="transient" type="orm:transient" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="embedded">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface Embedded {}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="attribute-override" type="orm:attribute-override" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="mapped-superclass">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        Defines the settings and mappings for a mapped superclass. Is 
+        allowed to be sparsely populated and used in conjunction with 
+        the annotations. Alternatively, the metadata-complete attribute 
+        can be used to indicate that no annotations are to be processed 
+        If this is the case then the defaulting rules will be recursively 
+        applied.
+
+        @Target(TYPE) @Retention(RUNTIME)
+        public @interface MappedSuperclass{}
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description" type="xsd:string" minOccurs="0"/>
+      <xsd:element name="id-class" type="orm:id-class" minOccurs="0"/>
+      <xsd:element name="exclude-default-listeners" type="orm:emptyType" 
+                   minOccurs="0"/>
+      <xsd:element name="exclude-superclass-listeners" type="orm:emptyType" 
+                   minOccurs="0"/>
+      <xsd:element name="entity-listeners" type="orm:entity-listeners" 
+                   minOccurs="0"/>
+      <xsd:element name="pre-persist" type="orm:pre-persist" minOccurs="0"/>
+      <xsd:element name="post-persist" type="orm:post-persist" 
+                   minOccurs="0"/>
+      <xsd:element name="pre-remove" type="orm:pre-remove" minOccurs="0"/>
+      <xsd:element name="post-remove" type="orm:post-remove" minOccurs="0"/>
+      <xsd:element name="pre-update" type="orm:pre-update" minOccurs="0"/>
+      <xsd:element name="post-update" type="orm:post-update" minOccurs="0"/>
+      <xsd:element name="post-load" type="orm:post-load" minOccurs="0"/>
+      <xsd:element name="attributes" type="orm:attributes" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="class" type="xsd:string" use="required"/>
+    <xsd:attribute name="access" type="orm:access-type"/>
+    <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="sequence-generator">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface SequenceGenerator {
+          String name();
+          String sequenceName() default "";
+          int initialValue() default 1;
+          int allocationSize() default 50;
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="sequence-name" type="xsd:string"/>
+    <xsd:attribute name="initial-value" type="xsd:int"/>
+    <xsd:attribute name="allocation-size" type="xsd:int"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="table-generator">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        @Target({TYPE, METHOD, FIELD}) @Retention(RUNTIME)
+        public @interface TableGenerator {
+          String name();
+          String table() default "";
+          String catalog() default "";
+          String schema() default "";
+          String pkColumnName() default "";
+          String valueColumnName() default "";
+          String pkColumnValue() default "";
+          int initialValue() default 0;
+          int allocationSize() default 50;
+          UniqueConstraint[] uniqueConstraints() default {};
+        }
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="unique-constraint" type="orm:unique-constraint" 
+                   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="name" type="xsd:string" use="required"/>
+    <xsd:attribute name="table" type="xsd:string"/>
+    <xsd:attribute name="catalog" type="xsd:string"/>
+    <xsd:attribute name="schema" type="xsd:string"/>
+    <xsd:attribute name="pk-column-name" type="xsd:string"/>
+    <xsd:attribute name="value-column-name" type="xsd:string"/>
+    <xsd:attribute name="pk-column-value" type="xsd:string"/>
+    <xsd:attribute name="initial-value" type="xsd:int"/>
+    <xsd:attribute name="allocation-size" type="xsd:int"/>
+  </xsd:complexType>
+
+</xsd:schema>
+
+


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org


[12/12] juddi git commit: JUDDI-919 replication now works with ssl + client-cert authentication. In order to support this, we need to have two different war file (unfortunately). Included with this change set is number of typos in our deployment files (w

Posted by al...@apache.org.
JUDDI-919 replication now works with ssl + client-cert authentication. In order to support this, we need to have two different war file (unfortunately). Included with this change set is number of typos in our deployment files (web.xml, beans.xml, etc) for the various supported containers
JUDDI-910 adding support for alternate endpoints for edge based coms. a number of optimizations were added to prevent/reduce network traffic for unnecessary updates. tested and working with 3 tomcat nodes


Project: http://git-wip-us.apache.org/repos/asf/juddi/repo
Commit: http://git-wip-us.apache.org/repos/asf/juddi/commit/5994cd06
Tree: http://git-wip-us.apache.org/repos/asf/juddi/tree/5994cd06
Diff: http://git-wip-us.apache.org/repos/asf/juddi/diff/5994cd06

Branch: refs/heads/master
Commit: 5994cd063d305050b2c082358fd7519dd01be708
Parents: 5eda4a7
Author: Alex <al...@apache.org>
Authored: Sun Feb 15 21:18:03 2015 -0500
Committer: Alex <al...@apache.org>
Committed: Sun Feb 15 21:18:03 2015 -0500

----------------------------------------------------------------------
 .../juddi/v3/client/cryptor/CryptorFactory.java |    3 -
 .../client/cryptor/TransportSecurityHelper.java |  122 ++
 .../src/test/resources/META-INF/persistence.xml |  249 ++-
 .../juddi/api/impl/AuthenticatedService.java    |    2 +-
 .../org/apache/juddi/api/impl/JUDDIApiImpl.java |    2 +-
 .../juddi/api/impl/UDDIReplicationImpl.java     |   36 +-
 .../juddi/replication/ReplicationNotifier.java  |   64 +-
 .../juddi/validation/ValidateReplication.java   |    3 +
 .../src/main/resources/messages.properties      |    1 +
 .../juddi/api/impl/API_160_ReplicationTest.java |   13 +-
 .../src/test/resources/META-INF/persistence.xml |    2 -
 .../org/apache/juddi/samples/EntryPoint.java    |   70 +-
 .../juddi/samples/EntryPointSingleNode.java     |  209 ++-
 .../juddi/samples/EntryPoitMultiNode.java       |  125 +-
 .../apache/juddi/samples/JuddiAdminService.java |  297 ++-
 .../apache/juddi/samples/UddiCreatebulk.java    |   15 +-
 .../resources/META-INF/simple-publish-uddi.xml  |    8 +-
 juddi-tomcat/build.xml                          |   10 +
 juddi-tomcat/pom.xml                            |    9 +-
 juddi-tomcat/server.xml                         |    3 +-
 juddi-tomcat/serverNode2.xml                    |    3 +-
 juddi-tomcat/serverNode3.xml                    |    3 +-
 juddi-tomcat/tomcat-users.xml                   |    6 +-
 juddiv3-war-repl/.gitignore                     |    6 +
 .../JAX-WS/Axis2/WEB-INF/conf/axis2.xml         |  520 ++++++
 juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/web.xml   |  129 ++
 .../JAX-WS/CXF-JBossAS7Up/WEB-INF/beans.xml     |   47 +
 .../WEB-INF/classes/schemas/jaxrs.xsd           |  169 ++
 .../WEB-INF/classes/schemas/jaxws.xsd           |  437 +++++
 .../WEB-INF/classes/schemas/spring-beans.xsd    | 1203 ++++++++++++
 .../JAX-WS/CXF-JBossAS7Up/WEB-INF/web.xml       |   85 +
 juddiv3-war-repl/JAX-WS/CXF/WEB-INF/beans.xml   |   44 +
 .../CXF/WEB-INF/classes/schemas/jaxrs.xsd       |  169 ++
 .../CXF/WEB-INF/classes/schemas/jaxws.xsd       |  437 +++++
 .../WEB-INF/classes/schemas/spring-beans.xsd    | 1203 ++++++++++++
 .../CXF/WEB-INF/classes/schemas/spring-util.xsd |  212 +++
 juddiv3-war-repl/JAX-WS/CXF/WEB-INF/web.xml     |  114 ++
 .../JAX-WS/JBossWS-CXF/WEB-INF/web.xml          |   84 +
 .../JAX-WS/JBossWS-Native/WEB-INF/web.xml       |   92 +
 .../WEB-INF/classes/META-INF/orm.xml.example    |  242 +++
 .../WEB-INF/classes/META-INF/persistence.xml    |  110 ++
 .../JPA/Hibernate-JBoss/WEB-INF/index.jsp       |  131 ++
 .../JPA/Hibernate-JBoss/WEB-INF/jboss-web.xml   |   32 +
 .../WEB-INF/classes/META-INF/orm.xml.example    |  243 +++
 .../WEB-INF/classes/META-INF/persistence.xml    |  111 ++
 .../WEB-INF/jboss-deployment-structure.xml      |    9 +
 .../Hibernate-JBossAS7Up/WEB-INF/jboss-web.xml  |   26 +
 .../WEB-INF/classes/META-INF/orm.xml.example    |  243 +++
 .../WEB-INF/classes/META-INF/persistence.xml    |  111 ++
 .../Hibernate/WEB-INF/classes/log4j.properties  |   37 +
 .../WEB-INF/classes/META-INF/orm.xml.example    |  243 +++
 .../WEB-INF/classes/META-INF/persistence.xml    |  111 ++
 .../OpenJPA/WEB-INF/classes/log4j.properties    |   42 +
 juddiv3-war-repl/README.txt                     |   93 +
 juddiv3-war-repl/context.xml                    |   46 +
 juddiv3-war-repl/pom.xml                        |  527 ++++++
 .../java/org/apache/juddi/adminconsole/AES.java |  164 ++
 .../CrossSiteRequestForgeryException.java       |   67 +
 .../juddi/adminconsole/PostBackConstants.java   |   62 +
 .../juddi/adminconsole/StartupServlet.java      |  131 ++
 .../adminconsole/hub/JUDDIRequestsAsXML.java    |  209 +++
 .../juddi/adminconsole/hub/UddiAdminHub.java    | 1709 ++++++++++++++++++
 .../adminconsole/hub/builders/Printers.java     |  363 ++++
 .../adminconsole/resources/ResourceLoader.java  |   82 +
 .../apache/juddi/servlets/NotifyServlet.java    |   58 +
 .../apache/juddi/servlets/RegistryServlet.java  |   65 +
 .../main/resources/commons-logging.properties   |   19 +
 .../src/main/resources/schemas/orm_1_0.xsd      | 1561 ++++++++++++++++
 .../main/resources/schemas/persistence_1_0.xsd  |  305 ++++
 .../src/main/resources/spring-beans.xsd.xml     | 1203 ++++++++++++
 .../UDDI_Publisher.xml                          |   22 +
 .../UDDI_tModels.xml                            |  800 ++++++++
 .../marketing_BusinessEntity.xml                |   74 +
 .../marketing_Publisher.xml                     |   22 +
 .../marketing_tModels.xml                       |   55 +
 .../root_BusinessEntity.xml                     |  205 +++
 .../root_Publisher.xml                          |   21 +
 .../root_tModelKeyGen.xml                       |   40 +
 .../sales_Publisher.xml                         |   22 +
 .../sales_tModels.xml                           |   31 +
 .../UDDI_Publisher.xml                          |   22 +
 .../UDDI_tModels.xml                            |  800 ++++++++
 .../marketing_Publisher.xml                     |   22 +
 .../marketing_tModels.xml                       |   31 +
 .../root_BusinessEntity.xml                     |  205 +++
 .../root_Publisher.xml                          |   21 +
 .../root_tModelKeyGen.xml                       |   40 +
 .../sales_BusinessEntity.xml                    |   74 +
 .../sales_Publisher.xml                         |   22 +
 .../sales_tModels.xml                           |   55 +
 .../src/main/webapp/WEB-INF/classes/juddiv3.xml |  230 +++
 .../src/main/webapp/WEB-INF/config.properties   |   22 +
 .../src/main/webapp/WEB-INF/web.xml             |   27 +
 juddiv3-war-repl/src/main/webapp/index.jsp      |  186 ++
 juddiv3-war-repl/src/main/webapp/juddi.css      |  173 ++
 juddiv3-war/JAX-WS/Axis2/WEB-INF/web.xml        |  126 +-
 .../JAX-WS/CXF-JBossAS7Up/WEB-INF/beans.xml     |    5 +-
 .../JAX-WS/CXF-JBossAS7Up/WEB-INF/web.xml       |   33 +
 juddiv3-war/JAX-WS/CXF/WEB-INF/beans.xml        |    4 +-
 juddiv3-war/JAX-WS/CXF/WEB-INF/web.xml          |  162 +-
 juddiv3-war/JAX-WS/JBossWS-CXF/WEB-INF/web.xml  |  210 +--
 .../JAX-WS/JBossWS-Native/WEB-INF/web.xml       |  348 ++--
 pom.xml                                         |    1 +
 .../org/apache/juddi/v2/tck/TckPublisher.java   |    2 +-
 .../org/apache/juddi/v3/tck/TckPublisher.java   |    2 +-
 uddi-tck/pom.xml                                |   12 +-
 uddi-tck/server.xml                             |    8 +-
 uddi-tck/serverNode2.xml                        |    7 +
 uddi-tck/src/main/resources/META-INF/uddi.xml   |    6 +-
 .../tck/JUDDI_300_MultiNodeIntegrationTest.java |   89 +-
 110 files changed, 18053 insertions(+), 745 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-client/src/main/java/org/apache/juddi/v3/client/cryptor/CryptorFactory.java
----------------------------------------------------------------------
diff --git a/juddi-client/src/main/java/org/apache/juddi/v3/client/cryptor/CryptorFactory.java b/juddi-client/src/main/java/org/apache/juddi/v3/client/cryptor/CryptorFactory.java
index 6768b6e..8d6de30 100644
--- a/juddi-client/src/main/java/org/apache/juddi/v3/client/cryptor/CryptorFactory.java
+++ b/juddi-client/src/main/java/org/apache/juddi/v3/client/cryptor/CryptorFactory.java
@@ -19,11 +19,8 @@ package org.apache.juddi.v3.client.cryptor;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileReader;
-import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.juddi.v3.client.ClassUtil;

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-client/src/main/java/org/apache/juddi/v3/client/cryptor/TransportSecurityHelper.java
----------------------------------------------------------------------
diff --git a/juddi-client/src/main/java/org/apache/juddi/v3/client/cryptor/TransportSecurityHelper.java b/juddi-client/src/main/java/org/apache/juddi/v3/client/cryptor/TransportSecurityHelper.java
new file mode 100644
index 0000000..d88cb7d
--- /dev/null
+++ b/juddi-client/src/main/java/org/apache/juddi/v3/client/cryptor/TransportSecurityHelper.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright 2015 The Apache Software Foundation.
+ *
+ * Licensed 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.juddi.v3.client.cryptor;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.security.KeyStore;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.TrustManagerFactory;
+import javax.xml.ws.BindingProvider;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ *
+ * @author alex
+ */
+public class TransportSecurityHelper {
+
+        private static final Log log = LogFactory.getLog(TransportSecurityHelper.class);
+
+        public static boolean applyTransportSecurity(BindingProvider webServicePort) {
+                try {
+                        File currentdir = new File(".");
+                        String s = System.getProperty("javax.net.ssl.keyStore");
+                        String st = System.getProperty("javax.net.ssl.trustStore");
+                        log.info("Attempting to initialize keystore and truststore from " + s + " " + st);
+                        if (s == null) {
+                                log.warn("keystore isn't defined! " + s);
+                                return false;
+                        } else if (st == null) {
+                                log.warn("truststore isn't defined! " + s);
+                                return false;
+                        } else {
+                                File keystore = new File(s);
+                                if (keystore == null || !keystore.exists()) {
+                                        log.warn("keystore doesn't exist! input was " + s + " working dir is " + currentdir
+                                                .getAbsolutePath());
+                                        return false;
+                                }
+                                //File truststore =new File(System.getProperty("javax.net.ssl.trustStore"));
+                                String pwd = System.getProperty("javax.net.ssl.keyStorePassword");
+                                if (pwd == null) {
+                                        log.warn("keystore password isn't defined!");
+                                        return false;
+                                }
+
+                                File truststore = new File(st);
+                                if (truststore == null || !truststore.exists()) {
+                                        log.warn("truststore doesn't exist! input was " + s + " working dir is " + currentdir
+                                                .getAbsolutePath());
+                                        return false;
+                                }
+                                //File truststore =new File(System.getProperty("javax.net.ssl.trustStore"));
+                                String pwdt = System.getProperty("javax.net.ssl.trustStorePassword");
+                                if (pwdt == null) {
+                                        log.warn("truststore password isn't defined!");
+                                        return false;
+                                }
+
+                                if (keystore.exists()) {
+                                        try {
+                                                log.info("Using keystore from " + keystore.getAbsolutePath() + " current dir is " + currentdir.getAbsolutePath());
+
+                                                log.info("Using truststore from " + truststore.getAbsolutePath() + " current dir is " + currentdir.getAbsolutePath());
+                                                //log.info("Using truststure from " + truststore.getAbsolutePath() + " current dir is " + currentdir.getAbsolutePath());
+                                                SSLContext sc = SSLContext.getInstance("SSLv3");
+
+                                                KeyManagerFactory kmf
+                                                        = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
+
+                                                KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
+                                                ks.load(new FileInputStream(keystore), pwd.toCharArray());
+
+                                                kmf.init(ks, pwd.toCharArray());
+
+                                                String alg = TrustManagerFactory.getDefaultAlgorithm();
+                                                TrustManagerFactory tmFact = TrustManagerFactory.getInstance(alg);
+
+                                                FileInputStream fis = new FileInputStream(st);
+                                                KeyStore kst = KeyStore.getInstance("jks");
+                                                kst.load(fis, pwdt.toCharArray());
+                                                fis.close();
+
+                                                tmFact.init(kst);
+
+                                                TrustManager[] tms = tmFact.getTrustManagers();
+
+                                                sc.init(kmf.getKeyManagers(), null, null);
+                                                HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
+                                                ((BindingProvider) webServicePort).getRequestContext().put("com.sun.xml.internal.ws.transport.https.client.SSLSocketFactory", sc.getSocketFactory());
+                                                ((BindingProvider) webServicePort).getRequestContext().put("com.sun.xml.ws.transport.https.client.SSLSocketFactory", sc.getSocketFactory());
+                                                return true;
+                                        } catch (Exception ex) {
+                                                log.warn("unable to establish ssl settings", ex);
+                                        }
+                                }
+                        }
+                        return false;
+                } catch (Exception x) {
+                        log.error("unexpected error", x);
+                }
+                return false;
+        }
+
+}

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-core-openjpa/src/test/resources/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/juddi-core-openjpa/src/test/resources/META-INF/persistence.xml b/juddi-core-openjpa/src/test/resources/META-INF/persistence.xml
index 52aa67e..1142ef5 100644
--- a/juddi-core-openjpa/src/test/resources/META-INF/persistence.xml
+++ b/juddi-core-openjpa/src/test/resources/META-INF/persistence.xml
@@ -1,130 +1,119 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-* Copyright 2001-2009 The Apache Software Foundation.
-*
-* Licensed 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.
-*
-*/ -->
-<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
-             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 
-             version="1.0">
-  <persistence-unit name="juddiDatabase" transaction-type="RESOURCE_LOCAL">
-    <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
-    
-    <!-- entity classes -->
-    <class>org.apache.juddi.model.Address</class>
-    <class>org.apache.juddi.model.AddressLine</class>
-    <class>org.apache.juddi.model.AuthToken</class>
-    <class>org.apache.juddi.model.BindingCategoryBag</class>
-    <class>org.apache.juddi.model.BindingDescr</class>
-    <class>org.apache.juddi.model.BindingTemplate</class>
-    <class>org.apache.juddi.model.BusinessCategoryBag</class>
-    <class>org.apache.juddi.model.BusinessDescr</class>
-    <class>org.apache.juddi.model.BusinessEntity</class>
-    <class>org.apache.juddi.model.BusinessIdentifier</class>
-    <class>org.apache.juddi.model.BusinessName</class>
-    <class>org.apache.juddi.model.BusinessService</class>
-    <class>org.apache.juddi.model.CanonicalizationMethod</class>
-    <class>org.apache.juddi.model.CategoryBag</class>
-    <class>org.apache.juddi.model.Clerk</class>
-    <class>org.apache.juddi.model.ClientSubscriptionInfo</class>
-    <class>org.apache.juddi.model.Contact</class>
-    <class>org.apache.juddi.model.ContactDescr</class>
-    <class>org.apache.juddi.model.DiscoveryUrl</class>
-    <class>org.apache.juddi.model.Email</class>
-    <class>org.apache.juddi.model.InstanceDetailsDescr</class>
-    <class>org.apache.juddi.model.InstanceDetailsDocDescr</class>
-    <class>org.apache.juddi.model.KeyedReference</class>
-    <class>org.apache.juddi.model.KeyedReferenceGroup</class>
-    <class>org.apache.juddi.model.KeyDataValue</class>
-    <class>org.apache.juddi.model.KeyInfo</class>
-    <class>org.apache.juddi.model.Node</class>
-    <class>org.apache.juddi.model.ObjectType</class>
-    <class>org.apache.juddi.model.ObjectTypeContent</class>
-    <class>org.apache.juddi.model.OverviewDoc</class>
-    <class>org.apache.juddi.model.OverviewDocDescr</class>
-    <class>org.apache.juddi.model.PersonName</class>
-    <class>org.apache.juddi.model.Phone</class>
-    <class>org.apache.juddi.model.Publisher</class>
-    <class>org.apache.juddi.model.PublisherAssertion</class>
-    <class>org.apache.juddi.model.PublisherAssertionId</class>
-    <class>org.apache.juddi.model.Reference</class>
-    <class>org.apache.juddi.model.ServiceCategoryBag</class>
-    <class>org.apache.juddi.model.ServiceDescr</class>
-    <class>org.apache.juddi.model.ServiceName</class>
-    <class>org.apache.juddi.model.ServiceProjection</class>
-    <class>org.apache.juddi.model.ServiceProjectionId</class>
-    <class>org.apache.juddi.model.Signature</class>
-    <class>org.apache.juddi.model.SignatureMethod</class>
-    <class>org.apache.juddi.model.SignatureTransform</class>
-    <class>org.apache.juddi.model.SignatureTransformDataValue</class>
-    <class>org.apache.juddi.model.SignatureValue</class>
-    <class>org.apache.juddi.model.SignedInfo</class>
-    <class>org.apache.juddi.model.Subscription</class>
-    <class>org.apache.juddi.model.SubscriptionChunkToken</class>
-    <class>org.apache.juddi.model.SubscriptionMatch</class>
-    <class>org.apache.juddi.model.TempKey</class>
-	<class>org.apache.juddi.model.TempKeyPK</class>
-    <class>org.apache.juddi.model.Tmodel</class>
-    <class>org.apache.juddi.model.TmodelCategoryBag</class>
-    <class>org.apache.juddi.model.TmodelDescr</class>
-    <class>org.apache.juddi.model.TmodelIdentifier</class>
-    <class>org.apache.juddi.model.TmodelInstanceInfo</class>
-    <class>org.apache.juddi.model.TmodelInstanceInfoDescr</class>
-    <class>org.apache.juddi.model.TransferToken</class>
-    <class>org.apache.juddi.model.TransferTokenKey</class>
-    <class>org.apache.juddi.model.UddiEntity</class>
-    <class>org.apache.juddi.model.UddiEntityPublisher</class>
-	<class>org.apache.juddi.model.ValueSetValues</class>
-
-	<class>org.apache.juddi.model.ChangeRecord</class>
-	<class>org.apache.juddi.model.CommunicationGraph</class>
-	<class>org.apache.juddi.model.Operator</class>
-	<class>org.apache.juddi.model.ReplicationConfiguration</class>
-	<class>org.apache.juddi.model.Edge</class>
-	<class>org.apache.juddi.model.ControlMessage</class>
-  <class>org.apache.juddi.model.ReplicationConfigurationNode</class>
-    <class>org.apache.juddi.model.EdgeReceiverAlternate</class>
-  
-    <properties>
-      <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(SchemaAction='dropDB,add')"/>
-      <property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO"/>
-      <property name="openjpa.jdbc.UpdateManager" value="operation-order"/>
-      <property name="openjpa.RuntimeUnenhancedClasses" value="warn"/>
-      <property name="openjpa.Compatibility" value="CheckDatabaseForCascadePersistToDetachedEntity=true"/>
-      
-      <!-- derby connection properties -->
-      <property name="openjpa.ConnectionDriverName" value="org.apache.derby.jdbc.EmbeddedDriver"/>
-      <property name="openjpa.ConnectionURL" value="jdbc:derby:memory:juddi-derby-test-db;create=true"/>
-      <property name="openjpa.ConnectionUserName" value=""/>
-      <property name="openjpa.ConnectionPassword" value=""/>
-      <!--<property name="openjpa.Log" value="DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=TRACE"/>-->
-      
-      <!--  mysql connection properties
-      <property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:3306/juddi"/>
-      <property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/>
-      <property name="openjpa.ConnectionUserName" value="juddiv3"/>
-      <property name="openjpa.ConnectionPassword" value=""/>
-      -->
-      
-      <!--  pgsql connection properties 
-      <property name="openjpa.ConnectionURL" value="jdbc:postgresql://localhost:5432/juddi"/>
-      <property name="openjpa.ConnectionDriverName" value="org.postgresql.Driver"/>
-      <property name="openjpa.ConnectionUserName" value="juddi"/>
-      <property name="openjpa.ConnectionPassword" value="password"/>
-      -->
-      
-    </properties>
-  </persistence-unit>
-</persistence>
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+* Copyright 2001-2009 The Apache Software Foundation.
+*
+* Licensed 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.
+*
+*/ -->
+<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
+  <persistence-unit name="juddiDatabase" transaction-type="RESOURCE_LOCAL">
+    <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+    <!-- entity classes -->
+    <class>org.apache.juddi.model.Address</class>
+    <class>org.apache.juddi.model.AddressLine</class>
+    <class>org.apache.juddi.model.AuthToken</class>
+    <class>org.apache.juddi.model.BindingCategoryBag</class>
+    <class>org.apache.juddi.model.BindingDescr</class>
+    <class>org.apache.juddi.model.BindingTemplate</class>
+    <class>org.apache.juddi.model.BusinessCategoryBag</class>
+    <class>org.apache.juddi.model.BusinessDescr</class>
+    <class>org.apache.juddi.model.BusinessEntity</class>
+    <class>org.apache.juddi.model.BusinessIdentifier</class>
+    <class>org.apache.juddi.model.BusinessName</class>
+    <class>org.apache.juddi.model.BusinessService</class>
+    <class>org.apache.juddi.model.CanonicalizationMethod</class>
+    <class>org.apache.juddi.model.CategoryBag</class>
+    <class>org.apache.juddi.model.Clerk</class>
+    <class>org.apache.juddi.model.ClientSubscriptionInfo</class>
+    <class>org.apache.juddi.model.Contact</class>
+    <class>org.apache.juddi.model.ContactDescr</class>
+    <class>org.apache.juddi.model.DiscoveryUrl</class>
+    <class>org.apache.juddi.model.Email</class>
+    <class>org.apache.juddi.model.InstanceDetailsDescr</class>
+    <class>org.apache.juddi.model.InstanceDetailsDocDescr</class>
+    <class>org.apache.juddi.model.KeyedReference</class>
+    <class>org.apache.juddi.model.KeyedReferenceGroup</class>
+    <class>org.apache.juddi.model.KeyDataValue</class>
+    <class>org.apache.juddi.model.KeyInfo</class>
+    <class>org.apache.juddi.model.Node</class>
+    <class>org.apache.juddi.model.ObjectType</class>
+    <class>org.apache.juddi.model.ObjectTypeContent</class>
+    <class>org.apache.juddi.model.OverviewDoc</class>
+    <class>org.apache.juddi.model.OverviewDocDescr</class>
+    <class>org.apache.juddi.model.PersonName</class>
+    <class>org.apache.juddi.model.Phone</class>
+    <class>org.apache.juddi.model.Publisher</class>
+    <class>org.apache.juddi.model.PublisherAssertion</class>
+    <class>org.apache.juddi.model.PublisherAssertionId</class>
+    <class>org.apache.juddi.model.Reference</class>
+    <class>org.apache.juddi.model.ServiceCategoryBag</class>
+    <class>org.apache.juddi.model.ServiceDescr</class>
+    <class>org.apache.juddi.model.ServiceName</class>
+    <class>org.apache.juddi.model.ServiceProjection</class>
+    <class>org.apache.juddi.model.ServiceProjectionId</class>
+    <class>org.apache.juddi.model.Signature</class>
+    <class>org.apache.juddi.model.SignatureMethod</class>
+    <class>org.apache.juddi.model.SignatureTransform</class>
+    <class>org.apache.juddi.model.SignatureTransformDataValue</class>
+    <class>org.apache.juddi.model.SignatureValue</class>
+    <class>org.apache.juddi.model.SignedInfo</class>
+    <class>org.apache.juddi.model.Subscription</class>
+    <class>org.apache.juddi.model.SubscriptionChunkToken</class>
+    <class>org.apache.juddi.model.SubscriptionMatch</class>
+    <class>org.apache.juddi.model.TempKey</class>
+    <class>org.apache.juddi.model.TempKeyPK</class>
+    <class>org.apache.juddi.model.Tmodel</class>
+    <class>org.apache.juddi.model.TmodelCategoryBag</class>
+    <class>org.apache.juddi.model.TmodelDescr</class>
+    <class>org.apache.juddi.model.TmodelIdentifier</class>
+    <class>org.apache.juddi.model.TmodelInstanceInfo</class>
+    <class>org.apache.juddi.model.TmodelInstanceInfoDescr</class>
+    <class>org.apache.juddi.model.TransferToken</class>
+    <class>org.apache.juddi.model.TransferTokenKey</class>
+    <class>org.apache.juddi.model.UddiEntity</class>
+    <class>org.apache.juddi.model.UddiEntityPublisher</class>
+    <class>org.apache.juddi.model.ValueSetValues</class>
+    <class>org.apache.juddi.model.ChangeRecord</class>
+    <class>org.apache.juddi.model.Operator</class>
+    <class>org.apache.juddi.model.ReplicationConfiguration</class>
+    <class>org.apache.juddi.model.Edge</class>
+    <class>org.apache.juddi.model.ControlMessage</class>
+    <class>org.apache.juddi.model.ReplicationConfigurationNode</class>
+    <class>org.apache.juddi.model.EdgeReceiverAlternate</class>
+    <properties>
+      <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(SchemaAction='dropDB,add')"/>
+      <property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO"/>
+      <property name="openjpa.jdbc.UpdateManager" value="operation-order"/>
+      <property name="openjpa.RuntimeUnenhancedClasses" value="warn"/>
+      <property name="openjpa.Compatibility" value="CheckDatabaseForCascadePersistToDetachedEntity=true"/>
+      <!-- derby connection properties -->
+      <property name="openjpa.ConnectionDriverName" value="org.apache.derby.jdbc.EmbeddedDriver"/>
+      <property name="openjpa.ConnectionURL" value="jdbc:derby:memory:juddi-derby-test-db;create=true"/>
+      <property name="openjpa.ConnectionUserName" value=""/>
+      <property name="openjpa.ConnectionPassword" value=""/>
+      <!--<property name="openjpa.Log" value="DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=TRACE"/>-->
+      <!--  mysql connection properties
+      <property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:3306/juddi"/>
+      <property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/>
+      <property name="openjpa.ConnectionUserName" value="juddiv3"/>
+      <property name="openjpa.ConnectionPassword" value=""/>
+      -->
+      <!--  pgsql connection properties 
+      <property name="openjpa.ConnectionURL" value="jdbc:postgresql://localhost:5432/juddi"/>
+      <property name="openjpa.ConnectionDriverName" value="org.postgresql.Driver"/>
+      <property name="openjpa.ConnectionUserName" value="juddi"/>
+      <property name="openjpa.ConnectionPassword" value="password"/>
+      -->
+    </properties>
+  </persistence-unit>
+</persistence>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
index 6d16d98..0868501 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
@@ -62,7 +62,7 @@ public abstract class AuthenticatedService {
                         node = AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID, "UNDEFINED_NODE_NAME");
                         node = node.trim();
                         baseUrlSSL = AppConfig.getConfiguration().getString(Property.JUDDI_BASE_URL_SECURE, Property.DEFAULT_BASE_URL_SECURE);
-                        baseUrlSSL = AppConfig.getConfiguration().getString(Property.JUDDI_BASE_URL, Property.DEFAULT_BASE_URL);
+                        baseUrlSSL = baseUrlSSL.trim();
                 } catch (ConfigurationException ex) {
                         logger.fatal(null, ex);
                 }

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
----------------------------------------------------------------------
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 7fbb109..b9d48da 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
@@ -1471,7 +1471,7 @@ public class JUDDIApiImpl extends AuthenticatedService implements JUDDIApiPortTy
                         r.setCommunicationGraph(new CommunicationGraph());
                         Operator op = new Operator();
                         op.setOperatorNodeID(node);
-                        op.setSoapReplicationURL(baseUrlSSL + "/services/replication");
+                        op.setSoapReplicationURL(baseUrlSSL + "replication/services/replication");
 
                         op.getContact().add(new Contact());
                         op.getContact().get(0).getPersonName().add(new PersonName("Unknown", null));

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java
index 6a15569..3a1645b 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIReplicationImpl.java
@@ -41,9 +41,6 @@ import javax.persistence.Query;
 import javax.xml.bind.JAXB;
 import javax.xml.bind.annotation.XmlSeeAlso;
 import javax.xml.ws.BindingProvider;
-import org.apache.commons.configuration.ConfigurationException;
-import static org.apache.juddi.api.impl.AuthenticatedService.logger;
-import static org.apache.juddi.api.impl.AuthenticatedService.node;
 import org.apache.juddi.api.util.QueryStatus;
 import org.apache.juddi.api.util.ReplicationQuery;
 import org.apache.juddi.config.AppConfig;
@@ -62,11 +59,11 @@ import org.apache.juddi.model.UddiEntity;
 import org.apache.juddi.replication.ReplicationNotifier;
 import static org.apache.juddi.replication.ReplicationNotifier.FetchEdges;
 import org.apache.juddi.v3.client.UDDIService;
+import org.apache.juddi.v3.client.cryptor.TransportSecurityHelper;
 import org.apache.juddi.v3.error.ErrorMessage;
 import org.apache.juddi.v3.error.FatalErrorException;
 import org.apache.juddi.v3.error.TransferNotAllowedException;
 import org.apache.juddi.validation.ValidateReplication;
-import org.uddi.api_v3.OperationalInfo;
 import org.uddi.custody_v3.TransferEntities;
 import org.uddi.repl_v3.ChangeRecord;
 import org.uddi.repl_v3.ChangeRecordAcknowledgement;
@@ -82,17 +79,15 @@ import org.uddi.repl_v3.TransferCustody;
 import org.uddi.v3_service.DispositionReportFaultMessage;
 import org.uddi.v3_service.UDDIReplicationPortType;
 
-//@WebService(serviceName="UDDIReplicationService", 
-//			endpointInterface="org.uddi.v3_service.UDDIReplicationPortType",
-//			targetNamespace = "urn:uddi-org:v3_service")
 /**
  * UDDI Replication defines four APIs. The first two presented here are used to
  * perform replication and issue notifications. The latter ancillary APIs
  * provide support for other aspects of UDDI Replication.
- * <ul><li>get_changeRecords</li>
+ * <ul>
+ * <li>get_changeRecords</li>
  * <li>notify_changeRecordsAvailable</li>
  * <li>do_ping</li>
- * <li>get_highWaterMarks</li>
+ * <li>get_highWaterMarks</li></ul>
  *
  * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
  */
@@ -125,8 +120,6 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
                 for (String s : addedNodes) {
                         if (!s.equals(node)) {
                                 logger.info("This node: " + node + ". New replication node queue for synchronization: " + s);
-                                //HighWaterMarkVectorType highWaterMarkVectorType = new HighWaterMarkVectorType();
-                                //highWaterMarkVectorType.getHighWaterMark().add(new ChangeRecordIDType(s, 0L));
                                 HighWaterMarkVectorType highWaterMarkVectorType = new HighWaterMarkVectorType();
                                 highWaterMarkVectorType.getHighWaterMark().add(new ChangeRecordIDType(s, 0L));
                                 queue.add(new NotifyChangeRecordsAvailable(s, highWaterMarkVectorType));
@@ -186,13 +179,13 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
 
         private static UDDIPublicationImpl pub = null;
 
-        public UDDIReplicationImpl()  {
+        public UDDIReplicationImpl() {
                 super();
-                try{
-                this.interval = AppConfig.getConfiguration().getLong(Property.JUDDI_REPLICATION_INTERVAL, 5000L);
-                this.startBuffer = AppConfig.getConfiguration().getLong(Property.JUDDI_REPLICATION_START_BUFFER, 5000L);
-                }catch(Exception ex){
-                        logger.warn("Config error!",ex);
+                try {
+                        this.interval = AppConfig.getConfiguration().getLong(Property.JUDDI_REPLICATION_INTERVAL, 5000L);
+                        this.startBuffer = AppConfig.getConfiguration().getLong(Property.JUDDI_REPLICATION_START_BUFFER, 5000L);
+                } catch (Exception ex) {
+                        logger.warn("Config error!", ex);
                 }
                 if (pub == null) {
                         pub = new UDDIPublicationImpl();
@@ -300,7 +293,11 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
                                                 }
                                         }
                                 } else {
-                                        logger.warn("strange, popped an object from the queue but it was null or it from myself, ignoring...");
+                                        if (poll == null) {
+                                                logger.warn("strange, popped a null object");
+                                        } else if (poll.getNotifyingNode().equalsIgnoreCase(node)) {
+                                                logger.warn("strange, popped an object from the queue but it was from myself. This probably indicates a configuration error! ignoring...first record: " + poll.getChangesAvailable().getHighWaterMark().get(0).getNodeID()+":" + poll.getChangesAvailable().getHighWaterMark().get(0).getOriginatingUSN());
+                                        }
                                 }
                         }
                 }
@@ -958,6 +955,7 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
                 }
                 UDDIService svc = new UDDIService();
                 UDDIReplicationPortType replicationClient = svc.getUDDIReplicationPort();
+                TransportSecurityHelper.applyTransportSecurity((BindingProvider) replicationClient);
 
                 EntityManager em = PersistenceManager.getEntityManager();
                 EntityTransaction tx = em.getTransaction();
@@ -1248,7 +1246,7 @@ public class UDDIReplicationImpl extends AuthenticatedService implements UDDIRep
                 //getChangeRecords from the remote node asynch
                 new ValidateReplication(null).validateNotifyChangeRecordsAvailable(body, ctx);
 
-                logger.info(body.getNotifyingNode() + " just told me that there are change records available, enqueuing...size is " + queue.size());
+                logger.info(body.getNotifyingNode() + " just told me that there are change records available, enqueuing...size is " + queue.size() + " this node is " + node);
                 //if (!queue.contains(body.getNotifyingNode())) {
                 queue.add(body);
                 //}

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java b/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
index e96459e..6f0a680 100644
--- a/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
+++ b/juddi-core/src/main/java/org/apache/juddi/replication/ReplicationNotifier.java
@@ -45,6 +45,7 @@ import org.apache.juddi.mapping.MappingModelToApi;
 import org.apache.juddi.model.ChangeRecord;
 import org.apache.juddi.model.ReplicationConfiguration;
 import org.apache.juddi.v3.client.UDDIService;
+import org.apache.juddi.v3.client.cryptor.TransportSecurityHelper;
 import org.uddi.repl_v3.ChangeRecordIDType;
 import org.uddi.repl_v3.CommunicationGraph.Edge;
 import org.uddi.repl_v3.HighWaterMarkVectorType;
@@ -110,8 +111,7 @@ public class ReplicationNotifier extends TimerTask {
         static Queue<org.uddi.repl_v3.ChangeRecord> queue2;
 
         /**
-         * Note: this is for locally originated changes only, see 
-         * {@link org.apache.juddi.api.impl.UDDIReplicationImpl.PullTimerTask#PersistChangeRecord PersistChangeRecord
+         * Note: this is for locally originated changes only, see null null null         {@link org.apache.juddi.api.impl.UDDIReplicationImpl.PullTimerTask#PersistChangeRecord PersistChangeRecord
          * } for how remote changes are processed
          *
          * @param j must be one of the UDDI save APIs
@@ -156,19 +156,12 @@ public class ReplicationNotifier extends TimerTask {
 
                 org.uddi.repl_v3.ReplicationConfiguration repcfg = FetchEdges();
 
-                //TODO figure out what this statement means 7.5.3
-                /**
-                 * In the absence of a communicationGraph element from the
-                 * Replication Configuration Structure (although it's mandatory
-                 * in the xsd), all nodes listed in the node element MAY send
-                 * any and all messages to any other node of the registry.
-                 */
                 if (repcfg == null) {
                         log.debug("No replication configuration is defined!");
                         return;
 
                 }
-                if (id==null || origin_node==null){
+                if (id == null || origin_node == null) {
                         log.fatal("Either the id is null or the origin_node is null. I can't send out this alert!!");
                         //throw new Exception(node);
                         return;
@@ -176,17 +169,25 @@ public class ReplicationNotifier extends TimerTask {
 
                 Set<Object> destinationUrls = new HashSet<Object>();
 
+                /**
+                 * In the absence of a communicationGraph element from the
+                 * Replication Configuration Structure (although it's mandatory
+                 * in the xsd), all nodes listed in the node element MAY send
+                 * any and all messages to any other node of the registry.
+                 */
                 if (repcfg.getCommunicationGraph() == null
                         || repcfg.getCommunicationGraph().getEdge().isEmpty() && !isRetrans) {
                         //no edges or graph defined, default to the operator list
+                        //retransmission only applies to non-directed-edge replication, thus the extra check
                         for (Operator o : repcfg.getOperator()) {
-                                //no need to tell myself about a change at myself
-                                if (!o.getOperatorNodeID().equalsIgnoreCase(node)) {
+                                //no need to tell myself about a change at myself or the origin
+                                if (!o.getOperatorNodeID().equalsIgnoreCase(node) && !o.getOperatorNodeID().equalsIgnoreCase(origin_node)) {
                                         destinationUrls.add(o.getSoapReplicationURL());
                                 }
                         }
                 } else {
-                        //repcfg.getCommunicationGraph()
+                        //this is for directed graph replication
+                        //find all nodes that i need to notify
                         Iterator<Edge> iterator = repcfg.getCommunicationGraph().getEdge().iterator();
                         while (iterator.hasNext()) {
                                 Edge next = iterator.next();
@@ -196,21 +197,27 @@ public class ReplicationNotifier extends TimerTask {
                                         //this is my server and i need to transmit the notification to
                                         String messageReceiver = next.getMessageReceiver();
                                         PrimaryAlternate container = new PrimaryAlternate();
-
-                                        for (int x = 0; x < repcfg.getOperator().size(); x++) {
-                                                if (repcfg.getOperator().get(x).getOperatorNodeID().equalsIgnoreCase(messageReceiver)) {
-                                                        container.primaryUrl = repcfg.getOperator().get(x).getSoapReplicationURL();
-                                                }
-                                        }
-                                        for (int y = 0; y < next.getMessageReceiverAlternate().size(); y++) {
+                                        //pointless to send a notification to myself or the origin
+                                        if (!messageReceiver.equalsIgnoreCase(node) && !messageReceiver.equalsIgnoreCase(origin_node)) {
+                                                //look up the endpoint urls
                                                 for (int x = 0; x < repcfg.getOperator().size(); x++) {
-                                                        if (repcfg.getOperator().get(x).getOperatorNodeID().equalsIgnoreCase(next.getMessageReceiverAlternate().get(y))) {
-                                                                container.alternateUrls.add(repcfg.getOperator().get(x).getSoapReplicationURL());
+                                                        if (repcfg.getOperator().get(x).getOperatorNodeID().equalsIgnoreCase(messageReceiver)) {
+                                                                container.primaryUrl = repcfg.getOperator().get(x).getSoapReplicationURL();
+                                                        }
+                                                }
+                                                for (int y = 0; y < next.getMessageReceiverAlternate().size(); y++) {
+                                                        for (int x = 0; x < repcfg.getOperator().size(); x++) {
+                                                                if (repcfg.getOperator().get(x).getOperatorNodeID().equalsIgnoreCase(next.getMessageReceiverAlternate().get(y))) {
+                                                                        container.alternateUrls.add(repcfg.getOperator().get(x).getSoapReplicationURL());
+                                                                }
                                                         }
                                                 }
                                         }
                                         if (container.primaryUrl != null) {
                                                 destinationUrls.add(container);
+                                        } else {
+                                                log.warn("Unable to find primary url for directed edge graph replication from this node " + node + " to "
+                                                        + "destination node " + next.getMessageReceiver() + " it will be ignored!");
                                         }
 
                                 }
@@ -219,10 +226,13 @@ public class ReplicationNotifier extends TimerTask {
 
                 }
 
-                UDDIReplicationPortType x = uddiService.getUDDIReplicationPort();
                 if (destinationUrls.isEmpty()) {
                         log.debug("Something is bizarre with the replication config. I should have had at least one node to notify, but I have none!");
+                        return;
                 }
+                UDDIReplicationPortType x = uddiService.getUDDIReplicationPort();
+                TransportSecurityHelper.applyTransportSecurity((BindingProvider) x);
+
                 for (Object s : destinationUrls) {
 
                         NotifyChangeRecordsAvailable req = new NotifyChangeRecordsAvailable();
@@ -271,7 +281,7 @@ public class ReplicationNotifier extends TimerTask {
                         log.info("Successfully sent change record available message to " + s + " this node: " + node);
                         return true;
                 } catch (Exception ex) {
-                        log.warn("Unable to send change notification to " + s + " this node: " + node);
+                        log.warn("Unable to send change notification to " + s + " this node: " + node + " reason: " + ex.getMessage());
                         log.debug("Unable to send change notification to " + s, ex);
                 }
                 return false;
@@ -309,14 +319,14 @@ public class ReplicationNotifier extends TimerTask {
                         //for each change at this node
 
                         org.uddi.repl_v3.ChangeRecord j = queue2.poll();
-                        
+
                         ChangeRecord model = new ChangeRecord();
                         try {
-                                model=MappingApiToModel.mapChangeRecord(j);
+                                model = MappingApiToModel.mapChangeRecord(j);
                         } catch (UnsupportedEncodingException ex) {
                                 Logger.getLogger(ReplicationNotifier.class.getName()).log(Level.SEVERE, null, ex);
                         }
-                        log.info("retransmitting CR notificationm entity owner: " + j.getChangeID().getNodeID() + " CR: " + j.getChangeID().getOriginatingUSN() + " key:" + model.getEntityKey() + " " + model.getRecordType().name() + " accepted locally:"+ model.getIsAppliedLocally());
+                        log.info("retransmitting CR notificationm entity owner: " + j.getChangeID().getNodeID() + " CR: " + j.getChangeID().getOriginatingUSN() + " key:" + model.getEntityKey() + " " + model.getRecordType().name() + " accepted locally:" + model.getIsAppliedLocally());
                         SendNotifications(j.getChangeID().getOriginatingUSN(), j.getChangeID().getNodeID(), true);
 
                 }

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java b/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java
index 44ec063..d9131c9 100644
--- a/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java
+++ b/juddi-core/src/main/java/org/apache/juddi/validation/ValidateReplication.java
@@ -190,6 +190,9 @@ public class ValidateReplication extends ValidateUDDIApi {
                                         throw new InvalidValueException(new ErrorMessage("errors.replication.configNodeNotFound"));
                                         //}
                                 }
+                                if (s.getMessageReceiver().equalsIgnoreCase(s.getMessageSender())){
+                                        throw new InvalidValueException(new ErrorMessage("errors.replication.configNodeLoop"));
+                                }
                                 for (String id : s.getMessageReceiverAlternate()) {
                                         if (!Contains(replicationConfiguration.getOperator(), id)) {
                                                 throw new InvalidValueException(new ErrorMessage("errors.replication.configNodeNotFound"));

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-core/src/main/resources/messages.properties
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/resources/messages.properties b/juddi-core/src/main/resources/messages.properties
index 1db74f8..10f2828 100644
--- a/juddi-core/src/main/resources/messages.properties
+++ b/juddi-core/src/main/resources/messages.properties
@@ -301,6 +301,7 @@ errors.replication.limitVectorNoNode=No node name was specified
 errors.replication.configNodeNotFound=No specified node name is not currently listed as a Operator. Add it to the list and try again. Id:
 errors.replication.configNull=No replication config was present in the message
 errors.replication.contactNull=No replication contact was present in the message
+errors.replication.configNodeLoop=In at least one edge, there is a loop where the sender is also the receiver. This is not allowed and just does not make sense
 errors.deleteNode.InReplicationConfig=The node to be deleted is currently referenced in the replication configuration. You must revise the configuration before deleting the node, 
 errors.usermismatch.InvalidNode=The user is not authorized to alter the given entity. It is not owned by this jUDDI node. Try your request again on the authoritative node.
 

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java
index 1d8b3c2..71095ee 100644
--- a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java
+++ b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java
@@ -358,18 +358,27 @@ public class API_160_ReplicationTest {
                 op.setOperatorStatus(OperatorStatusType.NORMAL);
                 
                 r.getOperator().add(op);
+                 op = new Operator();
+                op.setOperatorNodeID("test_node2");
+                op.setSoapReplicationURL("http://localhost");
+                op.setOperatorStatus(OperatorStatusType.NORMAL);
+                
+                r.getOperator().add(op);
+                
+                
                 r.setCommunicationGraph(new CommunicationGraph());
                 r.setRegistryContact(new ReplicationConfiguration.RegistryContact());
                 r.getRegistryContact().setContact(new Contact());
                 r.getRegistryContact().getContact().getPersonName().add(new PersonName("test", null));
                 //  r.getCommunicationGraph().getEdge().add(new CommunicationGraph.Edge());
                 r.getCommunicationGraph().getNode().add("test_node");
+                r.getCommunicationGraph().getNode().add("test_node2");
                 r.getCommunicationGraph().getControlledMessage().add("doPing");
                 r.getCommunicationGraph().getEdge().add(new CommunicationGraph.Edge());
                 r.getCommunicationGraph().getEdge().get(0).setMessageReceiver("test_node");
-                r.getCommunicationGraph().getEdge().get(0).setMessageSender("test_node");
+                r.getCommunicationGraph().getEdge().get(0).setMessageSender("test_node2");
                 r.getCommunicationGraph().getEdge().get(0).getMessage().add("doPing");
-                r.getCommunicationGraph().getEdge().get(0).getMessageReceiverAlternate().add("test_node");
+                r.getCommunicationGraph().getEdge().get(0).getMessageReceiverAlternate().add("test_node2");
                 
                 DispositionReport setReplicationNodes = juddi.setReplicationNodes(authInfoRoot, r);
 

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-core/src/test/resources/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/resources/META-INF/persistence.xml b/juddi-core/src/test/resources/META-INF/persistence.xml
index 4c05c5b..725e81e 100644
--- a/juddi-core/src/test/resources/META-INF/persistence.xml
+++ b/juddi-core/src/test/resources/META-INF/persistence.xml
@@ -84,14 +84,12 @@
     <class>org.apache.juddi.model.UddiEntityPublisher</class>
     <class>org.apache.juddi.model.ValueSetValues</class>
     <class>org.apache.juddi.model.ChangeRecord</class>
-    <class>org.apache.juddi.model.CommunicationGraph</class>
     <class>org.apache.juddi.model.Operator</class>
     <class>org.apache.juddi.model.ReplicationConfiguration</class>
     <class>org.apache.juddi.model.Edge</class>
     <class>org.apache.juddi.model.ControlMessage</class>
     <class>org.apache.juddi.model.ReplicationConfigurationNode</class>
     <class>org.apache.juddi.model.EdgeReceiverAlternate</class>
-    
     <properties>
       <property name="hibernate.archive.autodetection" value="class"/>
       <property name="hibernate.hbm2ddl.auto" value="update"/>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoint.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoint.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoint.java
index 459071f..5170e35 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoint.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoint.java
@@ -15,6 +15,7 @@
  */
 package org.apache.juddi.samples;
 
+import java.io.File;
 import java.util.List;
 import org.apache.juddi.api_v3.Node;
 import org.apache.juddi.v3.client.config.UDDIClient;
@@ -32,6 +33,72 @@ public class EntryPoint {
 
         public static void main(String[] args) throws Exception {
 
+                if (System.getProperty("javax.net.ssl.trustStore") == null) {
+                        File f = new File("../../juddi-tomcat/truststore.jks");
+                        if (f.exists()) {
+                                System.setProperty("javax.net.ssl.trustStore", f.getAbsolutePath());
+
+                        } else {
+                                f = new File("../juddi-tomcat/truststore.jks");
+                                if (f.exists()) {
+                                        System.setProperty("javax.net.ssl.trustStore", f.getAbsolutePath());
+
+                                } else {
+                                        f = new File("./juddi-tomcat/truststore.jks");
+                                        if (f.exists()) {
+                                                System.setProperty("javax.net.ssl.trustStore", f.getAbsolutePath());
+
+                                        }
+                                }
+                        }
+
+                        System.setProperty("javax.net.ssl.trustStorePassword", "password");
+                        //System.setProperty("javax.net.ssl.keyStore", "keystore.jks");
+
+                        //System.setProperty("javax.net.ssl.keyStorePassword", "changeit");
+                }
+                //set up trust store
+
+                String trustStore = System.getProperty("javax.net.ssl.trustStore");
+                if (trustStore == null) {
+                        System.out.println("javax.net.ssl.trustStore is not defined");
+                } else {
+                        System.out.println("javax.net.ssl.trustStore = " + trustStore);
+                }
+                
+                
+                if (System.getProperty("javax.net.ssl.keyStore") == null) {
+                        File f = new File("../../juddi-tomcat/keystore.jks");
+                        if (f.exists()) {
+                                System.setProperty("javax.net.ssl.keyStore", f.getAbsolutePath());
+
+                        } else {
+                                f = new File("../juddi-tomcat/keyStore.jks");
+                                if (f.exists()) {
+                                        System.setProperty("javax.net.ssl.keyStore", f.getAbsolutePath());
+
+                                } else {
+                                        f = new File("./juddi-tomcat/keystore.jks");
+                                        if (f.exists()) {
+                                                System.setProperty("javax.net.ssl.keyStore", f.getAbsolutePath());
+
+                                        }
+                                }
+                        }
+
+                        System.setProperty("javax.net.ssl.keyStorePassword", "password");
+                        //System.setProperty("javax.net.ssl.keyStore", "keystore.jks");
+
+                        //System.setProperty("javax.net.ssl.keyStorePassword", "changeit");
+                }
+                //set up trust store
+
+                String keyStore = System.getProperty("javax.net.ssl.trustStore");
+                if (keyStore == null) {
+                        System.out.println("javax.net.ssl.keyStore is not defined");
+                } else {
+                        System.out.println("javax.net.ssl.keyStore = " + trustStore);
+                }
                 //first menu
                 //connect to a node and do work on it
                 //multinode 
@@ -74,7 +141,8 @@ public class EntryPoint {
                         System.out.println(" 1) Compare Two Binding/tModelInstanceInfo - QOS Code Example");
                         System.out.println("2) Digitally sign a UDDI entity from a file.");
                         System.out.println(" q) Quit/exit");
-
+                        System.out.print("#");
+                        input=System.console().readLine();
                         processOffline(input);
                 } while (!"q".equalsIgnoreCase(input));
 

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPointSingleNode.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPointSingleNode.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPointSingleNode.java
index 1149302..42d190e 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPointSingleNode.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPointSingleNode.java
@@ -17,11 +17,19 @@ package org.apache.juddi.samples;
 
 import java.util.List;
 import org.apache.juddi.api_v3.Node;
+import org.apache.juddi.v3.client.UDDIConstants;
 import org.apache.juddi.v3.client.config.UDDIClient;
 import org.apache.juddi.v3.client.config.UDDINode;
 import org.apache.juddi.v3.client.transport.Transport;
+import org.uddi.api_v3.BusinessList;
 import org.uddi.api_v3.DiscardAuthToken;
+import org.uddi.api_v3.FindBusiness;
+import org.uddi.api_v3.FindQualifiers;
+import org.uddi.api_v3.FindService;
 import org.uddi.api_v3.GetAuthToken;
+import org.uddi.api_v3.Name;
+import org.uddi.api_v3.ServiceList;
+import org.uddi.v3_service.UDDIInquiryPortType;
 import org.uddi.v3_service.UDDISecurityPortType;
 
 /**
@@ -33,7 +41,7 @@ public class EntryPointSingleNode {
         static void goSingleNode() throws Exception {
                 String currentNode = "default";
                 UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
-                
+
                 List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
                 System.out.println();
 
@@ -41,7 +49,7 @@ public class EntryPointSingleNode {
                 for (int i = 0; i < uddiNodeList.size(); i++) {
                         System.out.println((i + 1) + ") Node name: " + uddiNodeList.get(i).getName());
                 }
-                System.out.println("Destination Node: ");
+                System.out.print("Destination Node: ");
                 int index = Integer.parseInt(System.console().readLine()) - 1;
 
                 currentNode = uddiNodeList.get(index).getName();
@@ -52,13 +60,12 @@ public class EntryPointSingleNode {
                         System.out.println(" 1) Login");
                         System.out.println(" 2) Print auth token");
                         System.out.println(" 3) Logout (discard auth token)");
-                                
-                        
+
                         System.out.println(" 4) Find Binding by QOS Parameters (Binding/tModelInstanceInfo)");
                         System.out.println(" 5) Find Business by QOS Parameters (Binding/tModelInstanceInfo)");
                         System.out.println(" 6) Find Service by QOS Parameters (Binding/tModelInstanceInfo)");
                         System.out.println(" 7) UDDI Create Bulk (makes N business/services");
-                        
+
                         System.out.println(" 8) UDDI Custody Transfer (within a single node)");
                         System.out.println(" 9) UDDI Digital Signatures - Sign a Business");
                         System.out.println("10) UDDI Digital Signatures - Sign a Service");
@@ -73,8 +80,7 @@ public class EntryPointSingleNode {
                         System.out.println("19) Subscriptions - Synchronous");
                         System.out.println("20) WSDL2UDDI - Register a service from a WSDL document");
                         System.out.println("21) WADL2UDDI - Register a service from a WADL document");
-                        
-                        
+
                         System.out.println("22) Print Subscriptions");
                         System.out.println("23) Delete a subscription");
                         System.out.println("24) Delete all subscriptions");
@@ -83,56 +89,63 @@ public class EntryPointSingleNode {
                         System.out.println("27) Replication - get high watermarks");
                         System.out.println("28) Replication - get change records");
                         System.out.println("29) Replication - get failed change records (jUDDI only)");
-                        
+
                         //local config management
                         System.out.println("31) Quick add the jUDDI cloud node to *this's configuration file");
                         System.out.println("32) Add a node to *this's configuration file");
                         System.out.println("35) View all registered nodes for this client");
-                        
+
                         //remote config management - juddi only
                         System.out.println("33) Register a *this node to a jUDDI server");
                         System.out.println("34) View all registered remote nodes on a jUDDI server");
                         System.out.println("35) UnRegister a node on a jUDDI server");
-                        
+
                         //juddi only
                         System.out.println("37) View the replication config from the current jUDDI server");
                         System.out.println("38) Set the replication config on a remote jUDDI server");
                         System.out.println("39) Prints the current replication status of a given node");
-                      // System.out.println(" 3) jUDDI Admin service - Register a Node (quick add of the jUDDI cloud server)");
+                        System.out.println("40) Periodic publisher, 1biz+1svc every 5 seconds");
+                        // System.out.println(" 3) jUDDI Admin service - Register a Node (quick add of the jUDDI cloud server)");
 
                         System.out.println("q) quit");
-                        System.out.print(currentNode + "# ");
+                        System.out.print(username + "@" + currentNode + "# ");
                         input = System.console().readLine();
                         try {
-                                processInput(input,currentNode, transport,clerkManager);
+                                processInput(input, currentNode, transport, clerkManager);
                         } catch (Exception ex) {
                                 ex.printStackTrace();
                         }
                 } while (!input.equalsIgnoreCase("q"));
         }
         private static String authtoken = null;
+        static String password;
+        static String username;
 
         private static String login(String currentNode, Transport transport) throws Exception {
                 System.out.println("Options:");
                 System.out.println("1) Enter a username/password for auth token");
                 System.out.println("2) Enter a username/password for HTTP based logins");
                 System.out.println("3) Enter a username/password for use stored credentials");
+                System.out.print("Login Method: ");
                 String input = System.console().readLine();
                 if ("1".equalsIgnoreCase(input)) {
                         UDDISecurityPortType security = null;
                         security = transport.getUDDISecurityService();
                         System.out.print(currentNode + "# username: ");
-                        String uname = System.console().readLine();
+                        username = System.console().readLine();
                         char passwordArray[] = System.console().readPassword(currentNode + "# password: ");
                         GetAuthToken getAuthTokenRoot = new GetAuthToken();
-                        getAuthTokenRoot.setUserID(uname);
-                        getAuthTokenRoot.setCred(new String(passwordArray));
+                        getAuthTokenRoot.setUserID(username);
+                        password = new String(passwordArray);
+                        getAuthTokenRoot.setCred((password));
                         String lauthtoken = security.getAuthToken(getAuthTokenRoot).getAuthInfo();
                         System.out.println("Success!");
                         return lauthtoken;
                 } else if ("2".equalsIgnoreCase(input)) {
-                        
+                        System.out.println("not implemented yet!");
+
                 } else if ("3".equalsIgnoreCase(input)) {
+                        System.out.println("not implemented yet!");
                 } else {
                         System.out.println("Aborted!");
                 }
@@ -140,28 +153,28 @@ public class EntryPointSingleNode {
 
         }
 
-        private static void processInput(String input,String currentNode, Transport transport, UDDIClient client) throws Exception {
+        private static void processInput(final String input, final String currentNode, final Transport transport, UDDIClient client) throws Exception {
                 if (input == null) {
                         return;
                 }
                 if (input.equals("1")) {
                         login(currentNode, transport);
                 }
-               
 
                 if (input.equals("2")) {
                         System.out.println("Token info: " + authtoken);
                 }
-                 if (input.equals("3")) {
-                        if (authtoken!=null){
-                        UDDISecurityPortType security = null;
-                        security = transport.getUDDISecurityService();
-                        DiscardAuthToken getAuthTokenRoot = new DiscardAuthToken();
-                        getAuthTokenRoot.setAuthInfo(authtoken);
-                        security.discardAuthToken(getAuthTokenRoot);
-                        System.out.println("Success!");}
+                if (input.equals("3")) {
+                        if (authtoken != null) {
+                                UDDISecurityPortType security = null;
+                                security = transport.getUDDISecurityService();
+                                DiscardAuthToken getAuthTokenRoot = new DiscardAuthToken();
+                                getAuthTokenRoot.setAuthInfo(authtoken);
+                                security.discardAuthToken(getAuthTokenRoot);
+                                System.out.println("Success!");
+                        }
                 }
-               
+
                 if (input.equals("4")) {
                         SearchByQos.doFindBinding(authtoken);
                 }
@@ -172,12 +185,12 @@ public class EntryPointSingleNode {
                         SearchByQos.doFindService(authtoken);
                 }
                 if (input.equals("7")) {
-                       
+
                         System.out.print("businesses: ");
                         int biz = Integer.parseInt(System.console().readLine());
                         System.out.print("servicesPerBusiness: ");
                         int svc = Integer.parseInt(System.console().readLine());
-                        new UddiCreatebulk(transport, false, currentNode).publishBusiness(authtoken, biz, svc);
+                        new UddiCreatebulk(transport, false, currentNode).publishBusiness(authtoken, biz, svc, username);
                 }
                 if (input.equals("8")) {
                         UDDISecurityPortType security = null;
@@ -242,7 +255,7 @@ public class EntryPointSingleNode {
                 }
                 if (input.equals("17")) {
                         UDDISecurityPortType security = null;
-                       
+
                         security = transport.getUDDISecurityService();
 
                         System.out.print("1st Business username: ");
@@ -298,7 +311,7 @@ public class EntryPointSingleNode {
                         String key = (System.console().readLine());
                         new WadlImport().Fire(url, key, authtoken, transport);
                 }
-                
+
                 if (input.equals("22")) {
                         new UddiSubscriptionManagement(transport).PrintSubscriptions(authtoken);
                 }
@@ -327,7 +340,7 @@ public class EntryPointSingleNode {
                 }
                 if (input.equals("28")) {
                         //System.out.println("29) Replication - get change records");
-                       
+
                         System.out.print("Change ID to fetch: ");
                         String id = (System.console().readLine());
 
@@ -337,14 +350,14 @@ public class EntryPointSingleNode {
                         new UddiReplication(client, currentNode).GetChangeRecords(Long.parseLong(id), src);
 
                 }
-                if ("29".equals(input)){
+                if ("29".equals(input)) {
                         new JuddiAdminService(client, transport).dumpFailedReplicationRecords(authtoken);
                 }
-                 if (input.equals("31")) {
-                        
+                if (input.equals("31")) {
+
                         new JuddiAdminService(client, transport).quickRegisterRemoteCloud(authtoken);
                 }
-               if (input.equals("31")) {
+                if (input.equals("31")) {
                         //System.out.println("31) Quick add the jUDDI cloud node to *this's configuration file");
                         new JuddiAdminService(client, transport).quickRegisterLocalCloud();
                 }
@@ -435,20 +448,20 @@ public class EntryPointSingleNode {
                         new JuddiAdminService(client, transport).viewRemoteNodes(authtoken);
                 }
 
-              /*  if (input.equals("35")) {
-                        UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
-                        List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
-                        for (int i = 0; i < uddiNodeList.size(); i++) {
-                                System.out.println("________________________________________________________________________________");
-                                System.out.println("Client name: " + uddiNodeList.get(i).getClientName());
-                                System.out.println("Node name: " + uddiNodeList.get(i).getName());
-                                System.out.println("Node description: " + uddiNodeList.get(i).getDescription());
-                                System.out.println("Transport: " + uddiNodeList.get(i).getProxyTransport());
-                                System.out.println(i + ") jUDDI URL: " + uddiNodeList.get(i).getJuddiApiUrl());
+                /*  if (input.equals("35")) {
+                 UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
+                 List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
+                 for (int i = 0; i < uddiNodeList.size(); i++) {
+                 System.out.println("________________________________________________________________________________");
+                 System.out.println("Client name: " + uddiNodeList.get(i).getClientName());
+                 System.out.println("Node name: " + uddiNodeList.get(i).getName());
+                 System.out.println("Node description: " + uddiNodeList.get(i).getDescription());
+                 System.out.println("Transport: " + uddiNodeList.get(i).getProxyTransport());
+                 System.out.println(i + ") jUDDI URL: " + uddiNodeList.get(i).getJuddiApiUrl());
 
-                        }
+                 }
 
-                }*/
+                 }*/
                 if (input.equals("35")) {
 
                         new JuddiAdminService(client, transport).viewRemoveRemoteNode(authtoken);
@@ -460,12 +473,106 @@ public class EntryPointSingleNode {
                 if (input.equals("38")) {
                         new JuddiAdminService(client, transport).setReplicationConfig(authtoken);
                 }
-               
+
                 if (input.equals("39")) {
                         new JuddiAdminService(client, transport).printStatus(transport, authtoken);
                 }
-                
+                if (input.equals("40")) {
+                        //TODO current counts
+                        UDDIInquiryPortType uddiInquiryService = transport.getUDDIInquiryService();
+                        FindBusiness fb = new FindBusiness();
+                        fb.setAuthInfo(authtoken);
+                        fb.getName().add(new Name(UDDIConstants.WILDCARD, null));
+                        fb.setFindQualifiers(new FindQualifiers());
+                        fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                        fb.setMaxRows(1);
+                        fb.setListHead(0);
+                        BusinessList findBusiness = uddiInquiryService.findBusiness(fb);
+                        System.out.println("current business counts "
+                                + findBusiness.getListDescription().getActualCount() + " "
+                                + findBusiness.getListDescription().getIncludeCount() + " "
+                                + findBusiness.getListDescription().getListHead());
+                        FindService fs = new FindService();
+                        fs.setAuthInfo(authtoken);
+                        fs.getName().add(new Name(UDDIConstants.WILDCARD, null));
+                        fs.setFindQualifiers(new FindQualifiers());
+                        fs.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                        fs.setMaxRows(1);
+                        fs.setListHead(0);
+                        ServiceList findService = uddiInquiryService.findService(fs);
+                        System.out.println("current service counts "
+                                + findService.getListDescription().getActualCount() + " "
+                                + findService.getListDescription().getIncludeCount() + " "
+                                + findService.getListDescription().getListHead());
+
+                        running = true;
+                        createdServices = 0;
+                        createdBusinesses = 0;
+
+                        new Thread(new Runnable() {
+                                @Override
+                                public void run() {
+                                        UddiCreatebulk uddiCreatebulk = new UddiCreatebulk(transport, false, currentNode);
+                                        while (running) {
+                                                try {
+                                                        uddiCreatebulk.publishBusiness(authtoken, 1, 1, username);
+                                                        createdBusinesses++;
+                                                        createdServices++;
+                                                        Thread.sleep(5000);
+                                                } catch (Exception ex) {
+                                                        System.out.println("eception caught, assuming it's an expired token, attempting to reauthenticate " + ex.getMessage());
+                                                        //potentially an expired token, reauthenticate
+                                                        try {
+                                                                UDDISecurityPortType security = null;
+                                                                security = transport.getUDDISecurityService();
+
+                                                                GetAuthToken getAuthTokenRoot = new GetAuthToken();
+                                                                getAuthTokenRoot.setUserID(username);
+                                                                getAuthTokenRoot.setCred((password));
+                                                                authtoken = security.getAuthToken(getAuthTokenRoot).getAuthInfo();
+                                                        } catch (Exception x) {
+                                                                System.out.println("unable to reauthenticate, aborting!");
+                                                                ex.printStackTrace();
+                                                                running = false;
+                                                        }
+
+                                                }
+                                        }
+                                }
+                        }).start();
+                        System.out.println("Started, press <Enter> to stop!");
+                        System.console().readLine();
+                        running = false;
+
+                        System.out.println("before business counts "
+                                + findBusiness.getListDescription().getActualCount());
+
+                        fb.setAuthInfo(authtoken);
+                        BusinessList afterfindBusiness = uddiInquiryService.findBusiness(fb);
+                        System.out.println("after business counts "
+                                + afterfindBusiness.getListDescription().getActualCount());
+                        System.out.println("actual created " + createdBusinesses);
+                        System.out.println("Delta = " + (afterfindBusiness.getListDescription().getActualCount()  - findBusiness.getListDescription().getActualCount()));
+                        
+                        
+                        System.out.println("before service counts "
+                                + findService.getListDescription().getActualCount());
+
+                        fs.setAuthInfo(authtoken);
+                        ServiceList afterfindService = uddiInquiryService.findService(fs);
+                        System.out.println("after service counts "
+                                + afterfindService.getListDescription().getActualCount());
+                        System.out.println("actual created " + createdServices);
+                        System.out.println("delta = " + (afterfindService.getListDescription().getActualCount() - findService.getListDescription().getActualCount()));
+                        if ((afterfindService.getListDescription().getActualCount() - findService.getListDescription().getActualCount()) == createdServices)
+                                System.out.println("success");
+                        else System.out.println("failure!");
+
+                }
 
         }
+        static boolean running = true;
+        static int createdServices = 0;
+        static int createdBusinesses = 0;
 
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org


[02/12] juddi git commit: JUDDI-919 replication now works with ssl + client-cert authentication. In order to support this, we need to have two different war file (unfortunately). Included with this change set is number of typos in our deployment files (w

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/UDDI_tModels.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/UDDI_tModels.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/UDDI_tModels.xml
new file mode 100644
index 0000000..7ec0a9a
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/UDDI_tModels.xml
@@ -0,0 +1,800 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+<save_tModel xmlns="urn:uddi-org:api_v3">
+  <tModel tModelKey="uddi:uddi.org:keygenerator" xmlns="urn:uddi-org:api_v3">
+    <name>uddi-org:keyGenerator</name>
+    <description>UDDI domain key generator</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+        keyValue="keyGenerator" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:categorization:keygenerator" xmlns="urn:uddi-org:api_v3">
+    <name>uddi-org:categorization:keyGenerator
+		</name>
+    <description>Key Generator for UDDI Categorization tModels
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#categorizationKeyGen
+          </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:sortorder:keygenerator" xmlns="urn:uddi-org:api_v3">
+    <name>uddi-org:sortorder:keyGenerator
+		</name>
+    <description>Key Generator for UDDI Sort Order tModels
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#sortorderKeyGen
+          </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:transport:keygenerator" xmlns="urn:uddi-org:api_v3">
+    <name>uddi-org:transport:keyGenerator
+		</name>
+    <description>Key Generator for UDDI Transport tModels </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#transportKeyGen
+          </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:protocol:keygenerator" xmlns="urn:uddi-org:api_v3">
+    <name>uddi-org: protocol:keyGenerator</name>
+    <description> Key Generator for UDDI Protocol tModels </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#protocolKeyGen
+          </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:keyGenerator" keyValue="keyGenerator" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:v3_inquiry">
+    <name>uddi-org:inquiry_v3</name>
+    <description>UDDI Inquiry API V3.0</description>
+    <overviewDoc>
+      <overviewURL useType="wsdlInterface">
+        http://uddi.org/wsdl/uddi_api_v3_binding.wsdl#UDDI_Inquiry_SoapBinding
+			</overviewURL>
+    </overviewDoc>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#InqV3
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:soap" keyValue="soapSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:xml" keyValue="xmlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:specification" keyValue="specification" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:v3_publication">
+    <name>uddi-org:publication_v3</name>
+    <description>UDDI Publication API V3.0</description>
+    <overviewDoc>
+      <overviewURL useType="wsdlInterface">
+        http://uddi.org/wsdl/uddi_api_v3_binding.wsdl#UDDI_Publication_SoapBinding
+			</overviewURL>
+    </overviewDoc>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#PubV3
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:soap" keyValue="soapSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:xml" keyValue="xmlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:specification" keyValue="specification" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:v3_security">
+    <name>uddi-org:security_v3</name>
+    <description>UDDI Security API V3.0</description>
+    <overviewDoc>
+      <overviewURL useType="wsdlInterface">
+        http://uddi.org/wsdl/uddi_api_v3_binding.wsdl#UDDI_Security_SoapBinding
+			</overviewURL>
+    </overviewDoc>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#SecV3
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:soap" keyValue="soapSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:xml" keyValue="xmlSpec" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:specification" keyValue="specification" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:categorization:types">
+    <name>uddi-org:types</name>
+    <description>UDDI Type Category System</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#UDDITypes
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:cacheable" keyValue="cacheable" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:categorization:general_keywords">
+    <name>uddi-org:general_keywords</name>
+    <description>Category system consisting of namespace
+      identifiers and the keywords associated with
+      the namespaces.
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#GenKW
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:categorization:nodes">
+    <name>uddi-org:nodes</name>
+    <description>Category system for identifying the nodes
+      of a registry.
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#Nodes
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:relationships">
+    <name>uddi-org:relationships</name>
+    <description>Basic types of business relationships
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#Relationships
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:unchecked" keyValue="unchecked" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:categorization:owningbusiness">
+    <name>uddi-org:owningBusiness_v3</name>
+    <description>Category system used to point to the
+      businessEntity
+      associated with the publisher of the tModel.
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#owningBusiness
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+
+      <keyedReference keyName="entityKeyValues" keyValue="businessKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:identifier:isreplacedby">
+    <name>uddi-org:isReplacedBy</name>
+    <description>Identifier system used to point to the UDDI
+      entity,
+      using UDDI keys, that is the logical replacement
+      for the one in which isReplacedBy is used.
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#IsReplacedBy
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:identifier" keyValue="identifier" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+
+      <keyedReference keyName="entityKeyValues" keyValue="businessKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+
+      <keyedReference keyName="entityKeyValues" keyValue="tModelKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:categorization:validatedby">
+    <name>uddi-org:validatedBy</name>
+    <description>Category system used to point a value set or
+      category
+      group system tModel to associated value set Web service
+      implementations.
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#validatedBy
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="entityKeyValues" keyValue="bindingKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:categorization:derivedfrom">
+    <name>uddi-org:derivedFrom</name>
+    <description>Category system for referring tModels to other
+      tModels for the purpose of reuse.
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#DerivedFrom
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:uncacheable" keyValue="uncacheable" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="entityKeyValues" keyValue="tModelKey" tModelKey="uddi:uddi.org:categorization:entitykeyvalues" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:categorization:entitykeyvalues">
+    <name>uddi-org:entityKeyValues</name>
+    <description>Category system used to declare that a value set
+      uses entity keys as valid values.
+     </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#entityKeyValues
+          </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:checked" keyValue="checked" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:protocol:serverauthenticatedssl3">
+    <name>uddi-org:serverAuthenticatedSSL3
+		</name>
+    <description>Secure Sockets Layer Version 3.0 with Server
+      Authentication</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#serverSSL3
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:protocol" keyValue="protocol" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:protocol:mutualauthenticatedssl3">
+    <name>uddi-org:mutualAuthenticatedSSL3
+		</name>
+    <description>Secure Sockets Layer Version 3.0 with Mutual
+      Authentication</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#mutualSSL3
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:protocol" keyValue="protocol" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:transport:http">
+    <name>uddi-org:http</name>
+    <description> A Web service that uses HTTP transport</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#overHTTP
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:transport:smtp">
+    <name>uddi-org:smtp</name>
+    <description>E-mail based Web service</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#overSMTP
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:transport:ftp">
+    <name>uddi-org:ftp</name>
+    <description>File Transfer Protocol (FTP) based Web service
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#overFTP
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:transport:fax">
+    <name>uddi-org:fax</name>
+    <description>Fax-based Web service</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#overFax
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:transport:telephone">
+    <name>uddi-org:telephone</name>
+    <description>Telephone based service</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#overPhone
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:transport" keyValue="transport" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:approximatematch">
+    <name>uddi-org:approximateMatch:SQL99
+		</name>
+    <description>UDDI approximate matching find qualifier
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#wildcard
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:exactmatch">
+    <name>uddi-org:exactMatch</name>
+    <description>UDDI exact name matching findQualifier
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#exactmatch
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:caseinsensitivematch">
+    <name>uddi-org:caseInsensitiveMatch
+		</name>
+    <description>UDDI case insensitive matching find qualifier
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#caseinsens
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:casesensitivematch">
+    <name>uddi-org:caseSensitiveMatch</name>
+    <description>UDDI Case Sensitive Matching find qualifier
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#casesens
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:diacriticsinsensitivematch">
+    <name>uddi-org:diacriticsInsensitiveMatch
+		</name>
+    <description>UDDI Diacritics Insensitive Matching find qualifier
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#diacritInsens
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:diacriticssensitivematch">
+    <name>uddi-org:diacriticsSensitiveMatch
+		</name>
+    <description>UDDI Diacritics Sensitive Matching find qualifier
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#diacritSens
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:sortorder:binarysort">
+    <name>uddi-org:binarySort</name>
+    <description>UDDI binary sort sortOrder qualifier
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#sortOrd
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:sortOrder" keyValue="sortOrder" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:sortorder:uts-10">
+    <name>uddi-org:UTS-10</name>
+    <description>UDDI Unicode Technical Standard #10 sort
+      collation sequence find qualifier
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#UCASort
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:sortOrder" keyValue="sortOrder" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:caseinsensitivesort">
+    <name>uddi-org:caseInsensitiveSort</name>
+    <description>UDDI sort qualifier used to sort results without
+      regard to case</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#caseInsensSort
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:casesensitivesort">
+    <name>uddi-org:caseSensitiveSort</name>
+    <description>UDDI sort qualifier used to sort results using
+      case sensitivity</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#caseSensSort
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+
+      <keyedReference keyName="uddi-org:types:sortOrder" keyValue="sortOrder" tModelKey="uddi:uddi.org:categorization:types" />
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:sortbynameasc">
+    <name>uddi-org:sortByNameAsc</name>
+    <description>UDDI sort qualifier used to sort results by name
+      in ascending order</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#nameAsc
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:sortbynamedesc">
+    <name>uddi-org:sortByNameDesc</name>
+    <description>UDDI sort qualifier used to sort results by
+      name in descending order</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#nameDesc
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:sortbydateasc">
+    <name>uddi-org:sortByDateAsc</name>
+    <description>UDDI sort qualifier used to sort results by date in
+      ascending order</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#dateAsc
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:sortbydatedesc">
+    <name>uddi-org:sortByDateDesc</name>
+    <description>UDDI sort qualifier used to sort results
+      by date in descending order</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#dateDesc
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:andallkeys">
+    <name>uddi-org:andAllKeys</name>
+    <description>UDDI find qualifier used to request that a
+      logical AND be performed on bag contents
+      prior to a search</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#andAll
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:orallkeys">
+    <name>uddi-org:orAllKeys</name>
+    <description>UDDI find qualifier used to request that a
+      logical OR be performed on bag contents
+      prior to a search</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#orAll
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:orlikekeys">
+    <name>uddi-org:orLikeKeys</name>
+    <description>UDDI find qualifier used to find entities
+      that reference one of the values from each
+      referenced value set</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#orLike
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:combinecategorybags">
+    <name>uddi-org:combineCategoryBags</name>
+    <description>UDDI find qualifier used to treat all of the
+      categoryBags within a businessEntity as if
+      they were one during inquiry</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#combineCatBags
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:servicesubset">
+    <name>uddi-org:serviceSubset</name>
+    <description>UDDI find qualifier used to use categoryBags
+      of businessService elements to satisfy the
+      find_business inquiry.</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#servSubset
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:bindingsubset">
+    <name>uddi-org:bindingSubset</name>
+    <description>UDDI find qualifier for specifying use of
+      categoryBags of bindingTempate elements to satisfy
+      the find_business or find_service inquiries.
+  </description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#bindSubset
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:suppressProjectedServices">
+    <name>uddi-org:suppressProjectedServices
+		</name>
+    <description>UDDI find qualifier used to exclude service
+      projections from an inquiry function at all
+      levels.</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#suppressProjSvcs
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:findqualifier:signaturepresent">
+    <name>uddi-org:signaturePresent</name>
+    <description>UDDI findQualifier used to return only entities
+      that have or are contained in entities that have
+      XML Digital Signatures.</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#sign
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:findQualifier" keyValue="findQualifier" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:specification:hostingredirector">
+    <name>uddi-org:hostingRedirector</name>
+    <description>UDDI Hosting Redirector service specification
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#hostDir
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:specification" keyValue="specification" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:specification:v3_policy">
+    <name>uddi-org:v3_policy</name>
+    <description>UDDI Policy Description service specification
+		</description>
+    <overviewDoc>
+      <overviewURL useType="text">
+        http://uddi.org/pubs/uddi_v3.htm#policyDesc
+    </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:specification" keyValue="specification" tModelKey="uddi:uddi.org:categorization:types" />
+    </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:v3_ownership_transfer">
+    <name>uddi-org:ownership_transfer_v3</name>
+    <description>UDDI Custody and Ownership Transfer API V3.0</description>
+    <overviewDoc>
+      <overviewURL useType="wsdlInterface">
+         http://uddi.org/wsdl/uddi_custody_v3_binding.wsdl
+      </overviewURL>
+    </overviewDoc>
+    <overviewDoc>
+      <overviewURL useType="text">
+         http://uddi.org/pubs/uddi_v3.htm#OwnershipTransfer
+      </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:wsdl"
+        keyValue="wsdlSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:soap"
+        keyValue="soapSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:xml"
+        keyValue="xmlSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:specification"
+        keyValue="specification"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+     </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:v3_subscription">
+    <name>uddi-org:subscription_v3</name>
+    <description>UDDI Subscription API V3.0</description>
+    <overviewDoc>
+      <overviewURL useType="wsdlInterface">
+         http://uddi.org/wsdl/uddi_sub_v3_binding.wsdl
+      </overviewURL>
+    </overviewDoc>
+    <overviewDoc>
+      <overviewURL useType="text">
+         http://uddi.org/pubs/uddi_v3.htm#Sub
+      </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:wsdl"
+        keyValue="wsdlSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:soap"
+        keyValue="soapSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:xml"
+        keyValue="xmlSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:specification"
+        keyValue="specification"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+     </categoryBag>
+  </tModel>
+  <tModel tModelKey="uddi:uddi.org:v3_subscriptionlistener">
+    <name>uddi-org:subscriptionListener_v3</name>
+    <description>UDDI Subscription Listener API V3.0</description>
+    <overviewDoc>
+      <overviewURL useType="wsdlInterface">
+          http://uddi.org/wsdl/uddi_subr_v3_binding.wsdl
+      </overviewURL>
+    </overviewDoc>
+    <overviewDoc>
+      <overviewURL useType="text">
+         http://uddi.org/pubs/uddi_v3.htm#Subscribe
+      </overviewURL>
+    </overviewDoc>
+    <categoryBag>
+      <keyedReference keyName="uddi-org:types:wsdl"
+        keyValue="wsdlSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:soap"
+        keyValue="soapSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:xml"
+        keyValue="xmlSpec"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+      <keyedReference keyName="uddi-org:types:specification"
+        keyValue="specification"
+        tModelKey="uddi:uddi.org:categorization:types"/>
+     </categoryBag>
+  </tModel>
+</save_tModel>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/marketing_Publisher.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/marketing_Publisher.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/marketing_Publisher.xml
new file mode 100644
index 0000000..a9c5ecc
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/marketing_Publisher.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+<publisher xmlns="urn:juddi-apache-org:api_v3" authorizedName="marketing">
+  <publisherName>Marketing Publisher</publisherName>
+  <isAdmin>false</isAdmin>
+</publisher>
+

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/marketing_tModels.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/marketing_tModels.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/marketing_tModels.xml
new file mode 100644
index 0000000..2c91ebb
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/marketing_tModels.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+<save_tModel xmlns="urn:uddi-org:api_v3">
+	<tModel tModelKey="uddi:marketing.apache.org:subscription:keygenerator" xmlns="urn:uddi-org:api_v3">
+	  <name>uddi-org:keyGenerator</name>
+	  <description>Marketing Root domain key generator</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
+	  </overviewDoc>
+	  <categoryBag>
+	    <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+	      keyValue="keyGenerator" />
+	  </categoryBag>
+	</tModel>
+</save_tModel>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/root_BusinessEntity.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/root_BusinessEntity.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/root_BusinessEntity.xml
new file mode 100644
index 0000000..53236f8
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/root_BusinessEntity.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+ <!-- 
+  This file contains the root business entity structure that represents your registry.  The key chosen (or generated) for this entity will serve
+  as the node id for all entities published within the registry.  The services contained within this business entity reflect the UDDI APIs that
+  you wish to support (adding or subtracting the services here will not enable/disable them, simply add/omit them from being discovered via UDDI).
+  
+  The top-level business entity and sub-entities all use keys as unique identifiers.  They are left blank by default which means the system will
+  generate a key (generated as root partition with GUID appended).  You can choose to create your own, human-readable keys but they must match
+  the root key generator created in the root_tModelKeyGen.xml file.  Matching means they must equal the root key generator with the keyword
+  "keygenerator" replaced by your own string.
+  
+  Example:
+  
+  root_tModelKeyGen.xml key is uddi:www.mycompany.com:registry:keygenerator
+  
+  Legal user-defined keys are:
+  
+  uddi:www.mycompany.com:registry:ubr-node (for the businessKey)
+  uddi:www.mycompany.com:registry:inquiry-service (for the inquiry service service key)
+  uddi:www.mycompany.com:registry:inquiry-service-wsdlDeployment (for the inquiry service binding template that represents the WSDL)
+  
+  
+  See below for other fields that you may want to edit...
+  -->
+<businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:juddi.apache.org:business-sales-asf">
+  <!-- Change the name field to represent the name of your registry -->
+  <name xml:lang="en">An Root Sales jUDDI Node</name>
+  <!-- Change the description field to provided a brief description of your registry -->
+  <description xml:lang="en">This is a UDDI v3 registry node as implemented by Apache jUDDI.</description>
+  <discoveryURLs>
+    <!-- This discovery URL should point to the home installation URL of jUDDI -->
+    <discoveryURL useType="home">${juddi.server.baseurl}/juddiv3</discoveryURL>
+  </discoveryURLs>
+  <categoryBag>
+    <keyedReference tModelKey="uddi:uddi.org:categorization:nodes" keyValue="node" />
+  </categoryBag>
+  <businessServices>
+    <!-- As mentioned above, you may want to provide user-defined keys for these (and the services/bindingTemplates below.  Services that you
+    don't intend to support should be removed entirely -->
+    <businessService serviceKey="uddi:juddi.apache.org:services-inquiry" businessKey="uddi:juddi.apache.org:business-sales-asf">
+      <name xml:lang="en">UDDI Inquiry Service</name>
+      <description xml:lang="en">Web Service supporting UDDI Inquiry API</description>
+      <bindingTemplates>
+        <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-inquiry-ws" serviceKey="uddi:juddi.apache.org:services-inquiry">
+          <description>UDDI Inquiry API V3</description>
+          <!-- This should be changed to the WSDL URL of the inquiry API.  An access point inside a bindingTemplate will be found for every service
+          in this file.  They all must point to their API's WSDL URL -->
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/inquiry?wsdl</accessPoint>
+          <tModelInstanceDetails>
+            <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_inquiry">
+              <instanceDetails>
+                <instanceParms>
+                <![CDATA[
+                  <?xml version="1.0" encoding="utf-8" ?>
+                  <UDDIinstanceParmsContainer xmlns="urn:uddi-org:policy_v3_instanceParms">
+                    <defaultSortOrder>
+                      uddi:uddi.org:sortorder:binarysort
+                    </defaultSortOrder>
+                  </UDDIinstanceParmsContainer>
+                ]]>
+                </instanceParms>
+              </instanceDetails>
+            </tModelInstanceInfo>
+          </tModelInstanceDetails>
+          <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment" tModelKey="uddi:uddi.org:categorization:types"/>
+          </categoryBag>
+        </bindingTemplate>
+      </bindingTemplates>
+    </businessService>
+    <businessService serviceKey="uddi:juddi.apache.org:services-publish" businessKey="uddi:juddi.apache.org:business-sales-asf">
+      <name xml:lang="en">UDDI Publish Service</name>
+      <description xml:lang="en">Web Service supporting UDDI Publish API</description>
+      <bindingTemplates>
+        <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-publish-ws" serviceKey="uddi:juddi.apache.org:services-publish">
+          <description>UDDI Publication API V3</description>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/publish?wsdl</accessPoint>
+          <tModelInstanceDetails>
+            <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_publication">
+              <instanceDetails>
+                <instanceParms>
+                <![CDATA[
+                  <?xml version="1.0" encoding="utf-8" ?>
+                  <UDDIinstanceParmsContainer xmlns="urn:uddi-org:policy_v3_instanceParms">
+                    <authInfoUse>required</authInfoUse>
+                  </UDDIinstanceParmsContainer>
+                ]]>
+                </instanceParms>
+              </instanceDetails>
+            </tModelInstanceInfo>
+          </tModelInstanceDetails>
+          <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment" tModelKey="uddi:uddi.org:categorization:types"/>
+          </categoryBag>
+        </bindingTemplate>
+      </bindingTemplates>
+    </businessService>
+    <businessService serviceKey="uddi:juddi.apache.org:services-security" businessKey="uddi:juddi.apache.org:business-sales-asf">
+      <name xml:lang="en">UDDI Security Service</name>
+      <description xml:lang="en">Web Service supporting UDDI Security API</description>
+      <bindingTemplates>
+        <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-security-ws" serviceKey="uddi:juddi.apache.org:services-security">
+          <description>UDDI Security API V3</description>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/security?wsdl</accessPoint>
+          <tModelInstanceDetails>
+            <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_security" />
+          </tModelInstanceDetails>
+          <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment" tModelKey="uddi:uddi.org:categorization:types"/>
+          </categoryBag>
+        </bindingTemplate>
+      </bindingTemplates>
+    </businessService>
+    <businessService serviceKey="uddi:juddi.apache.org:services-custodytransfer" businessKey="uddi:juddi.apache.org:business-sales-asf">
+      <name xml:lang="en">UDDI Custody and Ownership Transfer Service</name>
+      <description xml:lang="en">Web Service supporting UDDI Custody and Ownership Transfer API</description>
+      <bindingTemplates>
+        <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-custodytransfer-ws" serviceKey="uddi:juddi.apache.org:services-custodytransfer">
+          <description>UDDI Custody and Ownership Transfer API V3</description>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/custody-transfer?wsdl</accessPoint>
+          <tModelInstanceDetails>
+            <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_ownership_transfer">
+              <instanceDetails>
+                <instanceParms>
+                <![CDATA[
+                <?xml version="1.0" encoding="utf-8" ?>
+                <UDDIinstanceParmsContainer
+                 xmlns="urn:uddi-org:policy_v3_instanceParms">
+                  <authInfoUse>required</authInfoUse>
+                </UDDIinstanceParmsContainer>
+                ]]>
+                </instanceParms>
+              </instanceDetails>
+            </tModelInstanceInfo>
+          </tModelInstanceDetails>
+          <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment" tModelKey="uddi:uddi.org:categorization:types"/>
+          </categoryBag>
+        </bindingTemplate>
+      </bindingTemplates>
+    </businessService>
+    <businessService serviceKey="uddi:juddi.apache.org:services-subscription" businessKey="uddi:juddi.apache.org:business-sales-asf">
+      <name xml:lang="en">UDDI Subscription Service</name>
+      <description xml:lang="en">Web Service supporting UDDI Subscription API</description>
+      <bindingTemplates>
+        <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-subscription-ws" serviceKey="uddi:juddi.apache.org:services-subscription">
+          <description>UDDI Subscription API V3</description>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/subscription?wsdl</accessPoint>
+          <tModelInstanceDetails>
+            <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_subscription">
+              <instanceDetails>
+                <instanceParms>
+                <![CDATA[
+                <?xml version="1.0" encoding="utf-8" ?>
+                <UDDIinstanceParmsContainer
+                xmlns="urn:uddi-org:policy_v3_instanceParms">
+                <authInfoUse>required</authInfoUse>
+                <filterUsingFindAPI>supported</filterUsingFindAPI>
+                </UDDIinstanceParmsContainer>
+                ]]>
+                </instanceParms>
+              </instanceDetails>
+            </tModelInstanceInfo>
+          </tModelInstanceDetails>
+          <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment" tModelKey="uddi:uddi.org:categorization:types"/>
+          </categoryBag>
+        </bindingTemplate>
+      </bindingTemplates>
+    </businessService>
+     <businessService serviceKey="uddi:juddi.apache.org:services-publisher" businessKey="uddi:juddi.apache.org:business-sales-asf">
+      <name xml:lang="en">jUDDI Publisher Service</name>
+      <description xml:lang="en">Web Service supporting jUDDI specific API</description>
+      <bindingTemplates>
+        <bindingTemplate bindingKey="uddi:juddi.apache.org:servicebindings-publisher-ws" serviceKey="uddi:juddi.apache.org:services-publisher">
+          <description>jUDDI Publisher Service API V3</description>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/publisher?wsdl</accessPoint>
+          <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment" tModelKey="uddi:uddi.org:categorization:types"/>
+          </categoryBag>
+        </bindingTemplate>
+      </bindingTemplates>
+    </businessService>
+  </businessServices>
+</businessEntity>
+
+
+
+

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/root_Publisher.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/root_Publisher.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/root_Publisher.xml
new file mode 100644
index 0000000..a5949f1
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/root_Publisher.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+<publisher xmlns="urn:juddi-apache-org:api_v3" authorizedName="root">
+  <publisherName>root publisher</publisherName>
+  <isAdmin>true</isAdmin>
+</publisher>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/root_tModelKeyGen.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/root_tModelKeyGen.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/root_tModelKeyGen.xml
new file mode 100644
index 0000000..a18e40f
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/root_tModelKeyGen.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+<!-- 
+  In this file, you only need to edit the tModelKey just below.  This will determine your root partition; the base that all system-generated
+  keys will use.  The keywords "uddi" and "keygenerator" must enclose the partition, but you are free to edit the interior.  The general format
+  is a domain name followed by a colon-delimited list of keywords (known as key-specific strings).
+  
+  Examples:
+  
+  uddi:www.mycompany.com:registry:keygenerator
+  uddi:uddi.acme.com:keygenerator
+  uddi:engineering.umich.edu:soa:ubr:keygenerator
+ -->
+<tModel tModelKey="uddi:juddi.apache.org:keygenerator" xmlns="urn:uddi-org:api_v3">
+  <name>juddi-apache-org:keyGenerator</name>
+  <description>Root domain key generator</description>
+  <overviewDoc>
+    <overviewURL useType="text">
+      http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
+  </overviewDoc>
+  <categoryBag>
+    <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+      keyValue="keyGenerator" />
+  </categoryBag>
+</tModel>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/sales_BusinessEntity.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/sales_BusinessEntity.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/sales_BusinessEntity.xml
new file mode 100644
index 0000000..b128f15
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/sales_BusinessEntity.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+ <!-- 
+  This file contains the root business entity structure that represents your registry.  The key chosen (or generated) for this entity will serve
+  as the node id for all entities published within the registry.  The services contained within this business entity reflect the UDDI APIs that
+  you wish to support (adding or subtracting the services here will not enable/disable them, simply add/omit them from being discovered via UDDI).
+  
+  The top-level business entity and sub-entities all use keys as unique identifiers.  They are left blank by default which means the system will
+  generate a key (generated as root partition with GUID appended).  You can choose to create your own, human-readable keys but they must match
+  the root key generator created in the root_tModelKeyGen.xml file.  Matching means they must equal the root key generator with the keyword
+  "keygenerator" replaced by your own string.
+  
+  Example:
+  
+  root_tModelKeyGen.xml key is uddi:www.mycompany.com:registry:keygenerator
+  
+  Legal user-defined keys are:
+  
+  uddi:www.mycompany.com:registry:ubr-node (for the businessKey)
+  uddi:www.mycompany.com:registry:inquiry-service (for the inquiry service service key)
+  uddi:www.mycompany.com:registry:inquiry-service-wsdlDeployment (for the inquiry service binding template that represents the WSDL)
+  
+  
+  See below for other fields that you may want to edit...
+  -->
+<businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:sales.apache.org:sales-asf">
+  <!-- Change the name field to represent the name of your registry -->
+  <name xml:lang="en">Sales Node</name>
+  <!-- Change the description field to provided a brief description of your registry -->
+  <description xml:lang="en">This is a UDDI v3 registry for Sales</description>
+  <discoveryURLs>
+    <!-- This discovery URL should point to the home installation URL of jUDDI -->
+    <discoveryURL useType="home">${juddi.server.baseurl}/juddiv3</discoveryURL>
+  </discoveryURLs>
+  <businessServices>
+    <!-- As mentioned above, you may want to provide user-defined keys for these (and the services/bindingTemplates below.  Services that you
+    don't intend to support should be removed entirely -->
+    <businessService serviceKey="uddi:sales.apache.org:services-subscriptionlistener" businessKey="uddi:sales.apache.org:sales-asf">
+      <name xml:lang="en">Sales Subscription Listener Service</name>
+      <description xml:lang="en">Web Service supporting UDDI Subscription Listener API</description>
+      <bindingTemplates>
+        <bindingTemplate bindingKey="uddi:sales.apache.org:servicebindings-subscriptionlistener-ws" serviceKey="uddi:sales.apache.org:services-subscriptionlistener">
+          <description>UDDI Subscription Listener API V3</description>
+          <accessPoint useType="wsdlDeployment">${juddi.server.baseurl}/juddiv3/services/subscription-listener?wsdl</accessPoint>
+          <tModelInstanceDetails>
+            <tModelInstanceInfo tModelKey="uddi:uddi.org:v3_subscriptionlistener" />
+          </tModelInstanceDetails>
+          <categoryBag>
+            <keyedReference keyName="uddi-org:types:wsdl" keyValue="wsdlDeployment" tModelKey="uddi:uddi.org:categorization:types"/>
+          </categoryBag>
+        </bindingTemplate>
+      </bindingTemplates>
+    </businessService>
+  </businessServices>
+</businessEntity>
+
+
+
+

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/sales_Publisher.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/sales_Publisher.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/sales_Publisher.xml
new file mode 100644
index 0000000..ab7c164
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/sales_Publisher.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+<publisher xmlns="urn:juddi-apache-org:api_v3" authorizedName="sales">
+  <publisherName>Sales Publisher</publisherName>
+  <isAdmin>false</isAdmin>
+</publisher>
+

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/sales_tModels.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/sales_tModels.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/sales_tModels.xml
new file mode 100644
index 0000000..8517720
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4SALES_juddi_custom_install_data/sales_tModels.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+<save_tModel xmlns="urn:uddi-org:api_v3">
+    <tModel tModelKey="uddi:sales.apache.org:keygenerator" xmlns="urn:uddi-org:api_v3">
+	  <name>sales-apache-org:keyGenerator</name>
+	  <description>Sales Root domain key generator</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
+	  </overviewDoc>
+	  <categoryBag>
+	    <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+	      keyValue="keyGenerator" />
+	  </categoryBag>
+	</tModel>
+	 <tModel tModelKey="uddi:sales-subs.apache.org:keygenerator" xmlns="urn:uddi-org:api_v3">
+	  <name>sales-apache-org:subscription:keyGenerator</name>
+	  <description>Sales Root domain key generator</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
+	  </overviewDoc>
+	  <categoryBag>
+	    <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+	      keyValue="keyGenerator" />
+	  </categoryBag>
+	</tModel>
+	<tModel tModelKey="uddi:marketing.apache.org:keygenerator" xmlns="urn:uddi-org:api_v3">
+	  <name>marketing-apache-org:keyGenerator</name>
+	  <description>Marketing Root domain key generator</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
+	  </overviewDoc>
+	  <categoryBag>
+	    <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+	      keyValue="keyGenerator" />
+	  </categoryBag>
+	</tModel>
+</save_tModel>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/juddiv3.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/juddiv3.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/juddiv3.xml
new file mode 100644
index 0000000..28c554f
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/juddiv3.xml
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="UTF-8"  ?>
+
+<!--
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ * 
+ * Licensed 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.
+ *
+ */
+################################################################
+#                 jUDDI-v3.0 configuration.                    #
+################################################################
+# Note that the property settings in this                      #
+# file can be overriden by system parameters                   #
+#                                                              #
+################################################################
+-->
+<config>
+	<juddi>
+		<!-- The ${juddi.server.baseurl} token can be referenced in accessPoints and will be resolved at runtime. -->
+		<server>
+			<baseurl>http://localhost:8080/juddiv3</baseurl>
+			<baseurlsecure>https://localhost:8443/juddiv3</baseurlsecure>
+		</server>
+		<!-- The node Id must be unique when setup in a cluster of UDDI servers implementing the replication API
+			don't worry, jUDDI doesn't implement it right now, but it may come in the future 
+			
+			 Per the spec, The value used MUST match the businessKey of the Node Business Entity
+			 -->
+		<nodeId>uddi:juddi.apache.org:node1</nodeId>
+		<!-- The key of the root business that all of the UDDI services are registered in, as defined in the install_data -->
+		<root>
+			<!-- this is the 'root' username, or owner of the node -->
+			<publisher>root</publisher>
+			<!-- The key of the root business that all of the UDDI services are registered in, as defined in the install_data -->
+			<businessId>uddi:juddi.apache.org:node1</businessId>
+			<partition>uddi:juddi.apache.org</partition>
+		</root>
+		<seed>
+			<always>false</always>
+		</seed>
+
+		<!-- Name of the persistence unit to use (the default, "juddiDatabase" refers to the unit compiled into the juddi library)-->
+		<persistenceunit>
+			<name>juddiDatabase</name>
+		</persistenceunit>
+
+		<!-- Check-the-time-stamp-on-this-file Interval in milli seconds  -->
+		<configuration>
+			<reload>
+				<delay>2000</delay>
+			</reload>
+		</configuration>
+		<!--Default locale-->
+		<locale>en_US</locale>
+
+		<!--The UDDI Operator Contact Email Address-->
+		<operatorEmailAddress>admin@local.localhost</operatorEmailAddress>
+
+		<!-- The maximum name size and maximum number of name elements allows in several of the FindXxxx and SaveXxxx UDDI functions.-->
+		<maxNameLength>255</maxNameLength>
+		<maxNameElementsAllowed>5</maxNameElementsAllowed>
+
+
+		<!-- The maximum number of rows returned in a find_* operation.  Each call can set this independently, but this property defines a global maximum.-->
+		<maxRows>1000</maxRows>
+		<!-- The maximum number of "IN" clause parameters.  Some RDMBS limit the number of parameters allowed in a SQL "IN" clause.-->
+		<maxInClause>1000</maxInClause>
+
+		<!-- The maximum number of UDDI artifacts allowed per publisher. A value of '-1' indicates any  number of artifacts is valid (These values can be overridden at the individual publisher level).-->
+		<maxBusinessesPerPublisher>-1</maxBusinessesPerPublisher>
+		<maxServicesPerBusiness>-1</maxServicesPerBusiness>
+		<maxBindingsPerService>-1</maxBindingsPerService>
+		<maxTModelsPerPublisher>-1</maxTModelsPerPublisher>
+
+		<!-- Days before a transfer request expires-->
+		<transfer>
+			<expiration>
+				<days>3</days>
+			</expiration>
+		</transfer>
+
+		<!-- Days before a subscription expires-->
+		<subscription>
+			<expiration>
+				<days>30</days>
+			</expiration>
+
+			<!-- Minutes before a "chunked" subscription call expires-->
+			<chunkexpiration>
+				<minutes>5</minutes>
+			</chunkexpiration>
+
+			<!--Since 3.1.5 the maxium ammount of returned subscription entities allowed-->
+			<maxentities>1000</maxentities>
+		</subscription>
+
+		<!-- jUDDI UUIDGen implementation to use-->
+		<uuidgen>org.apache.juddi.uuidgen.DefaultUUIDGen</uuidgen>
+
+		<!-- jUDDI Cryptor implementation to use-->
+		<cryptor>org.apache.juddi.cryptor.DefaultCryptor</cryptor>
+
+		<!-- jUDDI Key Generator to use-->
+		<keygenerator>org.apache.juddi.keygen.DefaultKeyGenerator</keygenerator>
+
+		<notification>
+			<!-- Specifies the interval at which the notification timer triggers-->
+			<interval>5000</interval>
+			<!-- Specifies the amount of time to wait before the notification timer initially fires-->
+			<start>
+				<buffer>0</buffer>
+			</start>
+			<acceptableLagtime>1000</acceptableLagtime>
+			<maxTries>3</maxTries>
+			<!-- 10 minutes -->
+			<maxTriesResetInterval>600000</maxTriesResetInterval>
+			<sendAuthTokenWithResultList>false</sendAuthTokenWithResultList>
+		</notification>
+		<!-- All Authentication related settings -->
+		<auth>
+			<!-- Specifies whether the inquiry API requires authentication, all other APIs require authN-->
+			<Inquiry>false</Inquiry>
+			
+			<!-- When using file based authentication, this is the filename to use 
+			<usersfile>juddi-users.xml</usersfile>-->
+			<!-- jUDDI Authentication module to use-->
+			<authenticator>
+				<!-- build in Authenticators:
+				org.apache.juddi.v3.auth.JUDDIAuthenticator - no authentication
+				LDAP Based
+				org.apache.juddi.v3.auth.LdapSimpleAuthenticator - use LDAP
+				org.apache.juddi.v3.auth.LdapExpandedAuthenticator - use LDAP
+				
+				File based, see usersfile
+				org.apache.juddi.v3.auth.XMLDocAuthenticator - XML doc, clear text
+				org.apache.juddi.v3.auth.CryptedXMLDocAuthenticator - XML doc, encrypted
+				org.apache.juddi.v3.auth.MD5XMLDocAuthenticator - XML doc, Hashed
+				-->
+				<class>org.apache.juddi.v3.auth.JUDDIAuthenticator</class>
+				<!-- other settings
+				url
+				initialcontext
+				style
+				ldapexp
+				
+				-->
+			</authenticator>
+
+			<token>
+				<!-- Time in minutes to expire tokes after inactivity-->
+				<Timeout>15</Timeout>
+				<!-- As of 3.1.5 Duration of time for tokens to expire, regardless of inactivity -->
+				<Expiration>15</Expiration>
+			</token>
+		</auth>
+
+
+
+
+		<validation>
+			<!-- As of 3.1.5 This setting will force referential integrity for all tModels (except keyGenerators), category bags, bindingTemplate/AccessPoint/hostingRedirector (referencing another host), tModelinstanceparms and anything else that references a KeyName default value is true.  set to false for backwards compatibility or for a more lax registry-->
+			<enforceReferentialIntegrity>true</enforceReferentialIntegrity>
+			<!-- as of 3.3, reject digitally signed items that are invalid-->
+            <rejectInvalidSignatures>
+                <enable>false</enable>
+                <trustStorePath>truststore.jks</trustStorePath>
+                <trustStoreType>JKS</trustStoreType>
+                <trustStorePassword
+                        isPasswordEncrypted="false" 
+                        cryptoProvider="org.apache.juddi.v3.client.crypto.AES128Cryptor">password</trustStorePassword>
+
+                <checkTimestamps>true</checkTimestamps>
+                <checkTrust>true</checkTrust>
+                <checkRevocationCRL>true</checkRevocationCRL>
+            </rejectInvalidSignatures>
+		</validation>
+
+		<!--As of 3.1.5 Email delivery options for subscription API functions-->
+		<mail>
+			<smtp>
+				<!--The Operator’s Email address
+				<from>admin@local.localhost</from>-->
+
+				<!--the hostname of the SMTP server
+				<host>localhost</host>-->
+
+				<!--The portname of the SMTP server
+				<port>25</port>-->
+
+				<!--If set, specifies the name of a class that implements the javax.net.SocketFactory interface. This class will be used to create SMTP sockets.-->
+				<socketFactory>
+					<!--<class></class>-->
+
+					<!--If set to true, failure to create a socket using the specified socket factory class will cause the socket to be created using the java.net.Socket class. Defaults to true.
+					<fallback>true</fallback>-->
+					<!--Specifies the port to connect to when using the specified socket factory. If not set, the default port will be used.
+					<port>25</port>-->
+				</socketFactory>
+				<!--if true, enables the use of the STARTTLS command (if supported by the server) to switch the connection to a TLS-protected connection before issuing any login commands. Note that an appropriate trust store must configured so that the client will trust the server’s certificate. Defaults to false.
+				<starttls>
+					<enabled>false</enabled>
+				</starttls>-->
+
+				<!--If true, attempt to authenticate the user using the AUTH command. Defaults to false.
+				<auth>false</auth>-->
+
+				<!--Username used to authenticate to the SMTP server used only if mail.smtp.auth is true
+				<user>user</user>-->
+
+				<!--Password used to authenticate to the SMTP server, used only if mail.smtp.auth is true
+				<password encrypted="false">pass</password>-->
+			</smtp>
+		</mail>
+		
+		<logging>
+			<logInquirySearchPayloads>false</logInquirySearchPayloads>
+		</logging>
+	</juddi>
+</config>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/config.properties
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/config.properties b/juddiv3-war-repl/src/main/webapp/WEB-INF/config.properties
new file mode 100644
index 0000000..323473d
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/config.properties
@@ -0,0 +1,22 @@
+
+# * Copyright 2001-2008 The Apache Software Foundation.
+# * 
+# * Licensed 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.
+
+## Hey! 
+
+# This file is used for the jUDDI Administrative console
+# i.e. http://localhost:8080/juddiv3/admin
+
+# it's access by the StartupServlet and generates a new encryption key everytime the servlet container (i.e. Tomcat) starts up.
+# we must have write access to this file.

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/web.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..3bdbab1
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE web-app
+    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+    "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<!--
+	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.
+-->
+<web-app>
+ <!--  place holder -->
+</web-app>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/index.jsp
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/index.jsp b/juddiv3-war-repl/src/main/webapp/index.jsp
new file mode 100644
index 0000000..4ed9d19
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/index.jsp
@@ -0,0 +1,186 @@
+<%@page import="org.apache.commons.lang.StringEscapeUtils"%>
+<%@ page session="false" %>
+<%@ page import="java.util.List,
+         org.apache.juddi.config.Install,
+         javax.xml.bind.JAXBException,
+         org.uddi.v3_service.DispositionReportFaultMessage,
+         org.apache.juddi.config.AppConfig,
+         org.apache.juddi.config.Property,
+         org.uddi.api_v3.BusinessEntity,
+         org.uddi.api_v3.Name,
+         org.uddi.api_v3.Description,
+         java.io.IOException,
+         org.apache.juddi.config.Release"
+         %>
+<%
+        
+        /*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ * 
+ * Licensed 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.
+ *
+ */
+        
+        %>
+<!-- index.jsp -->
+<html>
+    <head>
+        <title>Apache jUDDI Registry</title>
+        <link rel="stylesheet" href="juddi.css" />
+    </head>
+    <body>
+        <div class="header" align="right"><a href="http://juddi.apache.org/" target="_top">jUDDI@Apache</a></div>
+        <h1>Apache jUDDI version <%= Release.getRegistryVersion()%></h1>
+
+
+        <h2><em>Welcome</em> to Apache jUDDI!</h2>
+        jUDDI is an open source implementation of <a href="http://oasis-open.org">OASIS</a>'s <a href="http://oasis-open.org/committees/uddi-spec/doc/tcspecs.htm#uddiv3">Universal Discovery Description and Integration (UDDI)</a>.
+        You've reached the deployment page for jUDDI's web services.<br>
+
+        Looking for the old jUDDI Portal/Porlets? We've completely rewritten it. 
+
+        <h4><a href="/juddi-gui">View the jUDDI User Interface</a> - This is a nearly complete UDDIv3 end user web application.</h4>
+
+        <h4><a href="admin">View the jUDDI Administration Interface</a> - This is for administrators to use to reconfigure jUDDI, check the status, and perform administrative actions.</h4>
+
+
+        Here's some useful links to learn more about the UDDI and jUDDI.
+        <ul>
+            <li><a href="services">View the service listing on this UDDI node</a></li>
+            <li><a href="http://juddi.apache.org/">The Apache-jUDDI Home Page</a></li>
+            <li><a href="http://juddi.apache.org/docs.html" >Documentation</a></li>
+            <li><a href="http://wiki.apache.org/juddi" >jUDDI Wiki</a></li>
+            <li><a href="http://juddi.apache.org/issue-tracking.html" >jUDDI's Issue Tracker (report a bug)</a></li>
+            <li><a href="http://juddi.apache.org/source.html" >jUDDI's Source Code</a></li>
+            <li><a href="http://juddi.apache.org/mailing-list.html">jUDDI's Mailing lists</a></li>
+
+        </ul>
+
+        <div class="install">
+            <h4>jUDDI Installation Status</h4>
+            <div class="content">
+                <%
+                    // This will tirgger the install process...
+                    String rootPartition = AppConfig.getConfiguration().getString(Property.JUDDI_ROOT_PARTITION);
+                    String nodeId = AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID);
+                    String rootBusiness = AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ROOT_BUSINESS);
+                    String nodeName = "";
+                    String nodeDescription = "";
+                    BusinessEntity be = null;
+                    boolean ok = true;
+                    String error = "";
+                    try {
+                        be = Install.getNodeBusinessEntity(rootBusiness);
+                        Name n = be.getName().get(0);
+                        if (n != null) {
+                            nodeName = n.getValue();
+                        }
+
+                        List descList = be.getDescription();
+                        if (descList != null && descList.size() > 0) {
+                            Description d = (Description) descList.get(0);
+                            if (d != null) {
+                                nodeDescription = d.getValue();
+                            }
+                        }
+                    } catch (Exception ex) {
+                        ok = false;
+                        error = ex.getMessage();
+
+                    }
+                    if (ok) {
+
+                %>
+                <div>jUDDI has been successfully installed!</div>
+
+                <h3>Node Information</h3>
+                <table>
+                    <tr>
+                        <td><b>Root Partition:</b></td>
+                        <td><%= StringEscapeUtils.escapeHtml(rootPartition)%></td>
+                    </tr>
+
+                    <tr>
+                        <td><b>Node Id:</b></td>
+                        <td><%=StringEscapeUtils.escapeHtml(nodeId)%></td>
+                    </tr>
+                    <tr>
+                        <td><b>Root Business Key:</b></td>
+                        <td><%= StringEscapeUtils.escapeHtml(rootBusiness)%></td>
+                    </tr>
+                    <tr>
+                        <td><b>Root Business Name:</b></td>
+                        <td><%= StringEscapeUtils.escapeHtml(nodeName)%></td>
+                    </tr>
+                    <tr>
+                        <td><b>Root Business Description:</b></td>
+                        <td><%=StringEscapeUtils.escapeHtml(nodeDescription)%></td>
+                    </tr>
+
+                </table>
+                <%
+                } else {
+                %>
+                <h2 color="red">jUDDI has NOT installed correctly!</h2>
+                <p />
+                <h3>Error Information</h3>
+                <p>
+                    <%=StringEscapeUtils.escapeHtml(error)%><br>
+                    Suggestion: Check the juddiv3.xml config file for the following settings (in Xpath notation) and ensure that they either match the defaults, or the install data.
+                </p>
+                <ul>
+                    <li>config/juddi/nodeId, default = uddi:juddi.apache.org:node1</li>
+                    <li>config/juddi/rootBusinessId, default = uddi:juddi.apache.org:businesses-asf</li>
+                </ul>
+                Configured values:
+                <table>
+                    <tr>
+                        <td><b>Root Partition:</b></td>
+                        <td><%= StringEscapeUtils.escapeHtml(rootPartition)%></td>
+                    </tr>
+
+                    <tr>
+                        <td><b>Node Id:</b></td>
+                        <td><%=StringEscapeUtils.escapeHtml(nodeId)%></td>
+                    </tr>
+                    <tr>
+                        <td><b>Root Business Key:</b></td>
+                        <td><%= StringEscapeUtils.escapeHtml(rootBusiness)%></td>
+                    </tr>
+                    <tr>
+                        <td><b>Root Business Name:</b></td>
+                        <td><%= StringEscapeUtils.escapeHtml(nodeName)%></td>
+                    </tr>
+                    <tr>
+                        <td><b>Root Business Description:</b></td>
+                        <td><%=StringEscapeUtils.escapeHtml(nodeDescription)%></td>
+                    </tr>
+
+                </table>
+
+                <%                    }
+                %>
+            </div>
+        </div>
+
+        <hr />
+        <table width="100%" border="0">
+            <tr>
+                <td height="50" align="center" valign="bottom" nowrap>
+                    <div class="footer">&nbsp;</div>
+                </td>
+            </tr>
+        </table>
+
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/juddi.css
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/juddi.css b/juddiv3-war-repl/src/main/webapp/juddi.css
new file mode 100644
index 0000000..b905401
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/juddi.css
@@ -0,0 +1,173 @@
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ * 
+ * Licensed 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.
+ *
+ */
+body {
+  margin:      0px 10px 10px 10px;
+  font-family: "Trebuchet MS", sans-serif;
+  font-size:   10pt;
+  background:  #FFF;
+  color:       #000;
+}
+
+h1 {
+	font-family: "Trebuchet MS", sans-serif;
+	background: #00005A;
+	font-weight: normal;
+	color: White;
+	padding: 5px 10px;
+	margin: 0px -10px 10px -10px;
+}
+
+h2 {
+	font-family: "Trebuchet MS", sans-serif;
+	color: #00005A;
+}
+
+h3 {
+	font-family: "Trebuchet MS", sans-serif;
+	color: #00005A;
+}
+
+h4 {
+	font-family: "Trebuchet MS", sans-serif;
+	color: #00005A;
+}
+
+.sidebar {
+	border: 1px solid #00005A;
+	background: #EEE;
+	padding: 5px;
+} 
+
+pre.code_sample {
+  background: #EEE;
+  padding: 5px;
+}
+
+dt {
+  font-weight: bold;
+}
+
+dl {
+  margin-left: 3em;
+}
+
+td {
+  font-size:   10pt;
+}
+
+DIV.announcement dl {
+  margin-left: 0px;
+}
+
+div.LINK {
+  margin: 0px -10px;
+  padding: 2px 10px;
+  color: #000;
+  font-size: 10pt;
+}
+
+div.LINK A {
+  color: #6d0000;
+  text-decoration: none;
+}
+
+div.LINK A:hover {
+  color: #006200;
+  text-decoration: underline;
+}
+
+div.NAV {
+  background: #000;
+  margin: 0px -10px;
+  padding: 2px 10px;
+  color: #CCC;
+  font-size: 12pt;
+  font-weight: bold;
+}
+
+div.NAV A {
+  color: #CCC;
+  text-decoration: none;
+}
+
+div.NAV A:hover {
+  color: #FFF;
+}
+
+.msgs {
+	background-color: #FFD;
+	color: #005500;
+}
+
+.ednote {
+  color: #999;
+  font-style: italic;
+}
+
+.cvs_id {
+  color: #999;
+  font-size: 8pt;
+  border-top: solid 1px #999;
+}
+
+.author {
+  font-size: 14pt;
+  font-style: italic;
+}
+
+var {
+  font-style: italic;
+  color: #900;
+}
+
+div.footer { 
+  color: #666699; margin: 0px -10px; padding: 2px 10px; font-size: 8pt; font-weight: normal; 
+}
+
+div.footer a {
+  color: #666699; text-decoration: none; 
+}
+
+div.footer a:hover { 
+  color: #666699; text-decoration: underline; 
+}
+
+div.header { 
+  background: #000;
+  margin: 0px -10px;
+  padding: 2px 10px;
+  color: #CCC;
+  font-size: 8pt;
+  font-weight: bold;
+}
+
+div.header a {
+  color: #CCC;
+  text-decoration: none;
+}
+
+div.header a:hover { 
+  color: #FFF;
+}
+
+div.error {
+  color: #F00;
+}
+
+div.install {width:650px; background-color: #00005a;}
+div.install h4 {margin:0; padding:0; color: #fff;}
+div.install .content {margin:0; padding:4px 4px 0 4px; border-style:solid; border-color:#bbb; border-width:0 1px 1px 1px; background-color: #fff;}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org


[04/12] juddi git commit: JUDDI-919 replication now works with ssl + client-cert authentication. In order to support this, we need to have two different war file (unfortunately). Included with this change set is number of typos in our deployment files (w

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/resources/schemas/persistence_1_0.xsd
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/resources/schemas/persistence_1_0.xsd b/juddiv3-war-repl/src/main/resources/schemas/persistence_1_0.xsd
new file mode 100644
index 0000000..a485e30
--- /dev/null
+++ b/juddiv3-war-repl/src/main/resources/schemas/persistence_1_0.xsd
@@ -0,0 +1,305 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- persistence.xml schema -->
+<xsd:schema targetNamespace="http://java.sun.com/xml/ns/persistence" 
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:persistence="http://java.sun.com/xml/ns/persistence"
+  elementFormDefault="qualified" 
+  attributeFormDefault="unqualified" 
+  version="1.0">
+
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)persistence_1_0.xsd  1.0  Feb 9 2006
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+      Copyright 2005-2007 Sun Microsystems, Inc. All rights reserved.
+
+      The contents of this file are subject to the terms of either the
+      GNU General Public License Version 2 only ("GPL") or the Common
+      Development and Distribution License("CDDL") (collectively, the
+      "License").  You may not use this file except in compliance with
+      the License. You can obtain a copy of the License at
+      https://glassfish.dev.java.net/public/CDDL+GPL.html or
+      glassfish/bootstrap/legal/LICENSE.txt.  See the License for the
+      specific language governing permissions and limitations under the
+      License.
+
+      When distributing the software, include this License Header
+      Notice in each file and include the License file at
+      glassfish/bootstrap/legal/LICENSE.txt.  Sun designates this
+      particular file as subject to the "Classpath" exception as
+      provided by Sun in the GPL Version 2 section of the License file
+      that accompanied this code.  If applicable, add the following
+      below the License Header, with the fields enclosed by brackets []
+      replaced by your own identifying information:
+      "Portions Copyrighted [year] [name of copyright owner]"
+
+      Contributor(s):
+
+      If you wish your version of this file to be governed by only the
+      CDDL or only the GPL Version 2, indicate your decision by adding
+      "[Contributor] elects to include this software in this
+      distribution under the [CDDL or GPL Version 2] license."  If you
+      don't indicate a single choice of license, a recipient has the
+      option to distribute your version of this file under either the
+      CDDL, the GPL Version 2 or to extend the choice of license to its
+      licensees as provided above.  However, if you add GPL Version 2
+      code and therefore, elected the GPL Version 2 license, then the
+      option applies only if the new code is made subject to such
+      option by the copyright holder.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+   <xsd:annotation>
+     <xsd:documentation><![CDATA[
+
+     This is the XML Schema for the persistence configuration file.
+     The file must be named "META-INF/persistence.xml" in the 
+     persistence archive.
+     Persistence configuration files must indicate
+     the persistence schema by using the persistence namespace:
+
+     http://java.sun.com/xml/ns/persistence
+
+     and indicate the version of the schema by
+     using the version element as shown below:
+
+      <persistence xmlns="http://java.sun.com/xml/ns/persistence"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
+          http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
+        version="1.0">
+          ...
+      </persistence>
+
+    ]]></xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:simpleType name="versionType">
+    <xsd:restriction base="xsd:token">
+      <xsd:pattern value="[0-9]+(\.[0-9]+)*"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <!-- **************************************************** -->
+
+  <xsd:element name="persistence">
+    <xsd:complexType>
+      <xsd:sequence>
+
+        <!-- **************************************************** -->
+
+        <xsd:element name="persistence-unit" 
+                     minOccurs="0" maxOccurs="unbounded">
+          <xsd:complexType>
+            <xsd:annotation>
+              <xsd:documentation>
+
+                Configuration of a persistence unit.
+
+              </xsd:documentation>
+            </xsd:annotation>
+            <xsd:sequence>
+
+            <!-- **************************************************** -->
+
+              <xsd:element name="description" type="xsd:string" 
+                           minOccurs="0">
+                <xsd:annotation>
+                  <xsd:documentation>
+
+                    Textual description of this persistence unit.
+
+                  </xsd:documentation>
+                </xsd:annotation>
+              </xsd:element>
+
+              <!-- **************************************************** -->
+
+              <xsd:element name="provider" type="xsd:string" 
+                           minOccurs="0">
+                <xsd:annotation>
+                  <xsd:documentation>
+
+                    Provider class that supplies EntityManagers for this 
+                    persistence unit.
+
+                  </xsd:documentation>
+                </xsd:annotation>
+              </xsd:element>
+
+              <!-- **************************************************** -->
+
+              <xsd:element name="jta-data-source" type="xsd:string" 
+                           minOccurs="0">
+                <xsd:annotation>
+                  <xsd:documentation>
+
+                    The container-specific name of the JTA datasource to use.
+
+                  </xsd:documentation>
+                </xsd:annotation>
+              </xsd:element>
+
+              <!-- **************************************************** -->
+
+              <xsd:element name="non-jta-data-source" type="xsd:string" 
+                           minOccurs="0">
+                <xsd:annotation>
+                  <xsd:documentation>
+
+                    The container-specific name of a non-JTA datasource to use.
+
+                  </xsd:documentation>
+                </xsd:annotation>
+              </xsd:element>
+
+              <!-- **************************************************** -->
+
+              <xsd:element name="mapping-file" type="xsd:string" 
+                           minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                  <xsd:documentation>
+
+                    File containing mapping information. Loaded as a resource 
+                    by the persistence provider.
+
+                  </xsd:documentation>
+                </xsd:annotation>
+              </xsd:element>
+
+              <!-- **************************************************** -->
+
+              <xsd:element name="jar-file" type="xsd:string" 
+                           minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                  <xsd:documentation>
+
+                    Jar file that should be scanned for entities. 
+                    Not applicable to Java SE persistence units.
+
+                  </xsd:documentation>
+                </xsd:annotation>
+              </xsd:element>
+
+              <!-- **************************************************** -->
+
+              <xsd:element name="class" type="xsd:string" 
+                           minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                  <xsd:documentation>
+
+                    Class to scan for annotations.  It should be annotated 
+                    with either @Entity, @Embeddable or @MappedSuperclass.
+
+                  </xsd:documentation>
+                </xsd:annotation>
+              </xsd:element>
+
+              <!-- **************************************************** -->
+
+              <xsd:element name="exclude-unlisted-classes" type="xsd:boolean" 
+                           default="false" minOccurs="0">
+                <xsd:annotation>
+                  <xsd:documentation>
+
+                    When set to true then only listed classes and jars will 
+                    be scanned for persistent classes, otherwise the enclosing 
+                    jar or directory will also be scanned. Not applicable to 
+                    Java SE persistence units.
+
+                  </xsd:documentation>
+                </xsd:annotation>
+              </xsd:element>
+
+              <!-- **************************************************** -->
+
+              <xsd:element name="properties" minOccurs="0">
+                <xsd:annotation>
+                  <xsd:documentation>
+
+                    A list of vendor-specific properties.
+
+                  </xsd:documentation>
+                </xsd:annotation>
+                <xsd:complexType>
+                  <xsd:sequence>
+                    <xsd:element name="property" 
+                                 minOccurs="0" maxOccurs="unbounded">
+                      <xsd:annotation>
+                        <xsd:documentation>
+                          A name-value pair.
+                        </xsd:documentation>
+                      </xsd:annotation>
+                      <xsd:complexType>
+                        <xsd:attribute name="name" type="xsd:string" 
+                                       use="required"/>
+                        <xsd:attribute name="value" type="xsd:string" 
+                                       use="required"/>
+                      </xsd:complexType>
+                    </xsd:element>
+                  </xsd:sequence>
+                </xsd:complexType>
+              </xsd:element>
+
+            </xsd:sequence>
+
+            <!-- **************************************************** -->
+
+            <xsd:attribute name="name" type="xsd:string" use="required">
+              <xsd:annotation>
+                <xsd:documentation>
+
+                  Name used in code to reference this persistence unit.
+
+                </xsd:documentation>
+              </xsd:annotation>
+            </xsd:attribute>
+
+            <!-- **************************************************** -->
+
+            <xsd:attribute name="transaction-type" 
+                           type="persistence:persistence-unit-transaction-type">
+              <xsd:annotation>
+                <xsd:documentation>
+
+                  Type of transactions used by EntityManagers from this 
+                  persistence unit.
+
+                </xsd:documentation>
+              </xsd:annotation>
+            </xsd:attribute>
+
+          </xsd:complexType>
+        </xsd:element>
+      </xsd:sequence>
+      <xsd:attribute name="version" type="persistence:versionType" 
+                     fixed="1.0" use="required"/>
+    </xsd:complexType>
+  </xsd:element>
+
+  <!-- **************************************************** -->
+
+  <xsd:simpleType name="persistence-unit-transaction-type">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        public enum TransactionType { JTA, RESOURCE_LOCAL };
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="JTA"/>
+      <xsd:enumeration value="RESOURCE_LOCAL"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+</xsd:schema>
+

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/resources/spring-beans.xsd.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/resources/spring-beans.xsd.xml b/juddiv3-war-repl/src/main/resources/spring-beans.xsd.xml
new file mode 100644
index 0000000..fe427c2
--- /dev/null
+++ b/juddiv3-war-repl/src/main/resources/spring-beans.xsd.xml
@@ -0,0 +1,1203 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/beans"
+		xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+		targetNamespace="http://www.springframework.org/schema/beans">
+
+	<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
+
+	<xsd:annotation>
+		<xsd:documentation><![CDATA[
+	Spring XML Beans Schema, version 3.2
+	Authors: Juergen Hoeller, Rob Harrop, Mark Fisher, Chris Beams
+
+	This defines a simple and consistent way of creating a namespace
+	of JavaBeans objects, managed by a Spring BeanFactory, read by
+	XmlBeanDefinitionReader (with DefaultBeanDefinitionDocumentReader).
+
+	This document type is used by most Spring functionality, including
+	web application contexts, which are based on bean factories.
+
+	Each "bean" element in this document defines a JavaBean.
+	Typically the bean class is specified, along with JavaBean properties
+	and/or constructor arguments.
+
+	A bean instance can be a "singleton" (shared instance) or a "prototype"
+	(independent instance). Further scopes can be provided by extended
+	bean factories, for example in a web environment.
+
+	References among beans are supported, that is, setting a JavaBean property
+	or a constructor argument to refer to another bean in the same factory
+	(or an ancestor factory).
+
+	As alternative to bean references, "inner bean definitions" can be used.
+	Singleton flags of such inner bean definitions are effectively ignored:
+	inner beans are typically anonymous prototypes.
+
+	There is also support for lists, sets, maps, and java.util.Properties
+	as bean property types or constructor argument types.
+		]]></xsd:documentation>
+	</xsd:annotation>
+
+	<!-- base types -->
+	<xsd:complexType name="identifiedType" abstract="true">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	The unique identifier for a bean. The scope of the identifier
+	is the enclosing bean factory.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:attribute name="id" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The unique identifier for a bean. A bean id may not be used more than once
+	within the same <beans> element.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+	<!-- Top-level <beans> tag -->
+	<xsd:element name="beans">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Container for <bean> and other elements, typically the root element in the document.
+	Allows the definition of default values for all nested bean definitions. May itself
+	be nested for the purpose of defining a subset of beans with certain default values or
+	to be registered only when certain profile(s) are active. Any such nested <beans> element
+	must be declared as the last element in the document.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="description" minOccurs="0"/>
+				<xsd:choice minOccurs="0" maxOccurs="unbounded">
+					<xsd:element ref="import"/>
+					<xsd:element ref="alias"/>
+					<xsd:element ref="bean"/>
+					<xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+				</xsd:choice>
+				<xsd:element ref="beans" minOccurs="0" maxOccurs="unbounded"/>
+			</xsd:sequence>
+			<xsd:attribute name="profile" use="optional" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The set of profiles for which this <beans> element should be parsed. Multiple profiles
+	can be separated by spaces, commas, or semi-colons.
+
+	If one or more of the specified profiles are active at time of parsing, the <beans>
+	element will be parsed, and all of its <bean> elements registered, &lt;import&gt;
+	elements followed, etc.  If none of the specified profiles are active at time of
+	parsing, then the entire element and its contents will be ignored.
+
+	If a profile is prefixed with the NOT operator '!', e.g.
+
+		<beans profile="p1,!p2">
+
+	indicates that the <beans> element should be parsed if profile "p1" is active or
+	if profile "p2" is not active.
+
+	Profiles are activated in one of two ways:
+		Programmatic:
+			ConfigurableEnvironment#setActiveProfiles(String...)
+			ConfigurableEnvironment#setDefaultProfiles(String...)
+
+		Properties (typically through -D system properties, environment variables, or
+		servlet context init params):
+			spring.profiles.active=p1,p2
+			spring.profiles.default=p1,p2
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="default-lazy-init" default="default" type="defaultable-boolean">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The default 'lazy-init' value; see the documentation for the
+	'lazy-init' attribute of the 'bean' element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="default-merge" default="default" type="defaultable-boolean">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The default 'merge' value; see the documentation for the
+	'merge' attribute of the various collection elements. The default
+	is 'false'.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="default-autowire" default="default">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The default 'autowire' value; see the documentation for the
+	'autowire' attribute of the 'bean' element. The default is 'default'.
+					]]></xsd:documentation>
+				</xsd:annotation>
+				<xsd:simpleType>
+					<xsd:restriction base="xsd:NMTOKEN">
+						<xsd:enumeration value="default"/>
+						<xsd:enumeration value="no"/>
+						<xsd:enumeration value="byName"/>
+						<xsd:enumeration value="byType"/>
+						<xsd:enumeration value="constructor"/>
+					</xsd:restriction>
+				</xsd:simpleType>
+			</xsd:attribute>
+			<xsd:attribute name="default-autowire-candidates" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	A default bean name pattern for identifying autowire candidates:
+	e.g. "*Service", "data*", "*Service*", "data*Service".
+	Also accepts a comma-separated list of patterns: e.g. "*Service,*Dao".
+	See the documentation for the 'autowire-candidate' attribute of the
+	'bean' element for the semantic details of autowire candidate beans.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="default-init-method" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The default 'init-method' value; see the documentation for the
+	'init-method' attribute of the 'bean' element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="default-destroy-method" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The default 'destroy-method' value; see the documentation for the
+	'destroy-method' attribute of the 'bean' element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:anyAttribute namespace="##other" processContents="lax"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="description">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Contains informative text describing the purpose of the enclosing element.
+	Used primarily for user documentation of XML bean definition documents.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType mixed="true">
+			<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="import">
+		<xsd:annotation>
+			<xsd:documentation source="java:org.springframework.core.io.Resource"><![CDATA[
+	Specifies an XML bean definition resource to import.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:restriction base="xsd:anyType">
+					<xsd:attribute name="resource" type="xsd:string" use="required">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The relative resource location of the XML (bean definition) file to import,
+	for example "myImport.xml" or "includes/myImport.xml" or "../myImport.xml".
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:restriction>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="alias">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Defines an alias for a bean (which can reside in a different definition
+	resource).
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:restriction base="xsd:anyType">
+					<xsd:attribute name="name" type="xsd:string" use="required">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the bean to define an alias for.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="alias" type="xsd:string" use="required">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The alias name to define for the bean.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:restriction>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:group name="beanElements">
+		<xsd:sequence>
+			<xsd:element ref="description" minOccurs="0"/>
+			<xsd:choice minOccurs="0" maxOccurs="unbounded">
+				<xsd:element ref="meta"/>
+				<xsd:element ref="constructor-arg"/>
+				<xsd:element ref="property"/>
+				<xsd:element ref="qualifier"/>
+				<xsd:element ref="lookup-method"/>
+				<xsd:element ref="replaced-method"/>
+				<xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+			</xsd:choice>
+		</xsd:sequence>
+	</xsd:group>
+
+	<xsd:attributeGroup name="beanAttributes">
+		<xsd:attribute name="name" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Can be used to create one or more aliases illegal in an (XML) id.
+	Multiple aliases can be separated by any number of spaces, commas,
+	or semi-colons (or indeed any mixture of the three).
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="class" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation source="java:java.lang.Class"><![CDATA[
+	The fully qualified name of the bean's class, except if it serves only
+	as a parent definition for child bean definitions.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="parent" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The name of the parent bean definition.
+
+	Will use the bean class of the parent if none is specified, but can
+	also override it. In the latter case, the child bean class must be
+	compatible with the parent, i.e. accept the parent's property values
+	and constructor argument values, if any.
+
+	A child bean definition will inherit constructor argument values,
+	property values and method overrides from the parent, with the option
+	to add new values. If init method, destroy method, factory bean and/or
+	factory method are specified, they will override the corresponding
+	parent settings.
+
+	The remaining settings will always be taken from the child definition:
+	depends on, autowire mode, scope, lazy init.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="scope" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The scope of this bean: typically "singleton" (one shared instance,
+	which will be returned by all calls to getBean with the given id), or
+	"prototype" (independent instance resulting from each call to getBean).
+
+	By default, a bean will be a singleton, unless the bean has a parent
+	bean definition in which case it will inherit the parent's scope.
+
+	Singletons are most commonly used, and are ideal for multi-threaded
+	service objects. Further scopes, such as "request" or "session", might
+	be supported by extended bean factories (e.g. in a web environment).
+
+	Inner bean definitions inherit the singleton status of their containing
+	bean definition, unless explicitly specified: The inner bean will be a
+	singleton if the containing bean is a singleton, and a prototype if
+	the containing bean has any other scope.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="abstract" type="xsd:boolean">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Is this bean "abstract", that is, not meant to be instantiated itself
+	but rather just serving as parent for concrete child bean definitions?
+	The default is "false". Specify "true" to tell the bean factory to not
+	try to instantiate that particular bean in any case.
+
+	Note: This attribute will not be inherited by child bean definitions.
+	Hence, it needs to be specified per abstract bean definition.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="lazy-init" default="default" type="defaultable-boolean">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Indicates whether or not this bean is to be lazily initialized.
+	If false, it will be instantiated on startup by bean factories
+	that perform eager initialization of singletons. The default is
+	"false".
+
+	Note: This attribute will not be inherited by child bean definitions.
+	Hence, it needs to be specified per concrete bean definition.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="autowire" default="default">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Controls whether bean properties are "autowired".
+	This is an automagical process in which bean references don't need
+	to be coded explicitly in the XML bean definition file, but rather the
+	Spring container works out dependencies.
+
+	There are 4 modes:
+
+	1. "no"
+	The traditional Spring default. No automagical wiring. Bean references
+	must be defined in the XML file via the <ref/> element (or "ref"
+	attribute). We recommend this in most cases as it makes documentation
+	more explicit.
+
+	Note that this default mode also allows for annotation-driven autowiring,
+	if activated. "no" refers to externally driven autowiring only, not
+	affecting any autowiring demands that the bean class itself expresses.
+
+	2. "byName"
+	Autowiring by property name. If a bean of class Cat exposes a "dog"
+	property, Spring will try to set this to the value of the bean "dog"
+	in the current container. If there is no matching bean by name, nothing
+	special happens.
+
+	3. "byType"
+	Autowiring if there is exactly one bean of the property type in the
+	container. If there is more than one, a fatal error is raised, and
+	you cannot use byType autowiring for that bean. If there is none,
+	nothing special happens.
+
+	4. "constructor"
+	Analogous to "byType" for constructor arguments. If there is not exactly
+	one bean of the constructor argument type in the bean factory, a fatal
+	error is raised.
+
+	Note that explicit dependencies, i.e. "property" and "constructor-arg"
+	elements, always override autowiring.
+
+	Note: This attribute will not be inherited by child bean definitions.
+	Hence, it needs to be specified per concrete bean definition.
+				]]></xsd:documentation>
+			</xsd:annotation>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:NMTOKEN">
+					<xsd:enumeration value="default"/>
+					<xsd:enumeration value="no"/>
+					<xsd:enumeration value="byName"/>
+					<xsd:enumeration value="byType"/>
+					<xsd:enumeration value="constructor"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:attribute>
+		<xsd:attribute name="depends-on" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The names of the beans that this bean depends on being initialized.
+	The bean factory will guarantee that these beans get initialized
+	before this bean.
+
+	Note that dependencies are normally expressed through bean properties
+	or constructor arguments. This property should just be necessary for
+	other kinds of dependencies like statics (*ugh*) or database preparation
+	on startup.
+
+	Note: This attribute will not be inherited by child bean definitions.
+	Hence, it needs to be specified per concrete bean definition.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="autowire-candidate" default="default" type="defaultable-boolean">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Indicates whether or not this bean should be considered when looking
+	for matching candidates to satisfy another bean's autowiring requirements.
+	Note that this does not affect explicit references by name, which will get
+	resolved even if the specified bean is not marked as an autowire candidate.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="primary" type="xsd:boolean">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Specifies that this bean should be given preference when multiple
+	candidates are qualified to autowire a single-valued dependency.
+	If exactly one 'primary' bean exists among the candidates, it
+	will be the autowired value.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="init-method" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The name of the custom initialization method to invoke after setting
+	bean properties. The method must have no arguments, but may throw any
+	exception.
+
+	This is an alternative to implementing Spring's InitializingBean
+	interface or marking a method with the PostConstruct annotation.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="destroy-method" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The name of the custom destroy method to invoke on bean factory shutdown.
+	The method must have no arguments, but may throw any exception.
+
+	This is an alternative to implementing Spring's DisposableBean
+	interface or the standard Java Closeable/AutoCloseable interface,
+	or marking a method with the PreDestroy annotation.
+
+	Note: Only invoked on beans whose lifecycle is under the full
+	control of the factory - which is always the case for singletons,
+	but not guaranteed for any other scope.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="factory-method" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The name of a factory method to use to create this object. Use
+	constructor-arg elements to specify arguments to the factory method,
+	if it takes arguments. Autowiring does not apply to factory methods.
+
+	If the "class" attribute is present, the factory method will be a static
+	method on the class specified by the "class" attribute on this bean
+	definition. Often this will be the same class as that of the constructed
+	object - for example, when the factory method is used as an alternative
+	to a constructor. However, it may be on a different class. In that case,
+	the created object will *not* be of the class specified in the "class"
+	attribute. This is analogous to FactoryBean behavior.
+
+	If the "factory-bean" attribute is present, the "class" attribute is not
+	used, and the factory method will be an instance method on the object
+	returned from a getBean call with the specified bean name. The factory
+	bean may be defined as a singleton or a prototype.
+
+	The factory method can have any number of arguments. Autowiring is not
+	supported. Use indexed constructor-arg elements in conjunction with the
+	factory-method attribute.
+
+	Setter Injection can be used in conjunction with a factory method.
+	Method Injection cannot, as the factory method returns an instance,
+	which will be used when the container creates the bean.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="factory-bean" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Alternative to class attribute for factory-method usage.
+	If this is specified, no class attribute should be used.
+	This must be set to the name of a bean in the current or
+	ancestor factories that contains the relevant factory method.
+	This allows the factory itself to be configured using Dependency
+	Injection, and an instance (rather than static) method to be used.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:anyAttribute namespace="##other" processContents="lax"/>
+	</xsd:attributeGroup>
+
+	<xsd:element name="meta" type="metaType">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Arbitrary metadata attached to a bean definition.
+			]]></xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+
+	<xsd:complexType name="metaType">
+		<xsd:attribute name="key" type="xsd:string" use="required">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The key name of the metadata attribute being defined.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="value" type="xsd:string" use="required">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The value of the metadata attribute being defined (as a simple String).
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+	<xsd:element name="bean">
+		<xsd:annotation>
+			<xsd:documentation source="java:org.springframework.beans.factory.config.BeanDefinition"><![CDATA[
+	Defines a single (usually named) bean.
+
+	A bean definition may contain nested tags for constructor arguments,
+	property values, lookup methods, and replaced methods. Mixing constructor
+	injection and setter injection on the same bean is explicitly supported.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="identifiedType">
+					<xsd:group ref="beanElements"/>
+					<xsd:attributeGroup ref="beanAttributes"/>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="constructor-arg">
+		<xsd:annotation>
+			<xsd:documentation source="java:org.springframework.beans.factory.config.ConstructorArgumentValues">
+				<![CDATA[
+	Bean definitions can specify zero or more constructor arguments.
+	This is an alternative to "autowire constructor".
+	Arguments correspond to either a specific index of the constructor
+	argument list or are supposed to be matched generically by type.
+
+	Note: A single generic argument value will just be used once, rather
+	than potentially matched multiple times (as of Spring 1.1).
+
+	constructor-arg elements are also used in conjunction with the
+	factory-method element to construct beans using static or instance
+	factory methods.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="description" minOccurs="0"/>
+				<xsd:choice minOccurs="0" maxOccurs="1">
+					<xsd:element ref="bean"/>
+					<xsd:element ref="ref"/>
+					<xsd:element ref="idref"/>
+					<xsd:element ref="value"/>
+					<xsd:element ref="null"/>
+					<xsd:element ref="array"/>
+					<xsd:element ref="list"/>
+					<xsd:element ref="set"/>
+					<xsd:element ref="map"/>
+					<xsd:element ref="props"/>
+					<xsd:any namespace="##other" processContents="strict"/>
+				</xsd:choice>
+			</xsd:sequence>
+			<xsd:attribute name="index" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The exact index of the argument in the constructor argument list.
+	Only needed to avoid ambiguities, e.g. in case of 2 arguments of
+	the exact same type.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="type" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The exact type of the constructor argument. Only needed to avoid
+	ambiguities, e.g. in case of 2 single argument constructors
+	that can both be converted from a String.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="name" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The exact name of the argument in the constructor argument list.
+	Only needed to avoid ambiguities, e.g. in case of 2 arguments of
+	the exact same type. Note: This requires debug symbols to be
+	stored in the class file in order to introspect argument names!
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="ref" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<ref bean='...'/>" element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="value" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<value>...<value/>" element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="property" type="propertyType">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Bean definitions can have zero or more properties.
+	Property elements correspond to JavaBean setter methods exposed
+	by the bean classes. Spring supports primitives, references to other
+	beans in the same or related factories, lists, maps and properties.
+			]]></xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="qualifier">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Bean definitions can provide qualifiers to match against annotations
+	on a field or parameter for fine-grained autowire candidate resolution.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="attribute" minOccurs="0" maxOccurs="unbounded"/>
+			</xsd:sequence>
+			<xsd:attribute name="type" type="xsd:string" default="org.springframework.beans.factory.annotation.Qualifier"/>
+			<xsd:attribute name="value" type="xsd:string"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="attribute" type="metaType">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A qualifier element may contain attribute child elements as key-value
+	pairs. These will be available for matching against attributes of a
+	qualifier annotation on an autowired field or parameter if present.
+			]]></xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="lookup-method">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A lookup method causes the IoC container to override the given method
+	and return the bean with the name given in the bean attribute. This is
+	a form of Method Injection. It is particularly useful as an alternative
+	to implementing the BeanFactoryAware interface, in order to be able to
+	make getBean() calls for non-singleton instances at runtime. In this
+	case, Method Injection is a less invasive alternative.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:restriction base="xsd:anyType">
+					<xsd:attribute name="name" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the lookup method. This method must take no arguments.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="bean" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the bean in the current or ancestor factories that
+	the lookup method should resolve to. Often this bean will be a
+	prototype, in which case the lookup method will return a distinct
+	instance on every invocation. This is useful for single-threaded objects.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:restriction>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="replaced-method">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Similar to the lookup method mechanism, the replaced-method element
+	is used to control IoC container method overriding: Method Injection.
+	This mechanism allows the overriding of a method with arbitrary code.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:choice minOccurs="0" maxOccurs="unbounded">
+					<xsd:element ref="arg-type"/>
+				</xsd:choice>
+			</xsd:sequence>
+			<xsd:attribute name="name" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The name of the method whose implementation must be replaced by the
+	IoC container. If this method is not overloaded, there is no need
+	to use arg-type subelements. If this method is overloaded, arg-type
+	subelements must be used for all override definitions for the method.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="replacer" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation source="java:org.springframework.beans.factory.support.MethodReplacer"><![CDATA[
+	Bean name of an implementation of the MethodReplacer interface in the
+	current or ancestor factories. This may be a singleton or prototype
+	bean. If it is a prototype, a new instance will be used for each
+	method replacement. Singleton usage is the norm.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="arg-type">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Identifies an argument for a replaced method in the event of
+	method overloading.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType mixed="true">
+			<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+			<xsd:attribute name="match" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	Specification of the type of an overloaded method argument as a String.
+	For convenience, this may be a substring of the FQN. E.g. all the
+	following would match "java.lang.String":
+	- java.lang.String
+	- String
+	- Str
+
+	As the number of arguments will be checked also, this convenience
+	can often be used to save typing.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="ref">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Defines a reference to another bean in this factory or an external
+	factory (parent or included factory).
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:restriction base="xsd:anyType">
+					<xsd:attribute name="bean" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the referenced bean.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="local" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the referenced bean. The value must be a bean ID and will be
+	checked by the Spring container. This is therefore the preferred technique
+	for referencing beans within the same bean factory XML file.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="parent" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the referenced bean in a parent factory.
+						]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:restriction>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="idref">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	The id of another bean in this factory or an external factory
+	(parent or included factory).
+	While a regular 'value' element could instead be used for the
+	same effect, using idref indicates that the Spring container
+	should check that the value actually corresponds to a bean id.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:restriction base="xsd:anyType">
+					<xsd:attribute name="bean" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the referenced bean.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="local" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the referenced bean. The value must be a bean ID and will be
+	checked by the Spring container. This is therefore the preferred technique
+	for referencing beans within the same bean factory XML file.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:restriction>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="value">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Contains a string representation of a property value.
+	The property may be a string, or may be converted to the required
+	type using the JavaBeans PropertyEditor machinery. This makes it
+	possible for application developers to write custom PropertyEditor
+	implementations that can convert strings to arbitrary target objects.
+
+	Note that this is recommended for simple objects only. Configure
+	more complex objects by populating JavaBean properties with
+	references to other beans.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType mixed="true">
+			<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+			<xsd:attribute name="type" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The exact type that the value should be converted to. Only needed
+	if the type of the target property or constructor argument is
+	too generic: for example, in case of a collection element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="null">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Denotes a Java null value. Necessary because an empty "value" tag
+	will resolve to an empty String, which will not be resolved to a
+	null value unless a special PropertyEditor does so.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType mixed="true">
+			<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<!-- Collection Elements -->
+	<xsd:group name="collectionElements">
+		<xsd:sequence>
+			<xsd:element ref="description" minOccurs="0"/>
+			<xsd:choice minOccurs="0" maxOccurs="unbounded">
+				<xsd:element ref="bean"/>
+				<xsd:element ref="ref"/>
+				<xsd:element ref="idref"/>
+				<xsd:element ref="value"/>
+				<xsd:element ref="null"/>
+				<xsd:element ref="array"/>
+				<xsd:element ref="list"/>
+				<xsd:element ref="set"/>
+				<xsd:element ref="map"/>
+				<xsd:element ref="props"/>
+				<xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+			</xsd:choice>
+		</xsd:sequence>
+	</xsd:group>
+
+	<xsd:element name="array">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	An array can contain multiple inner bean, ref, collection, or value elements.
+	This configuration element will always result in an array, even when being
+	defined e.g. as a value for a map with value type Object.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="listOrSetType">
+					<xsd:attribute name="merge" default="default" type="defaultable-boolean">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Enables/disables merging for collections when using parent/child beans.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="list">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A list can contain multiple inner bean, ref, collection, or value elements.
+	A list can also map to an array type; the necessary conversion is performed
+	automatically.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="listOrSetType">
+					<xsd:attribute name="merge" default="default" type="defaultable-boolean">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Enables/disables merging for collections when using parent/child beans.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="set">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A set can contain multiple inner bean, ref, collection, or value elements.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="listOrSetType">
+					<xsd:attribute name="merge" default="default" type="defaultable-boolean">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Enables/disables merging for collections when using parent/child beans.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="map">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A mapping from a key to an object. Maps may be empty.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="mapType">
+					<xsd:attribute name="merge" default="default" type="defaultable-boolean">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Enables/disables merging for collections when using parent/child beans.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="entry" type="entryType">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A map entry can be an inner bean, ref, value, or collection.
+	The key of the entry is given by the "key" attribute or child element.
+			]]></xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="props">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Props elements differ from map elements in that values must be strings.
+	Props may be empty.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="propsType">
+					<xsd:attribute name="merge" default="default" type="defaultable-boolean">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Enables/disables merging for collections when using parent/child beans.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="key">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A key element can contain an inner bean, ref, value, or collection.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:group ref="collectionElements"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="prop">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	The string value of the property. Note that whitespace is trimmed
+	off to avoid unwanted whitespace caused by typical XML formatting.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType mixed="true">
+			<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+			<xsd:attribute name="key" type="xsd:string" use="required">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The key of the property entry.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:complexType name="propertyType">
+		<xsd:sequence>
+			<xsd:element ref="description" minOccurs="0"/>
+			<xsd:choice minOccurs="0" maxOccurs="1">
+				<xsd:element ref="meta"/>
+				<xsd:element ref="bean"/>
+				<xsd:element ref="ref"/>
+				<xsd:element ref="idref"/>
+				<xsd:element ref="value"/>
+				<xsd:element ref="null"/>
+				<xsd:element ref="array"/>
+				<xsd:element ref="list"/>
+				<xsd:element ref="set"/>
+				<xsd:element ref="map"/>
+				<xsd:element ref="props"/>
+				<xsd:any namespace="##other" processContents="strict"/>
+			</xsd:choice>
+		</xsd:sequence>
+		<xsd:attribute name="name" type="xsd:string" use="required">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The name of the property, following JavaBean naming conventions.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="ref" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<ref bean='...'/>".
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="value" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<value>...</value>" element.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+	<!-- Collection Types -->
+
+	<!-- base type for collections that have (possibly) typed nested values -->
+	<xsd:complexType name="collectionType">
+		<xsd:attribute name="value-type" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation source="java:java.lang.Class"><![CDATA[
+	The default Java type for nested values. Must be a fully qualified
+	class name.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+	<!-- 'list' and 'set' collection type -->
+	<xsd:complexType name="listOrSetType">
+		<xsd:complexContent>
+			<xsd:extension base="collectionType">
+				<xsd:group ref="collectionElements"/>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<!-- 'map' element type -->
+	<xsd:complexType name="mapType">
+		<xsd:complexContent>
+			<xsd:extension base="collectionType">
+				<xsd:sequence>
+					<xsd:element ref="description" minOccurs="0"/>
+					<xsd:choice minOccurs="0" maxOccurs="unbounded">
+						<xsd:element ref="entry"/>
+					</xsd:choice>
+				</xsd:sequence>
+				<xsd:attribute name="key-type" type="xsd:string">
+					<xsd:annotation>
+						<xsd:documentation source="java:java.lang.Class"><![CDATA[
+	The default Java type for nested entry keys. Must be a fully qualified
+	class name.
+						]]></xsd:documentation>
+					</xsd:annotation>
+				</xsd:attribute>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<!-- 'entry' element type -->
+	<xsd:complexType name="entryType">
+		<xsd:sequence>
+			<xsd:element ref="key" minOccurs="0"/>
+			<xsd:group ref="collectionElements"/>
+		</xsd:sequence>
+		<xsd:attribute name="key" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Each map element must specify its key as attribute or as child element.
+	A key attribute is always a String value.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="key-ref" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a to a "key" element with a nested
+	"<ref bean='...'/>".
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="value" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<value>...</value>"
+	element.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="value-ref" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<ref bean='...'/>".
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="value-type" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a 'type' attribute on a nested
+	"<value type='...' >...</value>" element.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+	<!-- 'props' collection type -->
+	<xsd:complexType name="propsType">
+		<xsd:complexContent>
+			<xsd:extension base="collectionType">
+				<xsd:sequence>
+					<xsd:choice minOccurs="0" maxOccurs="unbounded">
+						<xsd:element ref="prop"/>
+					</xsd:choice>
+				</xsd:sequence>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<!-- simple internal types -->
+	<xsd:simpleType name="defaultable-boolean">
+		<xsd:restriction base="xsd:NMTOKEN">
+			<xsd:enumeration value="default"/>
+			<xsd:enumeration value="true"/>
+			<xsd:enumeration value="false"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+
+</xsd:schema>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/UDDI_Publisher.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/UDDI_Publisher.xml b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/UDDI_Publisher.xml
new file mode 100644
index 0000000..0bfd815
--- /dev/null
+++ b/juddiv3-war-repl/src/main/webapp/WEB-INF/classes/RENAME4MARKETING_juddi_custom_install_data/UDDI_Publisher.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ */ -->
+<publisher xmlns="urn:juddi-apache-org:api_v3" authorizedName="uddi">
+  <publisherName>UDDI publisher</publisherName>
+  <isAdmin>false</isAdmin>
+</publisher>
+


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org


[10/12] juddi git commit: JUDDI-919 replication now works with ssl + client-cert authentication. In order to support this, we need to have two different war file (unfortunately). Included with this change set is number of typos in our deployment files (w

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/classes/schemas/jaxrs.xsd
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/classes/schemas/jaxrs.xsd b/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/classes/schemas/jaxrs.xsd
new file mode 100644
index 0000000..928a3d2
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/classes/schemas/jaxrs.xsd
@@ -0,0 +1,169 @@
+<?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.
+-->
+<xsd:schema xmlns="http://cxf.apache.org/jaxrs"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:beans="http://www.springframework.org/schema/beans"
+  xmlns:cxf-beans="http://cxf.apache.org/configuration/beans"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  targetNamespace="http://cxf.apache.org/jaxrs"
+  xmlns:tns="http://cxf.apache.org/jaxrs" 
+  elementFormDefault="qualified"
+  attributeFormDefault="unqualified"  >
+
+  <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans.xsd"/>
+  <xsd:import namespace="http://cxf.apache.org/configuration/beans" schemaLocation="http://cxf.apache.org/schemas/configuration/cxf-beans.xsd"/>
+  
+  <xsd:element name="server">
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base="beans:identifiedType">
+          <xsd:all>
+            <xsd:element name="executor" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="features" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0" />  
+            <xsd:element name="dataBinding" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="invoker" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="serviceFactories" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="properties" type="beans:mapType" minOccurs="0"/>
+            <xsd:element name="serviceBeans" type="xsd:anyType" minOccurs="0"/>            
+            <xsd:element name="modelBeans" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="model" type="model" minOccurs="0"/>
+            <xsd:element name="providers" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="extensionMappings" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="languageMappings" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="schemaLocations" type="schemasType" minOccurs="0"/>
+            <xsd:element name="resourceComparator" type="xsd:anyType" minOccurs="0"/> 
+          </xsd:all>
+          <xsd:attributeGroup ref="cxf-beans:beanAttributes"/>
+          <xsd:attribute name="address" type="xsd:string" />
+          <xsd:attribute name="bus" type="xsd:string" />
+          <xsd:attribute name="serviceClass" type="xsd:string"/>                    
+          <xsd:attribute name="transportId" type="xsd:string"/>
+          <xsd:attribute name="modelRef" type="xsd:string" />
+          <xsd:attribute name="bindingId" type="xsd:string" />          
+          <xsd:attribute name="staticSubresourceResolution" type="xsd:boolean"/>          
+          <xsd:attribute name="beanNames" type="xsd:string"/>
+          <xsd:attribute name="serviceName" type="xsd:QName"/>
+          <xsd:attribute name="docLocation" type="xsd:string"/>
+          <xsd:attribute name="publishedEndpointUrl" type="xsd:string"/>
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name="client">
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base="beans:identifiedType">
+          <xsd:all>
+            <xsd:element name="executor" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="features" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0" />
+            <xsd:element name="dataBinding" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="properties" type="beans:mapType" minOccurs="0"/>
+            <xsd:element name="providers" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="modelBeans" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="model" type="model" minOccurs="0"/>
+            <xsd:element name="headers" type="xsd:anyType" minOccurs="0"/> 
+            <xsd:element name="schemaLocations" type="schemasType" minOccurs="0"/>
+          </xsd:all>
+          <xsd:attributeGroup ref="cxf-beans:beanAttributes"/>
+          <xsd:attribute name="address" type="xsd:string" />
+          <xsd:attribute name="serviceClass" type="xsd:string"/>
+          <xsd:attribute name="inheritHeaders" type="xsd:boolean"/>
+          <xsd:attribute name="bus" type="xsd:string" />
+          <xsd:attribute name="transportId" type="xsd:string"/>
+          <xsd:attribute name="bindingId" type="xsd:string" />
+          <xsd:attribute name="modelRef" type="xsd:string" />
+          <xsd:attribute name="username" type="xsd:string"/>
+          <xsd:attribute name="password" type="xsd:string"/>
+          <xsd:attribute name="serviceName" type="xsd:QName"/>
+          <xsd:attribute name="threadSafe" type="xsd:boolean"/>
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:complexType name="schemasType">
+    <xsd:sequence>
+      <xsd:element name="schemaLocation" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:element name="model" type="tns:model"/>
+  
+  <xsd:complexType name="model">
+    <xsd:sequence>
+      <xsd:element name="resource" minOccurs="0" maxOccurs="unbounded">
+         <xsd:complexType>
+             <xsd:sequence>
+                 <xsd:element name="operation" minOccurs="0" maxOccurs="unbounded">
+                    <xsd:complexType>
+                      <xsd:sequence>
+                         <xsd:element name="param" minOccurs="0" maxOccurs="unbounded">
+                           <xsd:complexType>
+                              <xsd:attribute name="name" type="xsd:string"/>
+                              <xsd:attribute name="type">
+                                 <xsd:simpleType>
+                                   <xsd:restriction base="xsd:string">
+                                     <xsd:enumeration value="PATH"/>
+                                     <xsd:enumeration value="QUERY"/>
+                                     <xsd:enumeration value="MATRIX"/>
+                                     <xsd:enumeration value="HEADER"/>
+                                     <xsd:enumeration value="COOKIE"/>
+                                     <xsd:enumeration value="FORM"/>
+                                     <xsd:enumeration value="CONTEXT"/>
+                                     <xsd:enumeration value="REQUEST_BODY"/>
+                                   </xsd:restriction>
+                                 </xsd:simpleType>
+                              </xsd:attribute>
+                              <xsd:attribute name="defaultValue" type="xsd:string"/>
+                              <xsd:attribute name="encoded" type="xsd:boolean"/>
+                           </xsd:complexType>
+                         </xsd:element>
+                      </xsd:sequence>
+                      <xsd:attribute name="name" type="xsd:string"/>
+                      <xsd:attribute name="path" type="xsd:string"/>
+                      <xsd:attribute name="verb" type="xsd:string"/>
+                      <xsd:attribute name="consumes" type="xsd:string"/>
+                      <xsd:attribute name="produces" type="xsd:string"/>
+                      <xsd:attribute name="oneway" type="xsd:boolean"/>
+                    </xsd:complexType>
+                 </xsd:element>
+             </xsd:sequence>
+             <xsd:attribute name="name" type="xsd:string"/>
+             <xsd:attribute name="path" type="xsd:string"/>
+             <xsd:attribute name="consumes" type="xsd:string"/>
+             <xsd:attribute name="produces" type="xsd:string"/>
+         </xsd:complexType>
+      </xsd:element>   
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:string"/>
+  </xsd:complexType>
+  
+</xsd:schema>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/classes/schemas/jaxws.xsd
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/classes/schemas/jaxws.xsd b/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/classes/schemas/jaxws.xsd
new file mode 100644
index 0000000..08a59cd
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/classes/schemas/jaxws.xsd
@@ -0,0 +1,437 @@
+<?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.
+-->
+<xsd:schema xmlns="http://cxf.apache.org/jaxws"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:beans="http://www.springframework.org/schema/beans"
+  xmlns:cxf-beans="http://cxf.apache.org/configuration/beans"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  targetNamespace="http://cxf.apache.org/jaxws" 
+  elementFormDefault="qualified"
+  attributeFormDefault="unqualified"  >
+
+  <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans.xsd"/>
+  <xsd:import namespace="http://cxf.apache.org/configuration/beans" schemaLocation="http://cxf.apache.org/schemas/configuration/cxf-beans.xsd"/>
+
+  <xsd:element name="endpoint">
+    <xsd:annotation>
+      <xsd:documentation>Configures a JAX-WS server. This element is associated with the org.apache.cxf.jaxws.EndpointImpl object.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base="beans:identifiedType">
+          <xsd:all>
+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures the message binding used by the endpoint. Message bindings are configured using implementations of the 
+                  org.apache.cxf.binding.BindingFactory interface. The SOAP binding is configured using the soap:soapBinding bean.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="dataBinding" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures the data binding used by the endpoint. The class implementing the JAXB data binding is org.apache.cxf.jaxb.JAXBDataBinding.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="executor" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures a Java executor to handle the service.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="features" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of beans that configure advanced features like WS-RM.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="handlers" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of JAX-WS handlers to add to the endpoint's processing chain.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="implementor" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures the bean implementing the service. If this child is used you should not use the implementor attribute.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process incoming requests.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process incoming fault messages.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="invoker" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies an implementation of the org.apache.cxf.service.Invoker interface to be used by the service. The Invoker 
+                  implementation controls how a service is invoked. For example, it controls if each request is handled by a new instance of the 
+                  service implementation or if state is preserved across invocations.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process outgoing responses.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process outgoing fault messages.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="properties" type="beans:mapType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a map of properties that are passed to the endpoint.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="schemaLocations" type="schemasType" minOccurs="0"/>
+            <xsd:element name="serviceFactory" type="xsd:anyType" minOccurs="0"/>
+          </xsd:all>
+          <xsd:attributeGroup ref="cxf-beans:beanAttributes"/>
+          <xsd:attribute name="address" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the HTTP address of the endpoint. This value will override the value specified in the services 
+                contract.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="bindingUri" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the ID of the data binding the service will use. For SOAP bindings the IDs are defined in the JAX-WS 
+                specification. For other data bindings, the ID is the namespace of the WSDL extensions used to configure the
+                binding.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="bus" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the ID of the Spring bean configuring the bus managing the endpoint.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="implementor" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the class implementing the service. You can specify the implementation class using either the class 
+                name or an ID reference to a Spring bean configuring the implementation class. This class needs to be on the 
+                classpath.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="implementorClass" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the name of the class implementing the service. This attribute is useful when you specify the implementor 
+                with the ref bean which is wrapped by using Spring AOP.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="publish" type="xsd:boolean" default="true">
+            <xsd:annotation>
+              <xsd:documentation>Specifies if the service should be automatically published.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="publishedEndpointUrl" type="xsd:string"/>
+          <xsd:attribute name="endpointName" type="xsd:QName">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the value of the service's WSDL port element's name attribute.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="serviceName" type="xsd:QName">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the value of the service's WSDL service element's name attribute.</xsd:documentation>
+            </xsd:annotation>            
+          </xsd:attribute>
+          <xsd:attribute name="transportId" type="xsd:string">
+        	<xsd:annotation>
+              <xsd:documentation>Specifies the transportId that endpoint will use, it will override the transport which is defined in the wsdl.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>  
+          <xsd:attribute name="wsdlLocation" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the location of the endpoint's WSDL contract. The WSDL contract's location is relative to the folder 
+                from which the service is deployed.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name="server">
+    <xsd:annotation>
+      <xsd:documentation>Configures a JAX-WS server. The element is associated with the org.apache.cxf.jaxws.support.JaxWsServerFactoryBean object.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base="beans:identifiedType">
+          <xsd:all>
+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures the message binding used by the endpoint. Message bindings are configured using implementations of the 
+                  org.apache.cxf.binding.BindingFactory interface. The SOAP binding is configured using the soap:soapBinding bean.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="dataBinding" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures the data binding used by the endpoint. The class implementing the JAXB data binding is
+                  org.apache.cxf.jaxb.JAXBDataBinding.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="executor" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures a Java executor to handle the service.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="features" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of beans that configure advanced features like WS-RM.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="handlers" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of JAX-WS handlers to add to the endpoint's processing chain.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process incoming requests.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process incoming fault messages.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="invoker" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies an implementation of the org.apache.cxf.service.Invoker interface to be used by the service. The Invoker 
+                  implementation controls how a service is invoked. For example, it controls if each request is handled by a new instance of the 
+                  service implementation or if state is preserved across invocations.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process outgoing responses.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process outgoing fault messages.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="properties" type="beans:mapType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a map of properties that are passed to the endpoint.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="schemaLocations" type="schemasType" minOccurs="0"/>
+            <xsd:element name="serviceBean" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures the bean implementing the service. If this child is used you should not use the serviceBean attribute.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="serviceFactory" type="xsd:anyType" minOccurs="0"/>
+          </xsd:all>
+          <xsd:attributeGroup ref="cxf-beans:beanAttributes"/>
+          <xsd:attribute name="address" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the HTTP address of the endpoint. This value will override the value specified in the services 
+                contract.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="bindingId" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the ID of the data binding the service will use. For SOAP bindings the IDs are defined in the JAX-WS 
+                specification. For other data bindings, the ID is the namespace of the WSDL extensions used to configure the
+                binding.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="bus" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the ID of the Spring bean configuring the bus managing the endpoint.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="serviceClass" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the name of the class implementing the service. This attribute is useful when you specify the implementor 
+                with the ref bean which is wrapped by using Spring AOP.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="serviceBean" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the class implementing the service. You can specify the implementation class using either the class 
+                name or an ID reference to a Spring bean configuring the implementation class. This class needs to be on the 
+                classpath.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="start" type="xsd:boolean" default="true">
+            <xsd:annotation>
+              <xsd:documentation>Specifies if the service should be automatically published.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+           <xsd:attribute name="transportId" type="xsd:string">
+        	<xsd:annotation>
+              <xsd:documentation>Specifies the transportId that endpoint will use, it will override the transport which is defined in the wsdl.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="wsdlLocation" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the location of the endpoint's WSDL contract. The WSDL contract's location is relative to the folder 
+                from which the service is deployed.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="endpointName" type="xsd:QName">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the value of the service's WSDL port element's name attribute.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="serviceName" type="xsd:QName">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the value of the service's WSDL service element's name attribute.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+
+  <xsd:element name="client">
+    <xsd:annotation>
+      <xsd:documentation>Configures a JAX-WS client.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base="beans:identifiedType">
+          <xsd:all>
+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures the message binding used by the endpoint. Message bindings are configured using implementations of the 
+                  org.apache.cxf.binding.BindingFactory interface. The SOAP binding is configured using the soap:soapBinding bean.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="dataBinding" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures the data binding used by the endpoint. The class implementing the JAXB data binding is org.apache.cxf.jaxb.JAXBDataBinding.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="features" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of beans that configure advanced features like WS-RM.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="handlers" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of JAX-WS handlers to add to the endpoint's processing chain.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process incoming responses.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process incoming fault messages.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process outgoing requests.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process outgoing fault messages.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="properties" type="beans:mapType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a map of properties that are passed to the endpoint.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="conduitSelector" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a org.apache.cxf.endpoint.ConduitSelector implementation. ConduitSelector implementations override the 
+                  strategy used to select the Conduit used to process outgoing messages.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+          </xsd:all>
+          <xsd:attributeGroup ref="cxf-beans:beanAttributes"/>
+          <xsd:attribute name="address" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the HTTP address of the endpoint on which the client makes requests. This value will override the value 
+                specified in the services contract.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="bindingId" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the ID of the data binding the client will use. For SOAP bindings the IDs are defined in the JAX-WS 
+                specification. For other data bindings, the ID is the namespace of the WSDL extensions used to configure the
+                binding.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="bus" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the ID of the Spring bean configuring the bus managing the endpoint.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="endpointName" type="xsd:QName">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the value of the WSDL port element's name attribute for the service on which the client is making 
+                requests.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="password" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies a password that is used for simple username/password authentication.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="serviceClass" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the name of the class implementing the client.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="serviceName" type="xsd:QName">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the value of the WSDL service element's name attribute for the service on which the client is making 
+                requests.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="username" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies a password that is used for simple username/password authentication.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="transportId" type="xsd:string">
+        	<xsd:annotation>
+              <xsd:documentation>Specifies the transportId that endpoint will use, it will override the transport which is defined in the wsdl.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="wsdlLocation" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the location of the endpoint's WSDL contract. The WSDL contract's location is relative to the folder 
+                from which the client is deployed.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:complexType name="schemasType">
+    <xsd:sequence>
+      <xsd:element name="schemaLocation" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+  
+</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/classes/schemas/spring-beans.xsd
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/classes/schemas/spring-beans.xsd b/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/classes/schemas/spring-beans.xsd
new file mode 100644
index 0000000..fe427c2
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/classes/schemas/spring-beans.xsd
@@ -0,0 +1,1203 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/beans"
+		xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+		targetNamespace="http://www.springframework.org/schema/beans">
+
+	<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
+
+	<xsd:annotation>
+		<xsd:documentation><![CDATA[
+	Spring XML Beans Schema, version 3.2
+	Authors: Juergen Hoeller, Rob Harrop, Mark Fisher, Chris Beams
+
+	This defines a simple and consistent way of creating a namespace
+	of JavaBeans objects, managed by a Spring BeanFactory, read by
+	XmlBeanDefinitionReader (with DefaultBeanDefinitionDocumentReader).
+
+	This document type is used by most Spring functionality, including
+	web application contexts, which are based on bean factories.
+
+	Each "bean" element in this document defines a JavaBean.
+	Typically the bean class is specified, along with JavaBean properties
+	and/or constructor arguments.
+
+	A bean instance can be a "singleton" (shared instance) or a "prototype"
+	(independent instance). Further scopes can be provided by extended
+	bean factories, for example in a web environment.
+
+	References among beans are supported, that is, setting a JavaBean property
+	or a constructor argument to refer to another bean in the same factory
+	(or an ancestor factory).
+
+	As alternative to bean references, "inner bean definitions" can be used.
+	Singleton flags of such inner bean definitions are effectively ignored:
+	inner beans are typically anonymous prototypes.
+
+	There is also support for lists, sets, maps, and java.util.Properties
+	as bean property types or constructor argument types.
+		]]></xsd:documentation>
+	</xsd:annotation>
+
+	<!-- base types -->
+	<xsd:complexType name="identifiedType" abstract="true">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	The unique identifier for a bean. The scope of the identifier
+	is the enclosing bean factory.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:attribute name="id" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The unique identifier for a bean. A bean id may not be used more than once
+	within the same <beans> element.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+	<!-- Top-level <beans> tag -->
+	<xsd:element name="beans">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Container for <bean> and other elements, typically the root element in the document.
+	Allows the definition of default values for all nested bean definitions. May itself
+	be nested for the purpose of defining a subset of beans with certain default values or
+	to be registered only when certain profile(s) are active. Any such nested <beans> element
+	must be declared as the last element in the document.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="description" minOccurs="0"/>
+				<xsd:choice minOccurs="0" maxOccurs="unbounded">
+					<xsd:element ref="import"/>
+					<xsd:element ref="alias"/>
+					<xsd:element ref="bean"/>
+					<xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+				</xsd:choice>
+				<xsd:element ref="beans" minOccurs="0" maxOccurs="unbounded"/>
+			</xsd:sequence>
+			<xsd:attribute name="profile" use="optional" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The set of profiles for which this <beans> element should be parsed. Multiple profiles
+	can be separated by spaces, commas, or semi-colons.
+
+	If one or more of the specified profiles are active at time of parsing, the <beans>
+	element will be parsed, and all of its <bean> elements registered, &lt;import&gt;
+	elements followed, etc.  If none of the specified profiles are active at time of
+	parsing, then the entire element and its contents will be ignored.
+
+	If a profile is prefixed with the NOT operator '!', e.g.
+
+		<beans profile="p1,!p2">
+
+	indicates that the <beans> element should be parsed if profile "p1" is active or
+	if profile "p2" is not active.
+
+	Profiles are activated in one of two ways:
+		Programmatic:
+			ConfigurableEnvironment#setActiveProfiles(String...)
+			ConfigurableEnvironment#setDefaultProfiles(String...)
+
+		Properties (typically through -D system properties, environment variables, or
+		servlet context init params):
+			spring.profiles.active=p1,p2
+			spring.profiles.default=p1,p2
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="default-lazy-init" default="default" type="defaultable-boolean">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The default 'lazy-init' value; see the documentation for the
+	'lazy-init' attribute of the 'bean' element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="default-merge" default="default" type="defaultable-boolean">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The default 'merge' value; see the documentation for the
+	'merge' attribute of the various collection elements. The default
+	is 'false'.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="default-autowire" default="default">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The default 'autowire' value; see the documentation for the
+	'autowire' attribute of the 'bean' element. The default is 'default'.
+					]]></xsd:documentation>
+				</xsd:annotation>
+				<xsd:simpleType>
+					<xsd:restriction base="xsd:NMTOKEN">
+						<xsd:enumeration value="default"/>
+						<xsd:enumeration value="no"/>
+						<xsd:enumeration value="byName"/>
+						<xsd:enumeration value="byType"/>
+						<xsd:enumeration value="constructor"/>
+					</xsd:restriction>
+				</xsd:simpleType>
+			</xsd:attribute>
+			<xsd:attribute name="default-autowire-candidates" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	A default bean name pattern for identifying autowire candidates:
+	e.g. "*Service", "data*", "*Service*", "data*Service".
+	Also accepts a comma-separated list of patterns: e.g. "*Service,*Dao".
+	See the documentation for the 'autowire-candidate' attribute of the
+	'bean' element for the semantic details of autowire candidate beans.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="default-init-method" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The default 'init-method' value; see the documentation for the
+	'init-method' attribute of the 'bean' element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="default-destroy-method" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The default 'destroy-method' value; see the documentation for the
+	'destroy-method' attribute of the 'bean' element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:anyAttribute namespace="##other" processContents="lax"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="description">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Contains informative text describing the purpose of the enclosing element.
+	Used primarily for user documentation of XML bean definition documents.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType mixed="true">
+			<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="import">
+		<xsd:annotation>
+			<xsd:documentation source="java:org.springframework.core.io.Resource"><![CDATA[
+	Specifies an XML bean definition resource to import.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:restriction base="xsd:anyType">
+					<xsd:attribute name="resource" type="xsd:string" use="required">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The relative resource location of the XML (bean definition) file to import,
+	for example "myImport.xml" or "includes/myImport.xml" or "../myImport.xml".
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:restriction>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="alias">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Defines an alias for a bean (which can reside in a different definition
+	resource).
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:restriction base="xsd:anyType">
+					<xsd:attribute name="name" type="xsd:string" use="required">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the bean to define an alias for.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="alias" type="xsd:string" use="required">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The alias name to define for the bean.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:restriction>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:group name="beanElements">
+		<xsd:sequence>
+			<xsd:element ref="description" minOccurs="0"/>
+			<xsd:choice minOccurs="0" maxOccurs="unbounded">
+				<xsd:element ref="meta"/>
+				<xsd:element ref="constructor-arg"/>
+				<xsd:element ref="property"/>
+				<xsd:element ref="qualifier"/>
+				<xsd:element ref="lookup-method"/>
+				<xsd:element ref="replaced-method"/>
+				<xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+			</xsd:choice>
+		</xsd:sequence>
+	</xsd:group>
+
+	<xsd:attributeGroup name="beanAttributes">
+		<xsd:attribute name="name" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Can be used to create one or more aliases illegal in an (XML) id.
+	Multiple aliases can be separated by any number of spaces, commas,
+	or semi-colons (or indeed any mixture of the three).
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="class" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation source="java:java.lang.Class"><![CDATA[
+	The fully qualified name of the bean's class, except if it serves only
+	as a parent definition for child bean definitions.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="parent" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The name of the parent bean definition.
+
+	Will use the bean class of the parent if none is specified, but can
+	also override it. In the latter case, the child bean class must be
+	compatible with the parent, i.e. accept the parent's property values
+	and constructor argument values, if any.
+
+	A child bean definition will inherit constructor argument values,
+	property values and method overrides from the parent, with the option
+	to add new values. If init method, destroy method, factory bean and/or
+	factory method are specified, they will override the corresponding
+	parent settings.
+
+	The remaining settings will always be taken from the child definition:
+	depends on, autowire mode, scope, lazy init.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="scope" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The scope of this bean: typically "singleton" (one shared instance,
+	which will be returned by all calls to getBean with the given id), or
+	"prototype" (independent instance resulting from each call to getBean).
+
+	By default, a bean will be a singleton, unless the bean has a parent
+	bean definition in which case it will inherit the parent's scope.
+
+	Singletons are most commonly used, and are ideal for multi-threaded
+	service objects. Further scopes, such as "request" or "session", might
+	be supported by extended bean factories (e.g. in a web environment).
+
+	Inner bean definitions inherit the singleton status of their containing
+	bean definition, unless explicitly specified: The inner bean will be a
+	singleton if the containing bean is a singleton, and a prototype if
+	the containing bean has any other scope.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="abstract" type="xsd:boolean">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Is this bean "abstract", that is, not meant to be instantiated itself
+	but rather just serving as parent for concrete child bean definitions?
+	The default is "false". Specify "true" to tell the bean factory to not
+	try to instantiate that particular bean in any case.
+
+	Note: This attribute will not be inherited by child bean definitions.
+	Hence, it needs to be specified per abstract bean definition.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="lazy-init" default="default" type="defaultable-boolean">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Indicates whether or not this bean is to be lazily initialized.
+	If false, it will be instantiated on startup by bean factories
+	that perform eager initialization of singletons. The default is
+	"false".
+
+	Note: This attribute will not be inherited by child bean definitions.
+	Hence, it needs to be specified per concrete bean definition.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="autowire" default="default">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Controls whether bean properties are "autowired".
+	This is an automagical process in which bean references don't need
+	to be coded explicitly in the XML bean definition file, but rather the
+	Spring container works out dependencies.
+
+	There are 4 modes:
+
+	1. "no"
+	The traditional Spring default. No automagical wiring. Bean references
+	must be defined in the XML file via the <ref/> element (or "ref"
+	attribute). We recommend this in most cases as it makes documentation
+	more explicit.
+
+	Note that this default mode also allows for annotation-driven autowiring,
+	if activated. "no" refers to externally driven autowiring only, not
+	affecting any autowiring demands that the bean class itself expresses.
+
+	2. "byName"
+	Autowiring by property name. If a bean of class Cat exposes a "dog"
+	property, Spring will try to set this to the value of the bean "dog"
+	in the current container. If there is no matching bean by name, nothing
+	special happens.
+
+	3. "byType"
+	Autowiring if there is exactly one bean of the property type in the
+	container. If there is more than one, a fatal error is raised, and
+	you cannot use byType autowiring for that bean. If there is none,
+	nothing special happens.
+
+	4. "constructor"
+	Analogous to "byType" for constructor arguments. If there is not exactly
+	one bean of the constructor argument type in the bean factory, a fatal
+	error is raised.
+
+	Note that explicit dependencies, i.e. "property" and "constructor-arg"
+	elements, always override autowiring.
+
+	Note: This attribute will not be inherited by child bean definitions.
+	Hence, it needs to be specified per concrete bean definition.
+				]]></xsd:documentation>
+			</xsd:annotation>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:NMTOKEN">
+					<xsd:enumeration value="default"/>
+					<xsd:enumeration value="no"/>
+					<xsd:enumeration value="byName"/>
+					<xsd:enumeration value="byType"/>
+					<xsd:enumeration value="constructor"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:attribute>
+		<xsd:attribute name="depends-on" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The names of the beans that this bean depends on being initialized.
+	The bean factory will guarantee that these beans get initialized
+	before this bean.
+
+	Note that dependencies are normally expressed through bean properties
+	or constructor arguments. This property should just be necessary for
+	other kinds of dependencies like statics (*ugh*) or database preparation
+	on startup.
+
+	Note: This attribute will not be inherited by child bean definitions.
+	Hence, it needs to be specified per concrete bean definition.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="autowire-candidate" default="default" type="defaultable-boolean">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Indicates whether or not this bean should be considered when looking
+	for matching candidates to satisfy another bean's autowiring requirements.
+	Note that this does not affect explicit references by name, which will get
+	resolved even if the specified bean is not marked as an autowire candidate.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="primary" type="xsd:boolean">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Specifies that this bean should be given preference when multiple
+	candidates are qualified to autowire a single-valued dependency.
+	If exactly one 'primary' bean exists among the candidates, it
+	will be the autowired value.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="init-method" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The name of the custom initialization method to invoke after setting
+	bean properties. The method must have no arguments, but may throw any
+	exception.
+
+	This is an alternative to implementing Spring's InitializingBean
+	interface or marking a method with the PostConstruct annotation.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="destroy-method" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The name of the custom destroy method to invoke on bean factory shutdown.
+	The method must have no arguments, but may throw any exception.
+
+	This is an alternative to implementing Spring's DisposableBean
+	interface or the standard Java Closeable/AutoCloseable interface,
+	or marking a method with the PreDestroy annotation.
+
+	Note: Only invoked on beans whose lifecycle is under the full
+	control of the factory - which is always the case for singletons,
+	but not guaranteed for any other scope.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="factory-method" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The name of a factory method to use to create this object. Use
+	constructor-arg elements to specify arguments to the factory method,
+	if it takes arguments. Autowiring does not apply to factory methods.
+
+	If the "class" attribute is present, the factory method will be a static
+	method on the class specified by the "class" attribute on this bean
+	definition. Often this will be the same class as that of the constructed
+	object - for example, when the factory method is used as an alternative
+	to a constructor. However, it may be on a different class. In that case,
+	the created object will *not* be of the class specified in the "class"
+	attribute. This is analogous to FactoryBean behavior.
+
+	If the "factory-bean" attribute is present, the "class" attribute is not
+	used, and the factory method will be an instance method on the object
+	returned from a getBean call with the specified bean name. The factory
+	bean may be defined as a singleton or a prototype.
+
+	The factory method can have any number of arguments. Autowiring is not
+	supported. Use indexed constructor-arg elements in conjunction with the
+	factory-method attribute.
+
+	Setter Injection can be used in conjunction with a factory method.
+	Method Injection cannot, as the factory method returns an instance,
+	which will be used when the container creates the bean.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="factory-bean" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Alternative to class attribute for factory-method usage.
+	If this is specified, no class attribute should be used.
+	This must be set to the name of a bean in the current or
+	ancestor factories that contains the relevant factory method.
+	This allows the factory itself to be configured using Dependency
+	Injection, and an instance (rather than static) method to be used.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:anyAttribute namespace="##other" processContents="lax"/>
+	</xsd:attributeGroup>
+
+	<xsd:element name="meta" type="metaType">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Arbitrary metadata attached to a bean definition.
+			]]></xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+
+	<xsd:complexType name="metaType">
+		<xsd:attribute name="key" type="xsd:string" use="required">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The key name of the metadata attribute being defined.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="value" type="xsd:string" use="required">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The value of the metadata attribute being defined (as a simple String).
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+	<xsd:element name="bean">
+		<xsd:annotation>
+			<xsd:documentation source="java:org.springframework.beans.factory.config.BeanDefinition"><![CDATA[
+	Defines a single (usually named) bean.
+
+	A bean definition may contain nested tags for constructor arguments,
+	property values, lookup methods, and replaced methods. Mixing constructor
+	injection and setter injection on the same bean is explicitly supported.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="identifiedType">
+					<xsd:group ref="beanElements"/>
+					<xsd:attributeGroup ref="beanAttributes"/>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="constructor-arg">
+		<xsd:annotation>
+			<xsd:documentation source="java:org.springframework.beans.factory.config.ConstructorArgumentValues">
+				<![CDATA[
+	Bean definitions can specify zero or more constructor arguments.
+	This is an alternative to "autowire constructor".
+	Arguments correspond to either a specific index of the constructor
+	argument list or are supposed to be matched generically by type.
+
+	Note: A single generic argument value will just be used once, rather
+	than potentially matched multiple times (as of Spring 1.1).
+
+	constructor-arg elements are also used in conjunction with the
+	factory-method element to construct beans using static or instance
+	factory methods.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="description" minOccurs="0"/>
+				<xsd:choice minOccurs="0" maxOccurs="1">
+					<xsd:element ref="bean"/>
+					<xsd:element ref="ref"/>
+					<xsd:element ref="idref"/>
+					<xsd:element ref="value"/>
+					<xsd:element ref="null"/>
+					<xsd:element ref="array"/>
+					<xsd:element ref="list"/>
+					<xsd:element ref="set"/>
+					<xsd:element ref="map"/>
+					<xsd:element ref="props"/>
+					<xsd:any namespace="##other" processContents="strict"/>
+				</xsd:choice>
+			</xsd:sequence>
+			<xsd:attribute name="index" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The exact index of the argument in the constructor argument list.
+	Only needed to avoid ambiguities, e.g. in case of 2 arguments of
+	the exact same type.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="type" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The exact type of the constructor argument. Only needed to avoid
+	ambiguities, e.g. in case of 2 single argument constructors
+	that can both be converted from a String.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="name" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The exact name of the argument in the constructor argument list.
+	Only needed to avoid ambiguities, e.g. in case of 2 arguments of
+	the exact same type. Note: This requires debug symbols to be
+	stored in the class file in order to introspect argument names!
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="ref" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<ref bean='...'/>" element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="value" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<value>...<value/>" element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="property" type="propertyType">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Bean definitions can have zero or more properties.
+	Property elements correspond to JavaBean setter methods exposed
+	by the bean classes. Spring supports primitives, references to other
+	beans in the same or related factories, lists, maps and properties.
+			]]></xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="qualifier">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Bean definitions can provide qualifiers to match against annotations
+	on a field or parameter for fine-grained autowire candidate resolution.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="attribute" minOccurs="0" maxOccurs="unbounded"/>
+			</xsd:sequence>
+			<xsd:attribute name="type" type="xsd:string" default="org.springframework.beans.factory.annotation.Qualifier"/>
+			<xsd:attribute name="value" type="xsd:string"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="attribute" type="metaType">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A qualifier element may contain attribute child elements as key-value
+	pairs. These will be available for matching against attributes of a
+	qualifier annotation on an autowired field or parameter if present.
+			]]></xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="lookup-method">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A lookup method causes the IoC container to override the given method
+	and return the bean with the name given in the bean attribute. This is
+	a form of Method Injection. It is particularly useful as an alternative
+	to implementing the BeanFactoryAware interface, in order to be able to
+	make getBean() calls for non-singleton instances at runtime. In this
+	case, Method Injection is a less invasive alternative.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:restriction base="xsd:anyType">
+					<xsd:attribute name="name" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the lookup method. This method must take no arguments.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="bean" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the bean in the current or ancestor factories that
+	the lookup method should resolve to. Often this bean will be a
+	prototype, in which case the lookup method will return a distinct
+	instance on every invocation. This is useful for single-threaded objects.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:restriction>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="replaced-method">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Similar to the lookup method mechanism, the replaced-method element
+	is used to control IoC container method overriding: Method Injection.
+	This mechanism allows the overriding of a method with arbitrary code.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:choice minOccurs="0" maxOccurs="unbounded">
+					<xsd:element ref="arg-type"/>
+				</xsd:choice>
+			</xsd:sequence>
+			<xsd:attribute name="name" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The name of the method whose implementation must be replaced by the
+	IoC container. If this method is not overloaded, there is no need
+	to use arg-type subelements. If this method is overloaded, arg-type
+	subelements must be used for all override definitions for the method.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="replacer" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation source="java:org.springframework.beans.factory.support.MethodReplacer"><![CDATA[
+	Bean name of an implementation of the MethodReplacer interface in the
+	current or ancestor factories. This may be a singleton or prototype
+	bean. If it is a prototype, a new instance will be used for each
+	method replacement. Singleton usage is the norm.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="arg-type">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Identifies an argument for a replaced method in the event of
+	method overloading.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType mixed="true">
+			<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+			<xsd:attribute name="match" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	Specification of the type of an overloaded method argument as a String.
+	For convenience, this may be a substring of the FQN. E.g. all the
+	following would match "java.lang.String":
+	- java.lang.String
+	- String
+	- Str
+
+	As the number of arguments will be checked also, this convenience
+	can often be used to save typing.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="ref">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Defines a reference to another bean in this factory or an external
+	factory (parent or included factory).
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:restriction base="xsd:anyType">
+					<xsd:attribute name="bean" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the referenced bean.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="local" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the referenced bean. The value must be a bean ID and will be
+	checked by the Spring container. This is therefore the preferred technique
+	for referencing beans within the same bean factory XML file.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="parent" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the referenced bean in a parent factory.
+						]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:restriction>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="idref">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	The id of another bean in this factory or an external factory
+	(parent or included factory).
+	While a regular 'value' element could instead be used for the
+	same effect, using idref indicates that the Spring container
+	should check that the value actually corresponds to a bean id.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:restriction base="xsd:anyType">
+					<xsd:attribute name="bean" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the referenced bean.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="local" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the referenced bean. The value must be a bean ID and will be
+	checked by the Spring container. This is therefore the preferred technique
+	for referencing beans within the same bean factory XML file.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:restriction>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="value">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Contains a string representation of a property value.
+	The property may be a string, or may be converted to the required
+	type using the JavaBeans PropertyEditor machinery. This makes it
+	possible for application developers to write custom PropertyEditor
+	implementations that can convert strings to arbitrary target objects.
+
+	Note that this is recommended for simple objects only. Configure
+	more complex objects by populating JavaBean properties with
+	references to other beans.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType mixed="true">
+			<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+			<xsd:attribute name="type" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The exact type that the value should be converted to. Only needed
+	if the type of the target property or constructor argument is
+	too generic: for example, in case of a collection element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="null">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Denotes a Java null value. Necessary because an empty "value" tag
+	will resolve to an empty String, which will not be resolved to a
+	null value unless a special PropertyEditor does so.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType mixed="true">
+			<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<!-- Collection Elements -->
+	<xsd:group name="collectionElements">
+		<xsd:sequence>
+			<xsd:element ref="description" minOccurs="0"/>
+			<xsd:choice minOccurs="0" maxOccurs="unbounded">
+				<xsd:element ref="bean"/>
+				<xsd:element ref="ref"/>
+				<xsd:element ref="idref"/>
+				<xsd:element ref="value"/>
+				<xsd:element ref="null"/>
+				<xsd:element ref="array"/>
+				<xsd:element ref="list"/>
+				<xsd:element ref="set"/>
+				<xsd:element ref="map"/>
+				<xsd:element ref="props"/>
+				<xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+			</xsd:choice>
+		</xsd:sequence>
+	</xsd:group>
+
+	<xsd:element name="array">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	An array can contain multiple inner bean, ref, collection, or value elements.
+	This configuration element will always result in an array, even when being
+	defined e.g. as a value for a map with value type Object.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="listOrSetType">
+					<xsd:attribute name="merge" default="default" type="defaultable-boolean">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Enables/disables merging for collections when using parent/child beans.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="list">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A list can contain multiple inner bean, ref, collection, or value elements.
+	A list can also map to an array type; the necessary conversion is performed
+	automatically.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="listOrSetType">
+					<xsd:attribute name="merge" default="default" type="defaultable-boolean">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Enables/disables merging for collections when using parent/child beans.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="set">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A set can contain multiple inner bean, ref, collection, or value elements.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="listOrSetType">
+					<xsd:attribute name="merge" default="default" type="defaultable-boolean">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Enables/disables merging for collections when using parent/child beans.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="map">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A mapping from a key to an object. Maps may be empty.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="mapType">
+					<xsd:attribute name="merge" default="default" type="defaultable-boolean">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Enables/disables merging for collections when using parent/child beans.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="entry" type="entryType">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A map entry can be an inner bean, ref, value, or collection.
+	The key of the entry is given by the "key" attribute or child element.
+			]]></xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="props">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Props elements differ from map elements in that values must be strings.
+	Props may be empty.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="propsType">
+					<xsd:attribute name="merge" default="default" type="defaultable-boolean">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Enables/disables merging for collections when using parent/child beans.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="key">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A key element can contain an inner bean, ref, value, or collection.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:group ref="collectionElements"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="prop">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	The string value of the property. Note that whitespace is trimmed
+	off to avoid unwanted whitespace caused by typical XML formatting.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType mixed="true">
+			<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+			<xsd:attribute name="key" type="xsd:string" use="required">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The key of the property entry.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:complexType name="propertyType">
+		<xsd:sequence>
+			<xsd:element ref="description" minOccurs="0"/>
+			<xsd:choice minOccurs="0" maxOccurs="1">
+				<xsd:element ref="meta"/>
+				<xsd:element ref="bean"/>
+				<xsd:element ref="ref"/>
+				<xsd:element ref="idref"/>
+				<xsd:element ref="value"/>
+				<xsd:element ref="null"/>
+				<xsd:element ref="array"/>
+				<xsd:element ref="list"/>
+				<xsd:element ref="set"/>
+				<xsd:element ref="map"/>
+				<xsd:element ref="props"/>
+				<xsd:any namespace="##other" processContents="strict"/>
+			</xsd:choice>
+		</xsd:sequence>
+		<xsd:attribute name="name" type="xsd:string" use="required">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The name of the property, following JavaBean naming conventions.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="ref" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<ref bean='...'/>".
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="value" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<value>...</value>" element.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+	<!-- Collection Types -->
+
+	<!-- base type for collections that have (possibly) typed nested values -->
+	<xsd:complexType name="collectionType">
+		<xsd:attribute name="value-type" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation source="java:java.lang.Class"><![CDATA[
+	The default Java type for nested values. Must be a fully qualified
+	class name.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+	<!-- 'list' and 'set' collection type -->
+	<xsd:complexType name="listOrSetType">
+		<xsd:complexContent>
+			<xsd:extension base="collectionType">
+				<xsd:group ref="collectionElements"/>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<!-- 'map' element type -->
+	<xsd:complexType name="mapType">
+		<xsd:complexContent>
+			<xsd:extension base="collectionType">
+				<xsd:sequence>
+					<xsd:element ref="description" minOccurs="0"/>
+					<xsd:choice minOccurs="0" maxOccurs="unbounded">
+						<xsd:element ref="entry"/>
+					</xsd:choice>
+				</xsd:sequence>
+				<xsd:attribute name="key-type" type="xsd:string">
+					<xsd:annotation>
+						<xsd:documentation source="java:java.lang.Class"><![CDATA[
+	The default Java type for nested entry keys. Must be a fully qualified
+	class name.
+						]]></xsd:documentation>
+					</xsd:annotation>
+				</xsd:attribute>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<!-- 'entry' element type -->
+	<xsd:complexType name="entryType">
+		<xsd:sequence>
+			<xsd:element ref="key" minOccurs="0"/>
+			<xsd:group ref="collectionElements"/>
+		</xsd:sequence>
+		<xsd:attribute name="key" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Each map element must specify its key as attribute or as child element.
+	A key attribute is always a String value.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="key-ref" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a to a "key" element with a nested
+	"<ref bean='...'/>".
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="value" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<value>...</value>"
+	element.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="value-ref" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<ref bean='...'/>".
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="value-type" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a 'type' attribute on a nested
+	"<value type='...' >...</value>" element.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+	<!-- 'props' collection type -->
+	<xsd:complexType name="propsType">
+		<xsd:complexContent>
+			<xsd:extension base="collectionType">
+				<xsd:sequence>
+					<xsd:choice minOccurs="0" maxOccurs="unbounded">
+						<xsd:element ref="prop"/>
+					</xsd:choice>
+				</xsd:sequence>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<!-- simple internal types -->
+	<xsd:simpleType name="defaultable-boolean">
+		<xsd:restriction base="xsd:NMTOKEN">
+			<xsd:enumeration value="default"/>
+			<xsd:enumeration value="true"/>
+			<xsd:enumeration value="false"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+
+</xsd:schema>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/web.xml b/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/web.xml
new file mode 100644
index 0000000..7a55cd2
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/web.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+
+<!DOCTYPE web-app
+    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+    "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<!--
+	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.
+-->
+<web-app>
+    <context-param>
+        <param-name>log4jConfigLocation</param-name>
+        <param-value>/WEB-INF/classes/log4j.properties</param-value>
+    </context-param>
+
+    <listener>
+        <!-- this class setups the encryption key for the session-->
+        <listener-class>org.apache.juddi.adminconsole.StartupServlet</listener-class> 
+    </listener>
+
+    <servlet>
+        <servlet-name>RegistryServlet</servlet-name>
+        <display-name>Registry Servlet</display-name>
+        <servlet-class>org.apache.juddi.servlets.RegistryServlet</servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+    <servlet>
+        <servlet-name>UDDIReplicationWS</servlet-name>
+        <servlet-class>org.jboss.wsf.stack.cxf.CXFServletExt</servlet-class>
+        <init-param>
+            <param-name>jboss.ws.endpoint</param-name>
+            <param-value>org.apache.juddi.api.impl.UDDIReplicationImpl</param-value>
+        </init-param>
+    </servlet>
+ 
+    <servlet-mapping>
+        <servlet-name>UDDIReplicationWS</servlet-name>
+        <url-pattern>/services/replication/*</url-pattern>
+    </servlet-mapping>
+ 
+ 
+    <security-constraint>
+        <display-name>jUDDI Replication content</display-name>
+        <web-resource-collection>
+            <web-resource-name>admin</web-resource-name>
+            <url-pattern>/*</url-pattern>
+          
+          
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>replication</role-name>
+        </auth-constraint>
+        <!-- uncomment to require SSL -->
+        <user-data-constraint>
+            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
+        </user-data-constraint>
+      
+    </security-constraint>
+    <login-config> 
+        <auth-method>CLIENT-CERT</auth-method> 
+        <!-- you should consider NOT using BASIC is favor of something more secure, see your web app servers documentation for details -->
+        <realm-name>Apache jUDDI - Make sure you're using HTTPS!</realm-name> 
+    </login-config> 
+    <security-role>
+        <role-name>replication</role-name>
+    </security-role>
+  
+
+</web-app>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/beans.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/beans.xml b/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/beans.xml
new file mode 100644
index 0000000..a797f81
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/beans.xml
@@ -0,0 +1,44 @@
+<?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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans" 
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+       xmlns:jaxws="http://cxf.apache.org/jaxws"
+       xmlns:jaxrs="http://cxf.apache.org/jaxrs"
+       xmlns:util="http://www.springframework.org/schema/util"
+       xsi:schemaLocation="
+  http://www.springframework.org/schema/beans classpath:schemas/spring-beans.xsd
+  http://cxf.apache.org/jaxws  classpath:schemas/jaxws.xsd
+  http://cxf.apache.org/jaxrs classpath:schemas/jaxrs.xsd
+  http://www.springframework.org/schema/util classpath:schemas/spring-util.xsd
+  ">
+ 
+    <import resource="classpath:META-INF/cxf/cxf.xml" />
+    <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
+    <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
+
+
+    <jaxws:endpoint id="replication" implementor="org.apache.juddi.api.impl.UDDIReplicationImpl" address="/replication">
+        <jaxws:properties>
+            <entry key="schema-validation-enabled" value="true"/>
+        </jaxws:properties>
+    </jaxws:endpoint>
+
+
+</beans>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org


[07/12] juddi git commit: JUDDI-919 replication now works with ssl + client-cert authentication. In order to support this, we need to have two different war file (unfortunately). Included with this change set is number of typos in our deployment files (w

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/README.txt
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/README.txt b/juddiv3-war-repl/README.txt
new file mode 100644
index 0000000..d3bc088
--- /dev/null
+++ b/juddiv3-war-repl/README.txt
@@ -0,0 +1,93 @@
+To support our users with different platform configurations we have the following profiles:
+
+
+1. Target platform Tomcat and Derby using OpenJPA and CXF.
+
+Both OpenJPA and CXF are packaged up in the juddiv3.war.
+
+mvn clean package -P openjpa
+
+
+2. Target platform Tomcat and Derby using Hibernate and CXF
+
+Both Hibernate and CXF are packaged up in the juddiv3.war.
+
+mvn clean package -P hibernate
+
+
+3. Target platform JBoss-6.x and HSQL using Hibernate and JBossWS-native
+
+The juddiv3.war relies on Hibernate and JBossWS-native in the appserver.
+
+mvn clean package -P hibernate-jbossws-native
+
+
+4. Target platform JBoss-6.x and HSQL using Hibernate and JBossWS-cxf
+
+The juddiv3.war relies on Hibernate and JBossWS-cxf in the appserver.
+
+mvn clean package -P hibernate-jbossws-cxf
+
+
+5. Target platform Tomcat and Derby using OpenJPA and Apache Axis2 
+
+Both OpenJPA and Apache Axis2 are packaged up in the juddiv3.war.
+
+mvn clean package -P hibernate-jbossws-cxf
+
+6. Target platform JBoss 5 or 6 using OpenJPA and JbossWS-cxf
+
+mvn clean package -P openjpa-jbossws-cxf
+
+
+KNOWN ISSUES
+
+I. 15:14:37,275 SEVERE [RegistryServlet] jUDDI registry could not be started.
+org.apache.commons.configuration.ConfigurationException: java.util.zip.ZipException: 
+error in opening zip file: org.apache.commons.configuration.ConfigurationException: 
+org.apache.commons.configuration.ConfigurationException: java.util.zip.ZipException: 
+error in opening zip file
+
+Workaround: deploy juddiv3.war as a directory (not a zip file). 
+
+
+II. JBoss-5.x 
+Note that configuration 3 and 4 will also run on JBoss-5.x, but you may run into the following:
+ERROR [org.jboss.ws.metadata.wsdl.xmlschema.JBossXSErrorHandler] (main) 
+[domain:http://www.w3.org/TR/xml-schema-1]::[key=src-resolve]::Message=src-resolve: 
+Cannot resolve the name 'ns1:Signature' to a 'element declaration' component.
+
+for which there is the following workaround:
+
+    1. unzip the deployers/jbossws.deployer/jbossws-native-core.jar
+    and add the xmldsig-core-schema.xsd in the schema directory,
+    
+    10293 Fri May 27 14:40:40 EDT 2011 schema/xmldsig-core-schema.xsd
+    
+    2. and edit the
+    
+    META-INF/jbossws-entities.properties
+    
+    by adding a line at the bottom saying:
+    
+    http\://www.w3.org/2000/09/xmldsig#=schema/xmldsig-core-schema.xsd
+
+6. Target platform Wildfy/EAP-6.x running Hibernate and CXF
+
+This deployment uses the hibernate and cxf modules of the appserver. Simply run
+
+mvn clean package -Pjboss7up
+
+and deploy the juddiv3.war to standalone/deployments. 
+
+Note that by default jUDDI is configured to use the 'ExampleDS' H2 datasource, 
+as configured in the web.xml and persistence.xml. Update these files and add your
+ database driver for your database of choice.
+
+
+
+
+
+
+
+

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/context.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/context.xml b/juddiv3-war-repl/context.xml
new file mode 100644
index 0000000..6bfc484
--- /dev/null
+++ b/juddiv3-war-repl/context.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ * 
+ * Licensed 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.
+ */
+ -->
+<Context>
+    <WatchedResource>WEB-INF/web.xml</WatchedResource>
+    <!--  -->
+    <Resource name="jdbc/JuddiDS" auth="Container"
+            type="javax.sql.DataSource" username="" password=""
+            driverClassName="org.apache.derby.jdbc.EmbeddedDriver" 
+            url="jdbc:derby:target/juddi-derby-test-db;create=true"
+            maxActive="8" 
+            />
+    
+    <!-- mysql 
+    <Resource name="jdbc/JuddiDS" auth="Container"
+            type="javax.sql.DataSource" username="root" password=""
+            driverClassName="com.mysql.jdbc.Driver" 
+            url="jdbc:mysql://localhost:3306/juddiv3"
+            maxActive="8" 
+            />
+    -->
+    <!-- postgresql 
+    <Resource name="jdbc/JuddiDS" auth="Container"
+            type="javax.sql.DataSource" username="juddi" password="juddi"
+            driverClassName="org.postgresql.Driver" 
+            url="jdbc:postgresql://localhost:5432/juddi"
+            maxActive="8" 
+            />
+     -->  
+</Context>
+

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/pom.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/pom.xml b/juddiv3-war-repl/pom.xml
new file mode 100644
index 0000000..17234ac
--- /dev/null
+++ b/juddiv3-war-repl/pom.xml
@@ -0,0 +1,527 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- * Copyright 2001-2009 The Apache Software Foundation. * * Licensed 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/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.apache.juddi</groupId>
+		<artifactId>juddi-parent</artifactId>
+		<version>3.3.0-SNAPSHOT</version>
+	</parent>
+	<artifactId>juddiv3-war-repl</artifactId>
+	<packaging>war</packaging>
+	<name>jUDDI Replication Services WAR</name>
+	<url>http://juddi.apache.org</url>
+
+	<dependencies>
+		<dependency>
+			<artifactId>uddi-ws</artifactId>
+			<groupId>org.apache.juddi</groupId>
+			<version>${project.parent.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-logging</groupId>
+			<artifactId>commons-logging</artifactId>
+			<version>1.1.3</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>servlet-api</artifactId>
+			<version>2.5</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>commons-configuration</groupId>
+			<artifactId>commons-configuration</artifactId>
+			<version>1.10</version>
+		</dependency>
+		    <dependency>
+	         <groupId>org.apache.commons</groupId>
+  <artifactId>commons-lang3</artifactId>
+  <version>3.2.1</version>
+			</dependency>
+			<dependency>
+		<groupId>org.json</groupId>
+		<artifactId>json</artifactId>
+		<version>20090211</version>
+	</dependency>
+		<dependency>
+			<groupId>log4j</groupId>
+			<artifactId>log4j</artifactId>
+			<version>1.2.17</version>
+		</dependency>
+	</dependencies>
+	<build>
+		<finalName>juddiv3replication</finalName>
+	</build>
+	<profiles>
+		<!-- the hibernate-jbossws-native profile builds a war for jboss, where 
+			hibernate and jbossws are provided by the appserver -->
+		<profile>
+			<id>hibernate-jbossws-native</id>
+			<activation>
+				<activeByDefault>false</activeByDefault>
+			</activation>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-war-plugin</artifactId>
+						<configuration>
+							<webResources>
+								<resource>
+									<directory>JPA/Hibernate-JBoss</directory>
+								</resource>
+								<resource>
+									<directory>JAX-WS/JBossWS-Native</directory>
+								</resource>
+							</webResources>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+			<dependencies>
+				<dependency>
+					<artifactId>juddi-core</artifactId>
+					<groupId>org.apache.juddi</groupId>
+					<version>${project.version}</version>
+				</dependency>
+				<dependency>
+					<groupId>javax.persistence</groupId>
+					<artifactId>persistence-api</artifactId>
+					<version>1.0</version>
+					<scope>provided</scope>
+				</dependency>
+				<dependency>
+					<groupId>org.hibernate</groupId>
+					<artifactId>hibernate</artifactId>
+					<version>3.2.5.ga</version>
+					<scope>provided</scope>
+				</dependency>
+				<dependency>
+					<groupId>org.hibernate</groupId>
+					<artifactId>hibernate-entitymanager</artifactId>
+					<version>3.3.1.ga</version>
+					<scope>provided</scope>
+				</dependency>
+
+			</dependencies>
+		</profile>
+		<profile>
+			<id>hibernate-jbossws-cxf</id>
+			<activation>
+				<activeByDefault>false</activeByDefault>
+			</activation>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-war-plugin</artifactId>
+						<configuration>
+							<webResources>
+								<resource>
+									<directory>JPA/Hibernate-JBoss</directory>
+								</resource>
+								<resource>
+									<directory>JAX-WS/JBossWS-CXF</directory>
+								</resource>
+							</webResources>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+			<dependencies>
+				<dependency>
+					<artifactId>juddi-core</artifactId>
+					<groupId>org.apache.juddi</groupId>
+					<version>${project.version}</version>
+				</dependency>
+                      		<dependency>
+					<artifactId>juddi-rest-cxf</artifactId>
+					<groupId>org.apache.juddi</groupId>
+					<version>${project.version}</version>
+				</dependency>
+				<dependency>
+					<groupId>javax.persistence</groupId>
+					<artifactId>persistence-api</artifactId>
+					<version>1.0</version>
+					<scope>provided</scope>
+				</dependency>
+				<dependency>
+					<groupId>org.hibernate</groupId>
+					<artifactId>hibernate</artifactId>
+					<version>3.2.5.ga</version>
+					<scope>provided</scope>
+				</dependency>
+				<dependency>
+					<groupId>org.hibernate</groupId>
+					<artifactId>hibernate-entitymanager</artifactId>
+					<version>3.3.1.ga</version>
+					<scope>provided</scope>
+				</dependency>
+				<dependency>
+					<groupId>cglib</groupId>
+					<artifactId>cglib-nodep</artifactId>
+					<version>2.1_3</version>
+					<scope>provided</scope>
+				</dependency>
+			</dependencies>
+		</profile>
+		<profile>
+			<!-- the hibernate profile builds a war for tomcat, with hibernate and 
+				cxf in the war -->
+			<id>hibernate</id>
+			<activation>
+				<activeByDefault>false</activeByDefault>
+			</activation>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-war-plugin</artifactId>
+						<configuration>
+							<webResources>
+								<resource>
+									<directory>JPA/Hibernate</directory>
+								</resource>
+								<resource>
+									<directory>JAX-WS/CXF</directory>
+								</resource>
+							</webResources>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+			<dependencies>
+				<dependency>
+					<artifactId>juddi-core</artifactId>
+					<groupId>org.apache.juddi</groupId>
+					<version>${project.version}</version>
+				</dependency>
+                                <dependency>
+					<artifactId>juddi-rest-cxf</artifactId>
+					<groupId>org.apache.juddi</groupId>
+					<version>${project.version}</version>
+				</dependency>
+				
+				<dependency>
+					<groupId>org.apache.cxf</groupId>
+					<artifactId>cxf-rt-frontend-jaxws</artifactId>
+					<version>${cxf.version}</version>
+				</dependency>
+				<dependency>
+					<groupId>org.apache.cxf</groupId>
+					<artifactId>cxf-rt-frontend-jaxrs</artifactId>
+					<version>${cxf.version}</version>
+				</dependency>
+				<dependency>
+					<groupId>org.apache.cxf</groupId>
+					<artifactId>cxf-rt-transports-http</artifactId>
+					<version>${cxf.version}</version>
+					<exclusions>
+						<exclusion>
+							<groupId>cglib</groupId>
+							<artifactId>cglib</artifactId>
+						</exclusion>
+					</exclusions>
+				</dependency>
+				<dependency>
+					<groupId>org.springframework</groupId>
+					<artifactId>spring-context</artifactId>
+					<version>${springframework.version}</version>
+				</dependency>
+				<dependency>
+					<groupId>org.springframework</groupId>
+					<artifactId>spring-web</artifactId>
+					<version>${springframework.version}</version>
+				</dependency>
+				<dependency>
+					<groupId>org.apache.geronimo.javamail</groupId>
+					<artifactId>geronimo-javamail_1.4_mail</artifactId>
+					<version>1.8.3</version>
+				</dependency>
+			</dependencies>
+		</profile>
+		<profile>
+			<!-- the openjpa profile builds a war for tomcat, with openjpa and cxf 
+				in the war -->
+			<id>openjpa</id>
+			<activation>
+				<activeByDefault>true</activeByDefault>
+			</activation>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-war-plugin</artifactId>
+						<configuration>
+							<webResources>
+								<resource>
+									<directory>JPA/OpenJPA</directory>
+								</resource>
+								<resource>
+									<directory>JAX-WS/CXF</directory>
+								</resource>
+							</webResources>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+			<dependencies>
+				<dependency>
+					<artifactId>juddi-core-openjpa</artifactId>
+					<groupId>org.apache.juddi</groupId>
+					<version>${project.version}</version>
+					<exclusions>
+						<exclusion>
+							<groupId>junit</groupId>
+							<artifactId>junit</artifactId>
+						</exclusion>
+					</exclusions>
+				</dependency>
+                <dependency>
+					<artifactId>juddi-rest-cxf</artifactId>
+					<groupId>org.apache.juddi</groupId>
+					<version>${project.version}</version>
+				</dependency>
+				<dependency>
+					<groupId>org.apache.cxf</groupId>
+					<artifactId>cxf-rt-frontend-jaxws</artifactId>
+					<version>${cxf.version}</version>
+				</dependency>
+				<!--added AO 6/8/2013 support for JSON encoding on REST endpoints -->
+				<dependency>
+					<groupId>org.apache.cxf</groupId>
+					<artifactId>cxf-rt-rs-extension-providers</artifactId>
+					<version>2.7.5</version>
+				</dependency>
+				
+				<dependency>
+					<groupId>org.codehaus.jettison</groupId>
+					<artifactId>jettison</artifactId>
+					<version>1.3.4</version>
+				</dependency>
+				<!--END added AO 6/8/2013 support for JSON encoding on REST endpoints -->
+				<dependency>
+					<groupId>org.apache.cxf</groupId>
+					<artifactId>cxf-rt-frontend-jaxrs</artifactId>
+					<version>${cxf.version}</version>
+				</dependency>
+				<dependency>
+					<groupId>org.apache.cxf</groupId>
+					<artifactId>cxf-rt-transports-http</artifactId>
+					<version>${cxf.version}</version>
+					<exclusions>
+						<exclusion>
+							<groupId>cglib</groupId>
+							<artifactId>cglib</artifactId>
+						</exclusion>
+					</exclusions>
+				</dependency>
+				<dependency>
+					<groupId>org.springframework</groupId>
+					<artifactId>spring-context</artifactId>
+					<version>${springframework.version}</version>
+				</dependency>
+				<dependency>
+					<groupId>org.springframework</groupId>
+					<artifactId>spring-web</artifactId>
+					<version>${springframework.version}</version>
+				</dependency>
+				<dependency>
+					<groupId>org.apache.geronimo.javamail</groupId>
+					<artifactId>geronimo-javamail_1.4_mail</artifactId>
+					<version>1.8.3</version>
+				</dependency>
+			</dependencies>
+		</profile>
+		<profile>
+			<!-- the openjpa-axis2 profile builds a war for tomcat, with openjpa and 
+				axis2 in the war -->
+			<id>axis2</id>
+			<activation>
+				<activeByDefault>false</activeByDefault>
+			</activation>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-war-plugin</artifactId>
+						<configuration>
+							<webResources>
+								<resource>
+									<directory>JPA/OpenJPA</directory>
+								</resource>
+								<resource>
+									<directory>JAX-WS/Axis2</directory>
+								</resource>
+							</webResources>
+						</configuration>
+					</plugin>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-antrun-plugin</artifactId>
+						<version>1.6</version>
+						<executions>
+							<execution>
+								<id>default-cli</id>
+								<configuration>
+									<target name="axis2-servicejars">
+										<dependencyfilesets prefix="mydeps." />
+										<mkdir dir="${basedir}/target/juddiv3/WEB-INF/servicejars" />
+										<copy todir="${basedir}/target/juddiv3/WEB-INF/servicejars">
+											<fileset refid="mydeps.org.apache.juddi:juddi-core-openjpa:jar" />
+										</copy>
+									</target>
+								</configuration>
+								<phase>compile</phase>
+								<goals>
+									<goal>run</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+			<dependencies>
+				<!-- providing this through ant in the servicejars directory -->
+				<dependency>
+					<artifactId>juddi-core-openjpa</artifactId>
+					<groupId>org.apache.juddi</groupId>
+					<version>${project.version}</version>
+					<exclusions>
+						<exclusion>
+							<groupId>junit</groupId>
+							<artifactId>junit</artifactId>
+						</exclusion>
+					</exclusions>
+				</dependency>
+				<!-- and then add the axis2 jars -->
+				<dependency>
+					<groupId>org.apache.axis2</groupId>
+					<artifactId>axis2</artifactId>
+					<version>1.6.2</version>
+				</dependency>
+				<dependency>
+					<groupId>org.apache.axis2</groupId>
+					<artifactId>axis2-jaxws</artifactId>
+					<version>1.6.2</version>
+				</dependency>
+				<dependency>
+					<groupId>org.apache.axis2</groupId>
+					<artifactId>axis2-transport-http</artifactId>
+					<version>1.6.2</version>
+				</dependency>
+				<dependency>
+					<groupId>org.apache.axis2</groupId>
+					<artifactId>axis2-transport-local</artifactId>
+					<version>1.6.2</version>
+				</dependency>
+				<dependency>
+					<groupId>org.apache.xmlbeans</groupId>
+					<artifactId>xmlbeans</artifactId>
+					<version>2.4.0</version>
+				</dependency>
+				<dependency>
+					<groupId>org.apache.geronimo.javamail</groupId>
+					<artifactId>geronimo-javamail_1.4_mail</artifactId>
+					<version>1.8.3</version>
+				</dependency>
+			</dependencies>
+		</profile>
+		<profile>
+            <id>jboss7up</id>
+            <activation>
+                <activeByDefault>false</activeByDefault>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-war-plugin</artifactId>
+                        <version>2.4</version>
+                        <configuration>
+                            <packagingExcludes>
+                                WEB-INF/lib/hibernate*.jar,
+                                WEB-INF/lib/cglib*.jar,
+                                WEB-INF/lib/log4j*.jar,
+                                WEB-INF/lib/stax*.jar,
+                                WEB-INF/lib/commons-log*.jar,
+                                WEB-INF/classes/commons*,
+                                WEB-INF/classes/log*
+                            </packagingExcludes>
+                            <webResources>
+                                <resource>
+                                    <directory>JPA/Hibernate-JBossAS7Up</directory>
+                                </resource>
+                                <resource>
+                                    <directory>JAX-WS/CXF-JBossAS7Up</directory>
+                                </resource>
+                            </webResources>
+                            
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+            <dependencies>
+                <dependency>
+                    <artifactId>juddi-core</artifactId>
+                    <groupId>org.apache.juddi</groupId>
+                    <version>${project.version}</version>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>junit</groupId>
+                            <artifactId>junit</artifactId>
+                        </exclusion>
+                        <exclusion>
+                            <groupId>org.hibernate</groupId>
+                            <artifactId>hibernate-core</artifactId>
+                        </exclusion>
+                        <exclusion>
+                            <groupId>org.hibernate</groupId>
+                            <artifactId>hibernate-entitymanager</artifactId>
+                        </exclusion>
+                        <exclusion>
+                            <groupId>org.hibernate</groupId>
+                            <artifactId>hibernate-jpa</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                <dependency>
+                    <artifactId>juddi-rest-cxf</artifactId>
+                    <groupId>org.apache.juddi</groupId>
+                    <version>${project.version}</version>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>org.apache.cxf</groupId>
+                            <artifactId>cxf-rt-rs-extension-providers</artifactId>
+                        </exclusion>
+                        <exclusion>
+                            <groupId>cglib</groupId>
+                            <artifactId>cglib-nodep</artifactId>
+                        </exclusion>
+                        <exclusion>
+                            <groupId>org.hibernate</groupId>
+                            <artifactId>hibernate-core</artifactId>
+                        </exclusion>
+                        <exclusion>
+                            <groupId>org.hibernate</groupId>
+                            <artifactId>hibernate-entitymanager</artifactId>
+                        </exclusion>
+                        <exclusion>
+                            <groupId>org.hibernate</groupId>
+                            <artifactId>hibernate-jpa</artifactId>
+                        </exclusion>
+                    </exclusions>
+                </dependency>
+                
+            </dependencies>
+        </profile>
+	</profiles>
+</project>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/AES.java
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/AES.java b/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/AES.java
new file mode 100644
index 0000000..d6c4493
--- /dev/null
+++ b/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/AES.java
@@ -0,0 +1,164 @@
+/*
+ * Copyright 2001-2013 The Apache Software Foundation.
+ * 
+ * Licensed 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.juddi.adminconsole;
+
+import java.nio.charset.Charset;
+import javax.crypto.*;
+import javax.crypto.spec.*;
+import org.apache.commons.codec.binary.Base64;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * <summary> This program uses a AES key, retrieves its raw bytes, and then
+ * reinstantiates a AES key from the key bytes.</summary> The reinstantiated key
+ * is used to initialize a AES cipher for encryption and decryption. source :
+ * http://java.sun.com/developer/technicalArticles/Security/AES/AES_v1.html
+ *
+ * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
+ */
+public class AES {
+
+        public static final String logname = "org.apache.juddi.gui";
+        public static final Log log = LogFactory.getLog(logname);
+
+        /**
+         * generates an AES based off of the selected key size
+         *
+         * @param keysize
+         * @return may return null if the key is not of a supported size by the
+         * current jdk
+         */
+        public static String GEN(int keysize) {
+                KeyGenerator kgen;
+                try {
+                        kgen = KeyGenerator.getInstance("AES");
+                        kgen.init(keysize);
+                        SecretKey skey = kgen.generateKey();
+                        byte[] raw = skey.getEncoded();
+                        return new String(Base64.encodeBase64(raw), Charset.defaultCharset());
+                } catch (Exception ex) {
+                        log.fatal("error generating key", ex);
+                }
+                return null;
+        }
+
+        /**
+         * Generate a new AES 256 bit encryption key. Once generated, this key
+         * can be used to replace the default key.
+         *
+         * @return a base64 encoded key, 256 bit
+         */
+        public static String GEN() {
+                return GEN(256);
+        }
+
+        static String EN(String cleartext, String key) throws Exception {
+                byte[] raw =//skey.getEncoded();
+                        Base64.decodeBase64(key.getBytes(Charset.defaultCharset())); //
+                SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
+                // Instantiate the cipher
+                Cipher cipher = Cipher.getInstance("AES");
+                cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
+                byte[] encrypted = cipher.doFinal(cleartext.getBytes());
+                return  new String(Base64.encodeBase64(encrypted), Charset.defaultCharset());
+        }
+
+        static String DE(String ciphertext, String key) throws Exception {
+                byte[] raw =//skey.getEncoded();
+                        Base64.decodeBase64(key.getBytes(Charset.defaultCharset())); //
+                SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
+                Cipher cipher = Cipher.getInstance("AES");
+                cipher.init(Cipher.DECRYPT_MODE, skeySpec);
+                byte[] original = cipher.doFinal(Base64.decodeBase64(ciphertext.getBytes(Charset.defaultCharset())));
+                return new String(original);
+        }
+
+        /**
+         * return true is the supplied key is a valid aes key
+         *
+         * @param key
+         * @return true if the key is valid
+         */
+        public static boolean ValidateKey(String key) {
+                try {
+                        String src = "abcdefghijklmopqrstuvwxyz123567890!@#$%^&*()_+{}|:\">?<,";
+                        String x = EN(src, key);
+                        String y = DE(x, key);
+                        //if the sample text is encryptable and decryptable, and it was actually encrypted
+                        if (y.equals(src) && !x.equals(y)) {
+                                return true;
+                        }
+                        return false;
+                } catch (Exception ex) {
+                        log.info("Key validation failed! "+ ex.getMessage());
+                        log.debug("Key validation failed! "+ ex.getMessage(), ex);
+                        return false;
+                }
+        }
+
+        /**
+         * encrypts a password using AES Requires the Unlimited Strength Crypto
+         * Extensions
+         *
+         * @param clear
+         * @param key
+         * @return a base64 encoded cipher of the clear text using the key
+         */
+        public static String Encrypt(String clear, String key) throws Exception {
+                if ((clear == null || clear.length() == 0)) {
+                        return "";
+                }
+                if (key == null || key.length() == 0) {
+                        log.fatal("The generated encryption key was null or emtpy!");
+                }
+                try {
+                        return AES.EN(clear, key);
+                } catch (Exception ex) {
+                        log.fatal("Cannot encrypt sensitive information! Check to make sure the unlimited strength JCE is installed " + ex.getMessage(), ex);
+                        throw new Exception("Internal Configuration Error, See Log for details. ");
+                }
+                // return "";
+        }
+
+        /**
+         * Decrypts a password or other sensitive data If the parameter is null
+         * or empty, an empty string is returned. If the parameter is not
+         * encrypted or was encrypted using a different key or it fails to
+         * decrypt, the original text is returned.
+         *
+         * @param cipher encrypted text
+         * @param key
+         * @return the decrypted string
+         */
+        public static String Decrypt(String cipher, String key) {
+                if ((cipher == null || cipher.length() == 0)) {
+                        return "";
+                }
+                if (key == null || key.length() == 0) {
+                        log.fatal("The generated encryption key was null or emtpy!");
+                }
+                try {
+                        return AES.DE(cipher, key);
+                } catch (Exception ex) {
+                        log.fatal("trouble decrypting data, check to make sure the unlimited strength JCE is installed. If this error occured during deployment, I'll automatically try a smaller key size. " + ex.getMessage(), ex);
+                }
+                return cipher;
+
+        }
+}

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/CrossSiteRequestForgeryException.java
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/CrossSiteRequestForgeryException.java b/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/CrossSiteRequestForgeryException.java
new file mode 100644
index 0000000..ea9d2f2
--- /dev/null
+++ b/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/CrossSiteRequestForgeryException.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2001-2013 The Apache Software Foundation.
+ * 
+ * Licensed 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.juddi.adminconsole;
+
+/**
+ * Provides a very basic, no stack trace exception, useful for throwing at a browser without revealing any details 
+ * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
+ */
+public class CrossSiteRequestForgeryException extends Exception {
+    //Parameterless Constructor
+/**
+ * CrossSiteRequestForgeryException
+ */
+    public CrossSiteRequestForgeryException() {
+        super(msg, null);
+    }
+
+    /**
+     * Constructor that accepts a message
+     */
+    public CrossSiteRequestForgeryException(String message) {
+        super(msg, null);
+    }
+/**
+ * CrossSiteRequestForgeryException
+ * @param message
+ * @param cause 
+ */
+    public CrossSiteRequestForgeryException(String message, Throwable cause) {
+        super(msg, null);
+    }
+    private static final String msg = "Cross Site Request Forgery";
+
+    @Override
+    public String toString() {
+        return msg;
+    }
+
+    @Override
+    public String getMessage() {
+        return msg;
+    }
+
+    @Override
+    public String getLocalizedMessage() {
+        return msg;
+    }
+
+    @Override
+    public Throwable getCause() {
+        return null;
+    }
+}

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/PostBackConstants.java
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/PostBackConstants.java b/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/PostBackConstants.java
new file mode 100644
index 0000000..0db3c2c
--- /dev/null
+++ b/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/PostBackConstants.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ * 
+ * Licensed 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.juddi.adminconsole;
+
+/**
+ * A collection of constants to use for form postbacks and parsing data from the
+ * browser All fields MUST not contain any characters that could interfer with
+ * the rendering of a webpage or javascript and should thus be escaped sequences
+ * of characters
+ *
+ * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
+ */
+public class PostBackConstants {
+
+    public static final String INSTANCE = "instance";
+    public static final String ACCESSPOINT_TYPE = "accessPointType";
+    public static final String ACCESSPOINT_VALUE = "accessPointValue";
+    @Deprecated
+    public static final String HOSTINGREDIRECTOR = "hostingRedirector";
+    public static final String OVERVIEW = "overviewDoc";
+    public static final String TMODELINSTANCE = "tmodelInstance";
+    public static final String BINDINGTEMPLATE = "bindingTemplate";
+    public static final String BINDINGKEY = "bindingKey";
+    public static final String BUSINESSKEY = "businessKey";
+    public static final String SERVICEKEY = "serviceKey";
+    //public static final String CLICK_TO_EDIT = "Click to edit";
+    public static final String DESCRIPTION = "Description";
+    public static final String DISCOVERYURL = "disco";
+    public static final String PHONE = "Phone";
+    public static final String ADDRESS = "Address";
+    public static final String ADDRESSLINE = "addressLine";
+    public static final String CONTACT_PREFIX = "contact";
+    public static final String NAME = "Name";
+    public static final String LANG = "Lang";
+    public static final String VALUE = "Value";
+    public static final String TYPE = "Type";
+    public static final String EMAIL = "Email";
+    public static final String SORTCODE = "Sortcode";
+    public static final String KEYNAME = "KeyName";
+    public static final String KEYVALUE = "KeyValue";
+    public static final String CATBAG_KEY_REF = "catbagkeyref";
+    public static final String IDENT_KEY_REF = "identbagkeyref";
+    public static final String CATBAG_KEY_REF_GRP = "catbaggrpkeyref";
+    public static final String KEY_REF = "keyref";
+    public static final String TMODEL_DELETED = "isDeleted";
+    
+
+}

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/StartupServlet.java
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/StartupServlet.java b/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/StartupServlet.java
new file mode 100644
index 0000000..c600522
--- /dev/null
+++ b/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/StartupServlet.java
@@ -0,0 +1,131 @@
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ * 
+ * Licensed 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.juddi.adminconsole;
+
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.util.Properties;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.servlet.ServletContextEvent;
+
+/**
+ * This startup servlet's job is to generate an encryption key which will be
+ * used for encrypting cached user credentials in the http session object
+ *
+ * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
+ */
+public class StartupServlet implements javax.servlet.ServletContextListener {
+
+        static final Logger log = Logger.getLogger(StartupServlet.class.getCanonicalName());
+
+        /**
+         * creates a new AES key and stores it to the properties files
+         *
+         * @param sce
+         */
+        public void contextInitialized(ServletContextEvent sce) {
+                log.info("juddi-admin gui startup");
+                FileOutputStream fos = null;
+                try {
+                        //URL resource = sce.getServletContext().getResource("/META-INF/config.properties");
+                        Properties p = new Properties();
+
+                        log.info("Attempting to generate 256 bit AES key");
+                        boolean ok = false;
+                        String key = AES.GEN(256);
+                        if (key == null) {
+                                ok = false;
+                        } else {
+                                if (AES.ValidateKey(key)) {
+                                        log.info("Generation of 256 bit AES key successful");
+                                        ok = true;
+                                } else {
+                                        log.warning("256 bit key validation failed. To use higher key sizes, try installing the Java Cryptographic Extensions (JCE) Unlimited Strength");
+                                }
+                        }
+                        if (!ok) {
+                                log.info("Attempting to generate 128 bit AES key");
+                                key = AES.GEN(128);
+                                if (key == null) {
+                                        log.log(Level.SEVERE, "128 bit key generation failed! user's won't be able to login!");
+                                        return;
+                                } else if (AES.ValidateKey(key)) {
+                                        log.info("Generation of 128 bit AES key successful");
+                                } else {
+                                        log.severe("128 bit key validation failed! giving up, user's won't be able to login! ");
+                                        return;
+
+                                }
+                        }
+
+                        p.put("key", key);
+                        fos = new FileOutputStream(sce.getServletContext().getRealPath("/WEB-INF/config.properties"));
+
+                        log.log(Level.INFO, "Storing key to " + sce.getServletContext().getRealPath("/WEB-INF/config.properties"));
+                        p.store(fos, "No comments");
+                        fos.flush();
+                        fos.close();
+                } catch (Exception ex) {
+                        log.log(Level.WARNING, null, ex);
+                        try {
+                                if (fos != null) {
+                                        fos.close();
+                                }
+                        } catch (Exception e) {
+                        }
+                }
+        }
+
+        /**
+         * does nothing
+         *
+         * @param sce
+         */
+        public void contextDestroyed(ServletContextEvent sce) {
+                FileOutputStream fos = null;
+                try {
+                        log.info("Cleaning up juddi-admin");
+                        Properties p = new Properties();
+                        InputStream is = sce.getServletContext().getResourceAsStream("/WEB-INF/config.properties");
+                        p.load(is);
+                        p.remove("key");
+                        is.close();
+                        fos = new FileOutputStream(sce.getServletContext().getRealPath("/WEB-INF/config.properties"));
+                        p.store(fos, "No comments");
+                        fos.flush();
+                        fos.close();
+                } catch (Exception ex) {
+                        log.log(Level.WARNING, null, ex);
+                        try {
+                                if (fos != null) {
+                                        fos.close();
+                                }
+                        } catch (Exception e) {
+                        }
+                }
+                try {
+                        sce.getServletContext().removeAttribute("username");
+                        sce.getServletContext().removeAttribute("password");
+                        sce.getServletContext().removeAttribute("locale");
+                        sce.getServletContext().removeAttribute("hub");
+                } catch (Exception ex) {
+                        log.log(Level.WARNING, null, ex);
+                }
+
+        }
+}

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/hub/JUDDIRequestsAsXML.java
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/hub/JUDDIRequestsAsXML.java b/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/hub/JUDDIRequestsAsXML.java
new file mode 100644
index 0000000..acfa03c
--- /dev/null
+++ b/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/hub/JUDDIRequestsAsXML.java
@@ -0,0 +1,209 @@
+/*
+ * Copyright 2013 The Apache Software Foundation.
+ *
+ * Licensed 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.juddi.adminconsole.hub;
+
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.util.GregorianCalendar;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.xml.bind.JAXB;
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.juddi.api_v3.AdminSaveBusiness;
+import org.apache.juddi.api_v3.AdminSaveBusinessWrapper;
+import org.apache.juddi.api_v3.AdminSaveSubscriptionRequest;
+import org.apache.juddi.api_v3.AdminSaveTModel;
+import org.apache.juddi.api_v3.AdminSaveTModelWrapper;
+import org.apache.juddi.api_v3.Clerk;
+import org.apache.juddi.api_v3.ClientSubscriptionInfo;
+import org.apache.juddi.api_v3.SaveClientSubscriptionInfo;
+import org.apache.juddi.api_v3.SyncSubscription;
+import org.apache.juddi.config.AppConfig;
+import org.apache.juddi.config.Property;
+import org.apache.juddi.v3.client.UDDIConstants;
+import org.uddi.api_v3.BusinessEntity;
+import org.uddi.api_v3.Contact;
+import org.uddi.api_v3.FindBusiness;
+import org.uddi.api_v3.FindQualifiers;
+import org.uddi.api_v3.Name;
+import org.uddi.api_v3.PersonName;
+import org.uddi.api_v3.TModel;
+import org.uddi.repl_v3.CommunicationGraph;
+import org.uddi.repl_v3.Operator;
+import org.uddi.repl_v3.OperatorStatusType;
+import org.uddi.repl_v3.ReplicationConfiguration;
+import org.uddi.sub_v3.CoveragePeriod;
+import org.uddi.sub_v3.GetSubscriptionResults;
+import org.uddi.sub_v3.Subscription;
+import org.uddi.sub_v3.SubscriptionFilter;
+
+/**
+ * This class generates XML as String objects for UDDI requests. This is used
+ * from the "advanced" web pages
+ *
+ * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
+ */
+public class JUDDIRequestsAsXML {
+
+        private static String PrettyPrintXML(String input) {
+                if (input == null || input.length() == 0) {
+                        return "";
+                }
+                try {
+                        Transformer transformer = TransformerFactory.newInstance().newTransformer();
+                        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+                        transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
+                        //initialize StreamResult with File object to save to file
+                        StreamResult result = new StreamResult(new StringWriter());
+                        StreamSource source = new StreamSource(new StringReader(input.trim()));
+                        transformer.transform(source, result);
+                        String xmlString = result.getWriter().toString();
+                        return (xmlString);
+                } catch (Exception ex) {
+                }
+                return null;
+        }
+
+        public static String getSampleXML(String method) {
+                StringWriter sw = new StringWriter();
+
+                if (method.equalsIgnoreCase("save_ClientSubscriptionInfo")) {
+                        SaveClientSubscriptionInfo obj = new SaveClientSubscriptionInfo();
+                        obj.getClientSubscriptionInfo().add(new ClientSubscriptionInfo());
+                        obj.getClientSubscriptionInfo().get(0).setFromClerk(new Clerk());
+                        obj.getClientSubscriptionInfo().get(0).setToClerk(new Clerk());
+                        obj.getClientSubscriptionInfo().get(0).setSubscriptionKey("key");
+
+                        JAXB.marshal(obj, sw);
+                }
+                if (method.equalsIgnoreCase("invoke_SyncSubscription")) {
+                        SyncSubscription obj = new SyncSubscription();
+                        obj.getGetSubscriptionResultsList().add(new GetSubscriptionResults());
+                        obj.getGetSubscriptionResultsList().get(0).setSubscriptionKey("key");
+                        obj.getGetSubscriptionResultsList().get(0).setCoveragePeriod(new CoveragePeriod());
+                        DatatypeFactory newInstance;
+                        try {
+                                newInstance = DatatypeFactory.newInstance();
+                                obj.getGetSubscriptionResultsList().get(0).getCoveragePeriod().setEndPoint(newInstance.newXMLGregorianCalendar(new GregorianCalendar()));
+                                obj.getGetSubscriptionResultsList().get(0).getCoveragePeriod().setStartPoint(newInstance.newXMLGregorianCalendar(new GregorianCalendar()));
+
+                        } catch (DatatypeConfigurationException ex) {
+                                Logger.getLogger(JUDDIRequestsAsXML.class.getName()).log(Level.SEVERE, null, ex);
+                        }
+                        JAXB.marshal(obj, sw);
+                }
+                if (method.equalsIgnoreCase("admin_SaveBusiness")) {
+                        AdminSaveBusiness obj = new AdminSaveBusiness();
+                        obj.getValues().add(new AdminSaveBusinessWrapper());
+                        obj.getValues().get(0).setPublisherID("username");
+                        obj.getValues().get(0).getBusinessEntity().add(new BusinessEntity());
+                        obj.getValues().get(0).getBusinessEntity().get(0).getName().add(new Name("Business Name", "en"));
+                        JAXB.marshal(obj, sw);
+                }
+                if (method.equalsIgnoreCase("admin_SaveTModel")) {
+                        AdminSaveTModel obj = new AdminSaveTModel();
+                        obj.getValues().add(new AdminSaveTModelWrapper());
+                        obj.getValues().get(0).setPublisherID("username");
+                        obj.getValues().get(0).getTModel().add(new TModel());
+                        obj.getValues().get(0).getTModel().get(0).setName(new Name("TModel Name", "en"));
+                        JAXB.marshal(obj, sw);
+                }
+
+                if (method.equalsIgnoreCase("admin_SaveSubscription")) {
+                        AdminSaveSubscriptionRequest obj = new AdminSaveSubscriptionRequest();
+                        obj.setPublisherOrUsername("username");
+                        obj.getSubscriptions().add(new Subscription());
+                        obj.getSubscriptions().get(0).setSubscriptionFilter(new SubscriptionFilter());
+                        obj.getSubscriptions().get(0).setBrief(Boolean.TRUE);
+                        obj.getSubscriptions().get(0).getSubscriptionFilter().setFindBusiness(new FindBusiness());
+                        obj.getSubscriptions().get(0).getSubscriptionFilter().getFindBusiness().getName().add(new Name(UDDIConstants.WILDCARD, null));
+                        obj.getSubscriptions().get(0).getSubscriptionFilter().getFindBusiness().setFindQualifiers(new FindQualifiers());
+                        obj.getSubscriptions().get(0).getSubscriptionFilter().getFindBusiness().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                        obj.getSubscriptions().get(0).getSubscriptionFilter().getFindBusiness().getFindQualifiers().getFindQualifier().add(UDDIConstants.CASE_INSENSITIVE_MATCH);
+                        //obj.getSubscriptions().get(0).getSubscriptionFilter().getFindBusiness()
+                        JAXB.marshal(obj, sw);
+                }
+
+                if (method.equalsIgnoreCase("set_ReplicationNodes")) {
+                        ReplicationConfiguration replicationConfiguration = new ReplicationConfiguration();
+                        replicationConfiguration.setCommunicationGraph(new CommunicationGraph());
+                        String thisnode = "NODEID";
+                        try {
+                                thisnode = AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID);
+                        } catch (ConfigurationException ex) {
+                                Logger.getLogger(JUDDIRequestsAsXML.class.getName()).log(Level.SEVERE, null, ex);
+                        }
+
+                        replicationConfiguration.getCommunicationGraph().getNode().add(thisnode);
+                        Operator op = new Operator();
+                        op.setOperatorNodeID(thisnode);
+
+                        op.setOperatorStatus(OperatorStatusType.NORMAL);
+                        String url = "http://localhost:8080/juddiv3/services/replication";
+                        try {
+                                url = AppConfig.getConfiguration().getString(Property.DEFAULT_BASE_URL_SECURE) + "/services/replication";
+                        } catch (ConfigurationException ex) {
+                                Logger.getLogger(JUDDIRequestsAsXML.class.getName()).log(Level.SEVERE, null, ex);
+                        }
+                        op.setSoapReplicationURL(url);
+
+                        replicationConfiguration.getOperator().add(op);
+                        replicationConfiguration.setRegistryContact(new ReplicationConfiguration.RegistryContact());
+                        replicationConfiguration.getRegistryContact().setContact(new Contact());
+                        replicationConfiguration.getRegistryContact().getContact().getPersonName().add(new PersonName("UNKNOWN", "en"));
+
+                        JAXB.marshal(replicationConfiguration, sw);
+                }
+
+                return PrettyPrintXML(sw.toString());
+        }
+
+        public static Object getObjectJuddi(String method, String content) {
+                StringReader sr = new StringReader(content);
+
+                if (method.equalsIgnoreCase("save_ClientSubscriptionInfo")) {
+                        return JAXB.unmarshal(sr, SaveClientSubscriptionInfo.class);
+                }
+                if (method.equalsIgnoreCase("invoke_SyncSubscription")) {
+                        return JAXB.unmarshal(sr, SyncSubscription.class);
+                }
+                if (method.equalsIgnoreCase("admin_SaveBusiness")) {
+                        return JAXB.unmarshal(sr, AdminSaveBusiness.class);
+                }
+                if (method.equalsIgnoreCase("admin_SaveTModel")) {
+                        //System.out.println(content);
+                        return JAXB.unmarshal(sr, AdminSaveTModel.class);
+                }
+
+                if (method.equalsIgnoreCase("admin_SaveSubscription")) {
+                        return JAXB.unmarshal(sr, AdminSaveSubscriptionRequest.class);
+                }
+
+                if (method.equalsIgnoreCase("set_ReplicationNodes")) {
+                        return JAXB.unmarshal(sr, ReplicationConfiguration.class);
+                }
+
+                return null;
+        }
+
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org


[06/12] juddi git commit: JUDDI-919 replication now works with ssl + client-cert authentication. In order to support this, we need to have two different war file (unfortunately). Included with this change set is number of typos in our deployment files (w

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/hub/UddiAdminHub.java
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/hub/UddiAdminHub.java b/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/hub/UddiAdminHub.java
new file mode 100644
index 0000000..7edd3a6
--- /dev/null
+++ b/juddiv3-war-repl/src/main/java/org/apache/juddi/adminconsole/hub/UddiAdminHub.java
@@ -0,0 +1,1709 @@
+package org.apache.juddi.adminconsole.hub;
+
+/*
+ * Copyright 2001-2013 The Apache Software Foundation.
+ * 
+ * Licensed 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.
+ *
+ */
+import java.io.InputStream;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.math.BigInteger;
+import java.net.URL;
+import java.rmi.RemoteException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.persistence.EntityManager;
+import javax.persistence.EntityTransaction;
+import javax.persistence.Query;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import javax.xml.bind.JAXB;
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.Holder;
+import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.api_v3.Clerk;
+import org.apache.juddi.api_v3.ClientSubscriptionInfoDetail;
+import org.apache.juddi.api_v3.DeleteClientSubscriptionInfo;
+import org.apache.juddi.api_v3.DeletePublisher;
+import org.apache.juddi.api_v3.GetAllPublisherDetail;
+import org.apache.juddi.api_v3.GetPublisherDetail;
+import org.apache.juddi.api_v3.Node;
+import org.apache.juddi.api_v3.Publisher;
+import org.apache.juddi.api_v3.PublisherDetail;
+import org.apache.juddi.api_v3.SaveClerk;
+import org.apache.juddi.api_v3.SaveClientSubscriptionInfo;
+import org.apache.juddi.api_v3.SaveNode;
+import org.apache.juddi.api_v3.SavePublisher;
+import org.apache.juddi.api_v3.SyncSubscription;
+import org.apache.juddi.api_v3.SyncSubscriptionDetail;
+import org.apache.juddi.v3.client.UDDIConstants;
+import org.apache.juddi.v3.client.config.ClientConfig;
+import org.apache.juddi.v3.client.config.UDDIClient;
+import org.apache.juddi.v3.client.config.UDDINode;
+import org.apache.juddi.v3.client.transport.Transport;
+import org.apache.juddi.v3_service.JUDDIApiPortType;
+import org.apache.juddi.adminconsole.AES;
+import org.apache.juddi.adminconsole.resources.ResourceLoader;
+import org.apache.juddi.api.impl.JUDDIApiImpl;
+import org.apache.juddi.api.impl.UDDIInquiryImpl;
+import org.apache.juddi.api.impl.UDDIPublicationImpl;
+import org.apache.juddi.api.impl.UDDIReplicationImpl;
+import org.apache.juddi.api_v3.AdminSaveBusiness;
+import org.apache.juddi.api_v3.AdminSaveSubscriptionRequest;
+import org.apache.juddi.api_v3.AdminSaveSubscriptionResponse;
+import org.apache.juddi.api_v3.AdminSaveTModel;
+import org.apache.juddi.api_v3.ClerkList;
+import org.apache.juddi.api_v3.ClientSubscriptionInfo;
+import org.apache.juddi.api_v3.DeleteClerk;
+import org.apache.juddi.api_v3.DeleteNode;
+import org.apache.juddi.api_v3.GetEntityHistoryMessageRequest;
+import org.apache.juddi.api_v3.GetEntityHistoryMessageResponse;
+import org.apache.juddi.api_v3.GetFailedReplicationChangeRecordsMessageRequest;
+import org.apache.juddi.api_v3.GetFailedReplicationChangeRecordsMessageResponse;
+import org.apache.juddi.api_v3.NodeList;
+import org.apache.juddi.api_v3.SubscriptionWrapper;
+import org.apache.juddi.config.AppConfig;
+import org.apache.juddi.config.PersistenceManager;
+import org.apache.juddi.config.Property;
+import org.apache.juddi.model.BindingTemplate;
+import org.apache.juddi.subscription.notify.SMTPNotifier;
+import org.uddi.api_v3.AuthToken;
+import org.uddi.api_v3.BusinessDetail;
+import org.uddi.api_v3.BusinessEntity;
+import org.uddi.api_v3.BusinessService;
+import org.uddi.api_v3.DeleteBusiness;
+import org.uddi.api_v3.DeleteTModel;
+import org.uddi.api_v3.DiscardAuthToken;
+import org.uddi.api_v3.DispositionReport;
+import org.uddi.api_v3.FindBusiness;
+import org.uddi.api_v3.FindQualifiers;
+import org.uddi.api_v3.GetAuthToken;
+import org.uddi.api_v3.GetBusinessDetail;
+import org.uddi.api_v3.Name;
+import org.uddi.api_v3.SaveBusiness;
+import org.uddi.repl_v3.ChangeRecordIDType;
+import org.uddi.repl_v3.ChangeRecords;
+import org.uddi.repl_v3.GetChangeRecords;
+import org.uddi.repl_v3.HighWaterMarkVectorType;
+import org.uddi.repl_v3.ReplicationConfiguration;
+import org.uddi.sub_v3.Subscription;
+import org.uddi.sub_v3.SubscriptionResultsList;
+import org.uddi.subr_v3.NotifySubscriptionListener;
+
+import org.uddi.v3_service.DispositionReportFaultMessage;
+import org.uddi.v3_service.UDDISecurityPortType;
+import org.w3c.dom.Document;
+import org.xml.sax.InputSource;
+
+/**
+ * UddiHub - The hub acts as a single point for managing browser to uddi
+ * services. At most 1 instance is allowed per http session. In general, all
+ * methods in the class trigger web service call outs. All callouts also support
+ * expired UDDI tokens and will attempt to reauthenticate and retry the request.
+ *
+ * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
+ */
+public class UddiAdminHub {
+
+        /**
+         * The logger name
+         */
+        public static final String LOGGER_NAME = "org.apache.juddi";
+        transient AuthStyle style = null;
+        Properties properties = null;
+        /**
+         * The Log4j logger. This is also referenced from the Builders class,
+         * thus it is public
+         */
+        public static final Log log = LogFactory.getLog(LOGGER_NAME);
+
+        private UddiAdminHub() throws DatatypeConfigurationException {
+                //    df = DatatypeFactory.newInstance();
+        }
+
+        /**
+         * removes the Hub from the current http session
+         *
+         * @param _session
+         */
+        public static void reset(HttpSession _session) {
+                _session.removeAttribute("hub");
+                // token = null;
+        }
+
+        /**
+         * This kills any authentication tokens, logs the user out and nulls out
+         * all services
+         */
+        public void die() {
+                if (token != null && security != null) {
+                        DiscardAuthToken da = new DiscardAuthToken();
+                        da.setAuthInfo(token);
+                        try {
+                                security.discardAuthToken(da);
+                        } catch (Exception ex) {
+                                HandleException(ex);
+                        }
+                }
+                token = null;
+                security = null;
+                juddi = null;
+        }
+        /**
+         * the name of the 'node' property in the config
+         */
+        public static final String PROP_CONFIG_NODE = "config.props.node";
+        /**
+         *
+         */
+        public static final String PROP_AUTH_TYPE = "config.props.authtype";
+        /**
+         *
+         */
+        public static final String PROP_AUTO_LOGOUT = "config.props.automaticLogouts.enable";
+        /**
+         *
+         */
+        public static final String PROP_AUTO_LOGOUT_TIMER = "config.props.automaticLogouts.duration";
+        /**
+         *
+         */
+        public static final String PROP_PREFIX = "config.props.";
+        /**
+         *
+         *
+         */
+        public static final String PROP_ADMIN_LOCALHOST_ONLY = "config.props.configLocalHostOnly";
+
+        private transient UDDISecurityPortType security = null;
+        private transient JUDDIApiPortType juddi = null;
+        private transient String token = null;
+        private transient HttpSession session;
+        private transient Transport transport = null;
+        private transient ClientConfig clientConfig;
+        private static final long serialVersionUID = 1L;
+        private String nodename = "default";
+        private final String clientName = "juddigui";
+        private boolean WS_Transport = false;
+        private boolean WS_securePorts = false;
+
+        /**
+         * This is the singleton accessor UddiHub. There should be at most 1
+         * instance per HTTP Session (user login)
+         *
+         * @param application
+         * @param _session
+         * @return instance
+         * @throws Exception
+         */
+        public static UddiAdminHub getInstance(ServletContext application, HttpSession _session) throws Exception {
+                Object j = _session.getAttribute("hub");
+                if (j == null) {
+                        UddiAdminHub hub = new UddiAdminHub(application, _session);
+                        _session.setAttribute("hub", hub);
+                        return hub;
+                }
+
+                return (UddiAdminHub) j;
+        }
+        String locale = "en";
+
+        private UddiAdminHub(ServletContext application, HttpSession _session) throws Exception {
+                URL prop = application.getResource("/WEB-INF/config.properties");
+                if (prop == null) {
+                        application.getResource("WEB-INF/config.properties");
+                }
+                if (prop == null) {
+                        throw new Exception("Cannot locate the configuration file.");
+                }
+                session = _session;
+
+                InputStream in = prop.openStream();
+                Properties p = new Properties();
+                p.load(in);
+                in.close();
+                session = _session;
+                properties = p;
+                EnsureConfig();
+        }
+
+        private void EnsureConfig() {
+                if (clientConfig == null) {
+                        try {
+                                UDDIClient client = new UDDIClient();
+
+                                clientConfig = client.getClientConfig();
+                                try {
+                                        style = AuthStyle.valueOf(clientConfig.getConfiguration().getString(PROP_AUTH_TYPE));
+                                } catch (Exception ex) {
+                                        log.warn("'UDDI_AUTH' is not defined in the config (" + PROP_AUTH_TYPE + ")! defaulting to UDDI_AUTH");
+                                        style = AuthStyle.UDDI_AUTH;
+                                }
+
+                                nodename = clientConfig.getConfiguration().getString(PROP_CONFIG_NODE);
+                                if (nodename == null || nodename.equals("")) {
+                                        log.warn("'node' is not defined in the config! defaulting to 'default'");
+                                        nodename = "default";
+                                }
+                                UDDINode uddiNode = clientConfig.getUDDINode(nodename);
+
+                                String clazz = uddiNode.getProxyTransport();
+                                if (clazz.contains("JAXWSTransport")) {
+                                        WS_Transport = true;
+                                }
+
+                                transport = client.getTransport(nodename);
+                                security = transport.getUDDISecurityService();
+                                juddi = transport.getJUDDIApiService();
+                                if (WS_Transport) {
+                                        if (uddiNode.getJuddiApiUrl().toLowerCase().startsWith("https://")
+                                                && (uddiNode.getSecurityUrl() != null && uddiNode.getSecurityUrl().toLowerCase().startsWith("https://"))) {
+                                                WS_securePorts = true;
+                                        }
+                                }
+
+                        } catch (Exception ex) {
+                                HandleException(ex);
+                        }
+                }
+
+        }
+
+        /**
+         * This function provides a basic error handling rutine that will pull
+         * out the true error message in a UDDI fault message, returning
+         * bootstrap stylized html error message
+         *
+         * @param ex
+         * @return
+         */
+        private String HandleException(Exception ex) {
+                if (ex instanceof DispositionReportFaultMessage) {
+                        DispositionReportFaultMessage f = (DispositionReportFaultMessage) ex;
+                        log.error(ex.getMessage() + (f.detail != null && f.detail.getMessage() != null ? StringEscapeUtils.escapeHtml(f.detail.getMessage()) : ""));
+                        log.debug(ex.getMessage(), ex);
+                        return ResourceLoader.GetResource(session, "errors.generic") + " " + StringEscapeUtils.escapeHtml(ex.getMessage()) + " " + (f.detail != null && f.detail.getMessage() != null ? StringEscapeUtils.escapeHtml(f.detail.getMessage()) : "");
+                } else if (ex instanceof RemoteException) {
+                        RemoteException f = (RemoteException) ex;
+                        log.error("RemoteException " + ex.getMessage());
+                        log.debug("RemoteException " + ex.getMessage(), ex);
+                        return ResourceLoader.GetResource(session, "errors.generic") + " " + StringEscapeUtils.escapeHtml(ex.getMessage()) + " " + (f.detail != null && f.detail.getMessage() != null ? StringEscapeUtils.escapeHtml(f.detail.getMessage()) : "");
+                } else if (ex instanceof NullPointerException) {
+                        log.error("NPE! Please report! " + ex.getMessage(), ex);
+                        log.debug("NPE! Please report! " + ex.getMessage(), ex);
+                        return ResourceLoader.GetResource(session, "errors.generic") + " " + StringEscapeUtils.escapeHtml(ex.getMessage());
+                } else {
+                        log.error("Unexpected error " + ex.getMessage(), ex);
+                        //log.debug(ex.getMessage(), ex);
+                        return ResourceLoader.GetResource(session, "errors.generic") + " " + StringEscapeUtils.escapeHtml(ex.getMessage());
+                }
+        }
+
+        /**
+         * returns true if we are using JAXWS transport AND all of the URLs
+         * start with https://
+         *
+         * @return true/false
+         */
+        public boolean isSecure() {
+
+                EnsureConfig();
+                return WS_securePorts;
+        }
+
+        /**
+         * gets a reference to the current juddi client config file. this is a
+         * live instance changes can be stored to disk, usually
+         *
+         * @return client config
+         * @throws ConfigurationException g
+         */
+        public ClientConfig GetJuddiClientConfig() throws ConfigurationException {
+                EnsureConfig();
+                return clientConfig;
+        }
+
+        /**
+         * Handles all API calls to the juddi web service
+         *
+         * @param parameters
+         * @return html formatted status message
+         */
+        public String go(HttpServletRequest parameters) {
+                try {
+                        String action = parameters.getParameter("soapaction");
+                        if (action.equalsIgnoreCase("adminDelete_tmodel")) {
+                                return adminDelete_tmodel(parameters);
+                        } else if (action.equalsIgnoreCase("delete_ClientSubscriptionInfo")) {
+                                return delete_ClientSubscriptionInfo(parameters);
+                        } else if (action.equalsIgnoreCase("delete_publisher")) {
+                                return delete_publisher(parameters);
+                        } else if (action.equalsIgnoreCase("getAllPublisherDetail")) {
+                                return getAllPublisherDetail(parameters);
+                        } else if (action.equalsIgnoreCase("get_publisherDetail")) {
+                                return get_publisherDetail(parameters);
+                        } else if (action.equalsIgnoreCase("invoke_SyncSubscription")) {
+                                return invoke_SyncSubscription(parameters);
+                        } else if (action.equalsIgnoreCase("save_Clerk")) {
+                                return save_Clerk(parameters);
+                        } else if (action.equalsIgnoreCase("save_ClientSubscriptionInfo")) {
+                                return save_ClientSubscriptionInfo(parameters);
+                        } else if (action.equalsIgnoreCase("save_Node")) {
+                                return save_Node(parameters);
+                        } else if (action.equalsIgnoreCase("save_publisher")) {
+                                return save_publisher(parameters);
+                        } else if (action.equalsIgnoreCase("send_EmailTest")) {
+                                return sendTestEmail(parameters);
+                        } else if (action.equalsIgnoreCase("get_AllNodes")) {
+                                return getAllNodes(parameters);
+                        } else if (action.equalsIgnoreCase("get_AllClerks")) {
+                                return getAllClerks(parameters);
+                        } else if (action.equalsIgnoreCase("delete_Node")) {
+                                return deleteNode(parameters);
+                        } else if (action.equalsIgnoreCase("delete_Clerk")) {
+                                return deleteClerk(parameters);
+                        } else if (action.equalsIgnoreCase("admin_DeleteSubscription")) {
+                                return deleteSubscription(parameters);
+                        } else if (action.equalsIgnoreCase("admin_SaveBusiness")) {
+                                return adminSaveBusiness(parameters);
+                        } else if (action.equalsIgnoreCase("admin_SaveTModel")) {
+                                return adminSaveTmodel(parameters);
+                        } else if (action.equalsIgnoreCase("get_AllClientSubscriptionInfo")) {
+                                return getAllClientSubscriptionInfo(parameters);
+                        } else if (action.equalsIgnoreCase("set_ReplicationNodes")) {
+                                return setReplicationConfig(parameters);
+                        } else if (action.equalsIgnoreCase("get_ReplicationNodes")) {
+                                return getReplicationNodes(parameters);
+                        } else if (action.equalsIgnoreCase("admin_SaveSubscription")) {
+                                return adminSaveSubscription(parameters);
+                        } else if (action.equalsIgnoreCase("get_EntityHistory")) {
+                                return getEntityHistory(parameters);
+                        } else if (action.equalsIgnoreCase("change_NodeID")) {
+                                return change_NodeID(parameters);
+                        } else if (action.equalsIgnoreCase("changeRecord")) {
+                                return getChangeRecord(parameters);
+                        } else if (action.equalsIgnoreCase("getFailedReplicationChangeRecords")) {
+                                return getFailedReplicationChangeRecords(parameters);
+                        }
+
+                } catch (Exception ex) {
+                        return "Error!" + HandleException(ex);
+                }
+                return "not yet implemented!";
+        }
+
+        private String save_Clerk(HttpServletRequest parameters) {
+                SaveClerk sc = new SaveClerk();
+                sc.setAuthInfo(GetToken());
+                Clerk c = new Clerk();
+                c.setName(parameters.getParameter("CLERKsetName"));
+                Node node = new Node();
+                node.setClientName(parameters.getParameter("CLERKNODEsetClientName"));
+                node.setCustodyTransferUrl(parameters.getParameter("CLERKNODEsetCustodyTransferUrl"));
+                node.setDescription(parameters.getParameter("CLERKNODEsetDescription"));
+                node.setFactoryInitial(parameters.getParameter("CLERKNODEsetFactoryInitial"));
+                node.setFactoryNamingProvider(parameters.getParameter("CLERKNODEsetFactoryNamingProvider"));
+                node.setFactoryURLPkgs(parameters.getParameter("CLERKNODEsetFactoryURLPkgs"));
+                node.setInquiryUrl(parameters.getParameter("CLERKNODEsetInquiryUrl"));
+                node.setJuddiApiUrl(parameters.getParameter("CLERKNODEsetJuddiApiUrl"));
+                node.setName(parameters.getParameter("CLERKNODEsetName"));
+                node.setProxyTransport(parameters.getParameter("CLERKNODEsetProxyTransport"));
+                node.setPublishUrl(parameters.getParameter("CLERKNODEsetPublishUrl"));
+                node.setReplicationUrl(parameters.getParameter("CLERKNODEsetReplicationUrl"));
+                node.setSecurityUrl(parameters.getParameter("CLERKNODEsetSecurityUrl"));
+                node.setSubscriptionListenerUrl(parameters.getParameter("CLERKNODEsetSubscriptionListenerUrl"));
+                node.setSubscriptionUrl(parameters.getParameter("CLERKNODEsetSubscriptionUrl"));
+                c.setNode(node);
+                c.setPassword(parameters.getParameter("CLERKsetPassword"));
+                c.setPublisher(parameters.getParameter("CLERKsetPublisher"));
+
+                sc.getClerk().add(c);
+                try {
+                        juddi.saveClerk(sc);
+                } catch (Exception ex) {
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                sc.setAuthInfo(GetToken());
+                                try {
+                                        juddi.saveClerk(sc);
+                                } catch (Exception ex1) {
+                                        return "Error!" + HandleException(ex1);
+                                }
+
+                        } else {
+                                return "Error!" + HandleException(ex);
+                        }
+                }
+                return "Success";
+        }
+
+        private String save_Node(HttpServletRequest parameters) {
+                SaveNode sn = new SaveNode();
+                sn.setAuthInfo(GetToken());
+                Node node = new Node();
+                node.setClientName(parameters.getParameter("NODEsetClientName"));
+                node.setCustodyTransferUrl(parameters.getParameter("NODEsetCustodyTransferUrl"));
+                node.setDescription(parameters.getParameter("NODEsetDescription"));
+                node.setFactoryInitial(parameters.getParameter("NODEsetFactoryInitial"));
+                node.setFactoryNamingProvider(parameters.getParameter("NODEsetFactoryNamingProvider"));
+                node.setFactoryURLPkgs(parameters.getParameter("NODEsetFactoryURLPkgs"));
+                node.setInquiryUrl(parameters.getParameter("NODEsetInquiryUrl"));
+                node.setJuddiApiUrl(parameters.getParameter("NODEsetJuddiApiUrl"));
+                node.setName(parameters.getParameter("NODEsetName"));
+                node.setProxyTransport(parameters.getParameter("NODEsetProxyTransport"));
+                node.setPublishUrl(parameters.getParameter("NODEsetPublishUrl"));
+                node.setReplicationUrl(parameters.getParameter("NODEsetReplicationUrl"));
+                node.setSecurityUrl(parameters.getParameter("NODEsetSecurityUrl"));
+                node.setSubscriptionListenerUrl(parameters.getParameter("NODEsetSubscriptionListenerUrl"));
+                node.setSubscriptionUrl(parameters.getParameter("NODEsetSubscriptionUrl"));
+                sn.getNode().add(node);
+
+                try {
+                        juddi.saveNode(sn);
+                } catch (Exception ex) {
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                sn.setAuthInfo(GetToken());
+                                try {
+                                        juddi.saveNode(sn);
+                                } catch (Exception ex1) {
+                                        return "Error!" + HandleException(ex1);
+                                }
+
+                        } else {
+                                return "Error!" + HandleException(ex);
+                        }
+                }
+                return "Success";
+        }
+
+        private String sendTestEmail(HttpServletRequest parameters) {
+                try {
+
+                        String to = parameters.getParameter("send_EmailTestEMAIL");
+                        if (!to.startsWith("mailto:")) {
+                                to = "mailto:" + to;
+                        }
+                        BindingTemplate modellbt = new BindingTemplate("test", null, "endpoint", to, null, null, null, null, null);
+                        org.apache.juddi.subscription.notify.SMTPNotifier smtp = new SMTPNotifier(modellbt);
+                        NotifySubscriptionListener body = new NotifySubscriptionListener();
+
+                        body.setSubscriptionResultsList(new SubscriptionResultsList());
+                        body.getSubscriptionResultsList().setSubscription(new Subscription());
+                        body.getSubscriptionResultsList().getSubscription().setSubscriptionKey("TEST");
+                        smtp.notifySubscriptionListener(body);
+                        return "Success";
+                } catch (Exception ex) {
+                        return "Failure!" + HandleException(ex);
+                }
+        }
+
+        private String getAllNodes(HttpServletRequest parameters) {
+                NodeList allNodes = null;
+                try {
+
+                        allNodes = juddi.getAllNodes(GetToken());
+                } catch (Exception ex) {
+
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                try {
+                                        allNodes = juddi.getAllNodes(GetToken());
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+                try {
+                        return PrettyPrintJaxbObject(allNodes);
+                } catch (Exception ex) {
+                        return HandleException(ex);
+                }
+                
+        }
+
+        private String getAllClerks(HttpServletRequest parameters) {
+                ClerkList allNodes = null;
+                try {
+
+                        allNodes = juddi.getAllClerks(GetToken());
+                } catch (Exception ex) {
+
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                try {
+                                        allNodes = juddi.getAllClerks(GetToken());
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+                 try {
+                        return PrettyPrintJaxbObject(allNodes);
+                } catch (Exception ex) {
+                        return HandleException(ex);
+                }
+        }
+
+        private String getAllClientSubscriptionInfo(HttpServletRequest parameters) {
+                List<SubscriptionWrapper> allClientSubscriptionInfo = null;
+                try {
+
+                        allClientSubscriptionInfo = juddi.getAllClientSubscriptionInfo(GetToken());
+                } catch (Exception ex) {
+
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                try {
+                                        allClientSubscriptionInfo = juddi.getAllClientSubscriptionInfo(GetToken());
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+                 try {
+                        return PrettyPrintJaxbObject(allClientSubscriptionInfo);
+                } catch (Exception ex) {
+                        return HandleException(ex);
+                }
+        }
+
+        private String getReplicationNodes(HttpServletRequest parameters) {
+                ReplicationConfiguration cfg = null;
+                try {
+
+                        cfg = juddi.getReplicationNodes(GetToken());
+                } catch (Exception ex) {
+
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                try {
+                                        cfg = juddi.getReplicationNodes(GetToken());
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+                 try {
+                        return PrettyPrintJaxbObject(cfg);
+                } catch (Exception ex) {
+                        return HandleException(ex);
+                }
+        }
+
+        private String deleteNode(HttpServletRequest parameters) {
+                DeleteNode cfg = new DeleteNode();
+                cfg.setAuthInfo(GetToken());
+                cfg.setNodeID(parameters.getParameter("delete_NodeName"));
+                try {
+
+                        juddi.deleteNode(cfg);
+                } catch (Exception ex) {
+
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                try {
+                                        cfg.setAuthInfo(GetToken());
+                                        juddi.deleteNode(cfg);
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+
+                return "Success";
+        }
+
+        private String deleteSubscription(HttpServletRequest parameters) {
+                List<String> keys = new ArrayList<String>();
+                keys.add(parameters.getParameter("admin_DeleteSubscriptionKey"));
+                try {
+
+                        juddi.adminDeleteSubscription(GetToken(), keys);
+                } catch (Exception ex) {
+
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                try {
+                                        juddi.adminDeleteSubscription(GetToken(), keys);
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+
+                return "Success";
+        }
+
+        private String deleteClerk(HttpServletRequest parameters) {
+                DeleteClerk cfg = new DeleteClerk();
+                cfg.setAuthInfo(GetToken());
+                cfg.setClerkID(parameters.getParameter("delete_ClerkName"));
+                try {
+
+                        juddi.deleteClerk(cfg);
+                } catch (Exception ex) {
+
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                try {
+                                        cfg.setAuthInfo(GetToken());
+                                        juddi.deleteClerk(cfg);
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+
+                return "Success";
+        }
+
+        private String setReplicationConfig(HttpServletRequest parameters) {
+                ReplicationConfiguration cfg = (ReplicationConfiguration) JUDDIRequestsAsXML.getObjectJuddi("set_ReplicationNodes", parameters.getParameter("set_ReplicationNodesXML"));
+                DispositionReport setReplicationNodes = null;
+                try {
+
+                        setReplicationNodes = juddi.setReplicationNodes(GetToken(), cfg);
+                } catch (Exception ex) {
+
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                try {
+                                        setReplicationNodes = juddi.setReplicationNodes(GetToken(), cfg);
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+                 try {
+                        return PrettyPrintJaxbObject(setReplicationNodes);
+                } catch (Exception ex) {
+                        return HandleException(ex);
+                }
+        }
+
+        private String adminSaveBusiness(HttpServletRequest parameters) {
+                //admin_SaveBusiness
+                AdminSaveBusiness cfg = (AdminSaveBusiness) JUDDIRequestsAsXML.getObjectJuddi("admin_SaveBusiness", parameters.getParameter("admin_SaveBusinessXML"));
+                DispositionReport setReplicationNodes = null;
+                try {
+
+                        setReplicationNodes = juddi.adminSaveBusiness(GetToken(), cfg.getValues());
+                } catch (Exception ex) {
+
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                try {
+                                        setReplicationNodes = juddi.adminSaveBusiness(GetToken(), cfg.getValues());
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+                 try {
+                        return PrettyPrintJaxbObject(setReplicationNodes);
+                } catch (Exception ex) {
+                        return HandleException(ex);
+                }
+        }
+
+        private String adminSaveTmodel(HttpServletRequest parameters) {
+                //admin_SaveTModel
+                AdminSaveTModel cfg = (AdminSaveTModel) JUDDIRequestsAsXML.getObjectJuddi("admin_SaveTModel", parameters.getParameter("admin_SaveTModelXML"));
+                //JAXB.marshal(cfg, System.out);
+                DispositionReport setReplicationNodes = null;
+                try {
+
+                        setReplicationNodes = juddi.adminSaveTModel(GetToken(), cfg.getValues());
+                } catch (Exception ex) {
+
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                try {
+                                        setReplicationNodes = juddi.adminSaveTModel(GetToken(), cfg.getValues());
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+                 try {
+                        return PrettyPrintJaxbObject(setReplicationNodes);
+                } catch (Exception ex) {
+                        return HandleException(ex);
+                }
+        }
+
+        private String adminSaveSubscription(HttpServletRequest parameters) {
+                //
+                AdminSaveSubscriptionRequest cfg = (AdminSaveSubscriptionRequest) JUDDIRequestsAsXML.getObjectJuddi("admin_SaveSubscription", parameters.getParameter("admin_SaveSubscriptionXML"));
+
+                Holder<List<Subscription>> holder = new Holder<List<Subscription>>(cfg.getSubscriptions());
+                try {
+
+                        juddi.adminSaveSubscription(GetToken(), cfg.getPublisherOrUsername(), holder);
+                } catch (Exception ex) {
+
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                try {
+                                        juddi.adminSaveSubscription(GetToken(), cfg.getPublisherOrUsername(), holder);
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+                AdminSaveSubscriptionResponse res = new AdminSaveSubscriptionResponse();
+                res.getSubscriptions().addAll(holder.value);
+                 try {
+                        return PrettyPrintJaxbObject(res);
+                } catch (Exception ex) {
+                        return HandleException(ex);
+                }
+        }
+
+        private String getEntityHistory(HttpServletRequest parameters) {
+                GetEntityHistoryMessageRequest sn = new GetEntityHistoryMessageRequest();
+                sn.setAuthInfo(GetToken());
+                sn.setEntityKey(parameters.getParameter("get_EntityHistoryKey"));
+                GetEntityHistoryMessageResponse entityHistory = null;
+                try {
+                        sn.setMaxRecords(Long.parseLong(parameters.getParameter("get_EntityHistoryMaxCount")));
+                        sn.setOffset(Long.parseLong(parameters.getParameter("get_EntityHistoryOffset")));
+                        entityHistory = juddi.getEntityHistory(sn);
+                } catch (Exception ex) {
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                sn.setAuthInfo(GetToken());
+                                try {
+                                        entityHistory = juddi.getEntityHistory(sn);
+                                } catch (Exception ex1) {
+                                        return "Error!" + HandleException(ex1);
+                                }
+
+                        } else {
+                                return "Error!" + HandleException(ex);
+                        }
+                }
+                if (entityHistory == null) {
+                        return "Something went wrong!";
+                }
+                try {
+                        return PrettyPrintJaxbObject(entityHistory);
+                } catch (Exception ex) {
+                        return HandleException(ex);
+                }
+
+        }
+
+        private String change_NodeID(HttpServletRequest parameters) {
+                //check replication config
+
+                EntityManager em = PersistenceManager.getEntityManager();
+                EntityTransaction tx = em.getTransaction();
+
+                try {
+
+                        ReplicationConfiguration replicationNodes = new JUDDIApiImpl().getReplicationNodes(GetToken());
+                        if (replicationNodes.getOperator().size() > 1) {
+                                throw new Exception("Replication is configured with " + replicationNodes.getOperator() + " nodes. Node rename aborted");
+                        }
+                        Configuration configuration = AppConfig.getConfiguration();
+                        //this is going to break a few design rules.
+                        String currentnode = configuration.getString(Property.JUDDI_NODE_ID);
+                        String newnode = parameters.getParameter("change_NodeIDKey");
+                        if (newnode == null) {
+                                throw new Exception("The new node id was not specified");
+                        }
+                        newnode = newnode.trim();
+                        newnode = newnode.toLowerCase();
+                        log.warn("AUDIT - Renaming Node ID from " + currentnode + " to " + newnode);
+
+                        UDDIPublicationImpl pub = new UDDIPublicationImpl();
+                        UDDIInquiryImpl inquire = new UDDIInquiryImpl();
+
+                        GetBusinessDetail gbd = new GetBusinessDetail();
+                        gbd.setAuthInfo(GetToken());
+                        gbd.getBusinessKey().add(newnode);
+                        BusinessDetail businessDetail = null;
+                        try {
+                                businessDetail = inquire.getBusinessDetail(gbd);
+                        } catch (Exception ex) {
+                                //business doesn't exist
+                        }
+                        if (businessDetail == null || businessDetail.getBusinessEntity().isEmpty()) {
+                                //copy the existing Root Node and rekey it with the new key
+                                //incase the destination key generator is valid, we'll abort.
+                                gbd.getBusinessKey().clear();
+                                gbd.getBusinessKey().add(AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ROOT_BUSINESS));
+                                businessDetail = inquire.getBusinessDetail(gbd);
+                                BusinessEntity get = businessDetail.getBusinessEntity().get(0);
+                                get.setBusinessKey(newnode);
+                                get.getSignature().clear();
+                                if (get.getBusinessServices() != null) {
+                                        for (BusinessService bs : get.getBusinessServices().getBusinessService()) {
+                                                bs.setBusinessKey(newnode);
+                                                bs.getSignature().clear();
+                                                //we also need to rekey all of the services and bindings wait do we?
+                                                //bs.setServiceKey(bs.getServiceKey());
+                                        }
+                                }
+                                SaveBusiness sb = new SaveBusiness();
+                                sb.setAuthInfo(GetToken());
+                                sb.getBusinessEntity().add(get);
+                                //if there's something wrong with the new key, this will throw
+                                BusinessDetail saveBusiness = pub.saveBusiness(sb);
+                                newnode = saveBusiness.getBusinessEntity().get(0).getBusinessKey();
+                        }
+
+                        tx.begin();
+                        //rekey all entities with the new node id
+                        Query createQuery = em.createQuery("Update UddiEntity ue set ue.nodeId=:node where ue.nodeId=:oldnode");
+                        createQuery.setParameter("node", newnode);
+                        createQuery.setParameter("oldnode", currentnode);
+                        int records = createQuery.executeUpdate();
+                        //rekey all the existing change records with the new node id
+                        createQuery = em.createQuery("Update ChangeRecord ue set ue.nodeID=:node where ue.nodeID=:oldnode");
+                        createQuery.setParameter("node", newnode);
+                        createQuery.setParameter("oldnode", currentnode);
+                        records += createQuery.executeUpdate();
+
+                        //rekey is_replaced_by references? nah
+                        tx.commit();
+                        try {
+                                DeleteBusiness db = new DeleteBusiness();
+                                db.setAuthInfo(GetToken());
+                                db.getBusinessKey().add(currentnode);
+                                pub.deleteBusiness(db);
+                        } catch (Exception ex) {
+                                log.warn("Node id change error: ", ex);
+                        }
+
+                        //finally update the xml config and resave it
+                        AppConfig.setJuddiProperty(Property.JUDDI_NODE_ID, newnode);
+                        AppConfig.setJuddiProperty(Property.JUDDI_NODE_ROOT_BUSINESS, newnode);
+
+                        return "Sucess, Records update: " + records + " current node id is now " + AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID);
+                } catch (Exception ex) {
+                        return HandleException(ex);
+                } finally {
+                        if (tx.isActive()) {
+                                tx.rollback();
+                        }
+                        em.close();
+                }
+        }
+
+        private String getChangeRecord(HttpServletRequest parameters) {
+                try {
+                        GetChangeRecords req = new GetChangeRecords();
+
+                        req.setRequestingNode(AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID));
+
+                        req.setResponseLimitCount(BigInteger.ONE);
+                        req.setChangesAlreadySeen(new HighWaterMarkVectorType());
+                        req.getChangesAlreadySeen().getHighWaterMark().add(
+                                new ChangeRecordIDType(parameters.getParameter("nodeid"),
+                                        Long.parseLong(parameters.getParameter("recordid"))));
+                        ChangeRecords changeRecords = new UDDIReplicationImpl().getChangeRecords(req);
+                        return PrettyPrintJaxbObject(changeRecords);
+
+                } catch (Exception ex) {
+                        return HandleException(ex);
+                }
+        }
+
+        /**
+         * returns html/xml escaped, pretty printed pre formated xml string
+         *
+         * @param jaxb
+         * @return
+         * @throws Exception
+         */
+        private String PrettyPrintJaxbObject(Object jaxb) throws Exception {
+                DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+                DocumentBuilder db = dbf.newDocumentBuilder();
+                StringWriter sw = new StringWriter();
+                JAXB.marshal(jaxb, sw);
+                InputSource is = new InputSource(new StringReader(sw.toString()));
+
+                Transformer transformer = TransformerFactory.newInstance().newTransformer();
+                transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+                //initialize StreamResult with File object to save to file
+                StreamResult result = new StreamResult(new StringWriter());
+                Document document = db.parse(is);
+                DOMSource source = new DOMSource(document);
+                transformer.transform(source, result);
+                String xmlString = result.getWriter().toString();
+               
+                return "<pre>" + StringEscapeUtils.escapeXml(xmlString) + "</pre>";
+        }
+
+        private String getFailedReplicationChangeRecords(HttpServletRequest parameters) {
+                try {
+
+                        GetFailedReplicationChangeRecordsMessageRequest req = new GetFailedReplicationChangeRecordsMessageRequest();
+                        req.setAuthInfo(GetToken());
+                        req.setMaxRecords(Integer.parseInt(parameters.getParameter("getFailedReplicationChangeRecordsMaxCount")));
+                        req.setOffset(0);
+                        req.setOffset(Integer.parseInt(parameters.getParameter("getFailedReplicationChangeRecordsOffset")));
+                        GetFailedReplicationChangeRecordsMessageResponse failedReplicationChangeRecords = null;
+                        try {
+                                failedReplicationChangeRecords = juddi.getFailedReplicationChangeRecords(req);
+                        } catch (Exception ex) {
+                                if (isExceptionExpiration(ex)) {
+                                        token = null;
+                                        req.setAuthInfo(GetToken());
+                                        try {
+                                                failedReplicationChangeRecords = juddi.getFailedReplicationChangeRecords(req);
+                                        } catch (Exception ex1) {
+                                                return "Error!" + HandleException(ex1);
+                                        }
+
+                                } else {
+                                        return "Error!" + HandleException(ex);
+                                }
+                        }
+
+                        return PrettyPrintJaxbObject(failedReplicationChangeRecords);
+                } catch (Exception ex) {
+                        return HandleException(ex);
+                }
+        }
+
+        public enum AuthStyle {
+
+                /**
+                 * Http
+                 */
+                HTTP,
+                /**
+                 * UDDI Authentication via the Security API
+                 */
+                UDDI_AUTH
+        }
+
+        private String GetToken() {
+                EnsureConfig();
+                if (style != AuthStyle.UDDI_AUTH) {
+                        BindingProvider bp = null;
+                        if (WS_Transport) {
+                                Map<String, Object> context = null;
+                                bp = (BindingProvider) juddi;
+                                context = bp.getRequestContext();
+                                context.put(BindingProvider.USERNAME_PROPERTY, session.getAttribute("username"));
+                                context.put(BindingProvider.USERNAME_PROPERTY, session.getAttribute(AES.Decrypt("password", (String) properties.get("key"))));
+                        }
+                        return null;
+                } else {
+                        if (token != null) {
+                                return token;
+                        }
+                        GetAuthToken req = new GetAuthToken();
+                        if (session.getAttribute("username") != null
+                                && session.getAttribute("password") != null) {
+                                req.setUserID((String) session.getAttribute("username"));
+                                req.setCred(AES.Decrypt((String) session.getAttribute("password"), (String) properties.get("key")));
+                                try {
+                                        AuthToken authToken = security.getAuthToken(req);
+                                        token = authToken.getAuthInfo();
+                                } catch (Exception ex) {
+                                        return HandleException(ex);
+                                }
+                        }
+                }
+                return token;
+        }
+
+        private String delete_publisher(HttpServletRequest parameters) {
+                DeletePublisher sb = new DeletePublisher();
+                sb.setAuthInfo(GetToken());
+                sb.getPublisherId().add(parameters.getParameter("delete_publisherKEY"));
+                try {
+                        juddi.deletePublisher(sb);
+                } catch (Exception ex) {
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                sb.setAuthInfo(GetToken());
+                                try {
+                                        juddi.deletePublisher(sb);
+                                } catch (Exception e) {
+                                        return HandleException(e);
+                                }
+
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+                return "Success";
+        }
+
+        private String getAllPublisherDetail(HttpServletRequest parameters) {
+                StringBuilder ret = new StringBuilder();
+                GetAllPublisherDetail sb = new GetAllPublisherDetail();
+                sb.setAuthInfo(GetToken());
+                PublisherDetail d = null;
+                try {
+                        d = juddi.getAllPublisherDetail(sb);
+                } catch (Exception ex) {
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                sb.setAuthInfo(GetToken());
+                                try {
+                                        d = juddi.getAllPublisherDetail(sb);
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+                if (d != null) {
+                        ret.append("<table class=\"table table-hover\"><tr><th>Name</th><th>Info</th></tr>");
+                        for (int i = 0; i < d.getPublisher().size(); i++) {
+                                ret.append("<tr><td>").append(StringEscapeUtils.escapeHtml(d.getPublisher().get(i).getPublisherName()))
+                                        .append("</td><td>");
+                                ret.append(PrintPublisherDetail(d.getPublisher().get(i)))
+                                        .append("</td></tr>");
+                        }
+                        ret.append("</table>");
+                } else {
+                        ret.append("No data returned");
+                }
+                return ret.toString();
+        }
+
+        private String PrintPublisherDetail(Publisher p) {
+                StringBuilder ret = new StringBuilder();
+
+                ret.append("Authorized Name = ").append(StringEscapeUtils.escapeHtml(p.getAuthorizedName()))
+                        .append("<br>")
+                        .append("Publisher Name = ").append(StringEscapeUtils.escapeHtml(p.getPublisherName()))
+                        .append("<br>")
+                        .append("Email = ")
+                        .append(StringEscapeUtils.escapeHtml(p.getEmailAddress()))
+                        .append("<br>")
+                        .append("Administrator = ")
+                        .append((p.isIsAdmin()))
+                        .append("<br>")
+                        .append("Enabled = ")
+                        .append((p.isIsEnabled()))
+                        .append("<br>")
+                        .append("Max Bindings per = ")
+                        .append(p.getMaxBindingsPerService())
+                        .append("<br>")
+                        .append("Max Businesses = ")
+                        .append(p.getMaxBusinesses())
+                        .append("<br>")
+                        .append("Max Services per = ")
+                        .append(p.getMaxServicePerBusiness())
+                        .append("<br>")
+                        .append("Max tModels = ")
+                        .append(p.getMaxTModels())
+                        .append("");
+                return ret.toString();
+        }
+
+        private String get_publisherDetail(HttpServletRequest parameters) {
+                StringBuilder ret = new StringBuilder();
+                GetPublisherDetail sb = new GetPublisherDetail();
+                sb.getPublisherId().add(parameters.getParameter("get_publisherDetailKEY"));
+                sb.setAuthInfo(GetToken());
+                PublisherDetail d = null;
+                try {
+                        d = juddi.getPublisherDetail(sb);
+                } catch (Exception ex) {
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                sb.setAuthInfo(GetToken());
+                                try {
+                                        d = juddi.getPublisherDetail(sb);
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+                if (d != null) {
+                        ret.append("<table class=\"table table-hover\"><tr><th>Name</th><th>Info</th></tr>");
+                        for (int i = 0; i < d.getPublisher().size(); i++) {
+                                ret.append("<tr><td>").append(StringEscapeUtils.escapeHtml(d.getPublisher().get(i).getPublisherName()))
+                                        .append("</td><td>");
+                                ret.append(PrintPublisherDetail(d.getPublisher().get(i)))
+                                        .append("</td></tr>");
+                        }
+                        ret.append("</table>");
+                } else {
+                        ret.append("No data returned");
+                }
+                return ret.toString();
+        }
+
+        private String invoke_SyncSubscription(HttpServletRequest parameters) {
+                StringBuilder ret = new StringBuilder();
+                SyncSubscription sb = new SyncSubscription();
+
+                SyncSubscriptionDetail d = null;
+                try {
+                        StringReader sr = new StringReader(parameters.getParameter("invoke_SyncSubscriptionXML").trim());
+                        sb = (JAXB.unmarshal(sr, SyncSubscription.class));
+                        sb.setAuthInfo(GetToken());
+                        d = juddi.invokeSyncSubscription(sb);
+                } catch (Exception ex) {
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                sb.setAuthInfo(GetToken());
+                                try {
+                                        d = juddi.invokeSyncSubscription(sb);
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+                if (d != null) {
+                        try {
+                                ret.append(PrettyPrintJaxbObject(d));
+                        } catch (Exception ex) {
+                                return HandleException(ex);
+                        }
+
+                } else {
+                        ret.append("No data returned");
+                }
+                return ret.toString();
+        }
+
+        private static String PrettyPrintXML(String input) {
+                try {
+                        Transformer transformer = TransformerFactory.newInstance().newTransformer();
+                        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+//initialize StreamResult with File object to save to file
+                        StreamResult result = new StreamResult(new StringWriter());
+                        StreamSource source = new StreamSource(new StringReader(input));
+                        transformer.transform(source, result);
+                        String xmlString = result.getWriter().toString();
+                        return (xmlString);
+                } catch (Exception ex) {
+                }
+                return null;
+        }
+
+        public  String getSampleSave_ClientSubscriptionInfo() {
+                SaveClientSubscriptionInfo x = new SaveClientSubscriptionInfo();
+                x.setAuthInfo("");
+                x.getClientSubscriptionInfo().add(new ClientSubscriptionInfo());
+                x.getClientSubscriptionInfo().get(0).setFromClerk(new Clerk());
+                x.getClientSubscriptionInfo().get(0).setToClerk(new Clerk());
+                x.getClientSubscriptionInfo().get(0).setSubscriptionKey("subscription key");
+                x.getClientSubscriptionInfo().get(0).setLastModified(null);
+                x.getClientSubscriptionInfo().get(0).setLastNotified(null);
+                x.getClientSubscriptionInfo().get(0).getFromClerk().setName("ClerkName");
+                x.getClientSubscriptionInfo().get(0).getFromClerk().setPublisher("username");
+                x.getClientSubscriptionInfo().get(0).getFromClerk().setPassword("password");
+                x.getClientSubscriptionInfo().get(0).getFromClerk().setNode(new Node());
+                x.getClientSubscriptionInfo().get(0).getFromClerk().getNode().setClientName("clientname");
+                x.getClientSubscriptionInfo().get(0).getFromClerk().getNode().setName("nodename");
+                x.getClientSubscriptionInfo().get(0).getFromClerk().getNode().setDescription("description");
+                x.getClientSubscriptionInfo().get(0).getFromClerk().getNode().setInquiryUrl("http://localhost:8080/juddiv3/services/inquiry");
+                x.getClientSubscriptionInfo().get(0).getFromClerk().getNode().setPublishUrl("http://localhost:8080/juddiv3/services/publish");
+                x.getClientSubscriptionInfo().get(0).getFromClerk().getNode().setCustodyTransferUrl("http://localhost:8080/juddiv3/services/custody-transfer");
+                x.getClientSubscriptionInfo().get(0).getFromClerk().getNode().setSubscriptionUrl("http://localhost:8080/juddiv3/services/subscription");
+                x.getClientSubscriptionInfo().get(0).getFromClerk().getNode().setSubscriptionListenerUrl("http://localhost:8080/juddiv3/services/subscription-listener");
+                x.getClientSubscriptionInfo().get(0).getFromClerk().getNode().setJuddiApiUrl("http://localhost:8080/juddiv3/services/juddi-api");
+                x.getClientSubscriptionInfo().get(0).getFromClerk().getNode().setReplicationUrl("http://localhost:8080/juddiv3/services/replication");
+
+                x.getClientSubscriptionInfo().get(0).getToClerk().setName("ClerkName");
+                x.getClientSubscriptionInfo().get(0).getToClerk().setPublisher("username");
+                x.getClientSubscriptionInfo().get(0).getToClerk().setPassword("password");
+                x.getClientSubscriptionInfo().get(0).getToClerk().setNode(new Node());
+                x.getClientSubscriptionInfo().get(0).getToClerk().getNode().setClientName("clientname");
+                x.getClientSubscriptionInfo().get(0).getToClerk().getNode().setName("nodename");
+                x.getClientSubscriptionInfo().get(0).getToClerk().getNode().setDescription("description");
+                x.getClientSubscriptionInfo().get(0).getToClerk().getNode().setInquiryUrl("http://localhost:8080/juddiv3/services/inquiry");
+                x.getClientSubscriptionInfo().get(0).getToClerk().getNode().setPublishUrl("http://localhost:8080/juddiv3/services/publish");
+                x.getClientSubscriptionInfo().get(0).getToClerk().getNode().setCustodyTransferUrl("http://localhost:8080/juddiv3/services/custody-transfer");
+                x.getClientSubscriptionInfo().get(0).getToClerk().getNode().setSubscriptionUrl("http://localhost:8080/juddiv3/services/subscription");
+                x.getClientSubscriptionInfo().get(0).getToClerk().getNode().setSubscriptionListenerUrl("http://localhost:8080/juddiv3/services/subscription-listener");
+                x.getClientSubscriptionInfo().get(0).getToClerk().getNode().setJuddiApiUrl("http://localhost:8080/juddiv3/services/juddi-api");
+                x.getClientSubscriptionInfo().get(0).getToClerk().getNode().setReplicationUrl("http://localhost:8080/juddiv3/services/replication");
+                StringWriter sw = new StringWriter();
+                JAXB.marshal(x, sw);
+                return sw.toString();
+        }
+
+        private String save_ClientSubscriptionInfo(HttpServletRequest parameters) {
+                StringBuilder ret = new StringBuilder();
+                SaveClientSubscriptionInfo sb = new SaveClientSubscriptionInfo();
+
+                if (parameters.getParameter("ClientSubscriptionInfoDetailXML") == null) {
+                        return "No input!";
+                }
+                ClientSubscriptionInfoDetail d = null;
+                try {
+                        StringReader sr = new StringReader(parameters.getParameter("ClientSubscriptionInfoDetailXML").trim());
+                        sb = (JAXB.unmarshal(sr, SaveClientSubscriptionInfo.class));
+                        sb.setAuthInfo(GetToken());
+                        d = juddi.saveClientSubscriptionInfo(sb);
+                } catch (Exception ex) {
+                        if (ex instanceof DispositionReportFaultMessage) {
+                                DispositionReportFaultMessage f = (DispositionReportFaultMessage) ex;
+                                if (f.getFaultInfo().countainsErrorCode(DispositionReport.E_AUTH_TOKEN_EXPIRED)) {
+                                        token = null;
+                                        sb.setAuthInfo(GetToken());
+                                        try {
+                                                d = juddi.saveClientSubscriptionInfo(sb);
+                                        } catch (Exception ex1) {
+                                                return HandleException(ex1);
+                                        }
+                                }
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+                if (d != null) {
+                        try {
+                                ret.append(PrettyPrintJaxbObject(d));
+                        } catch (Exception ex) {
+                                return HandleException(ex);
+                        }
+
+                } else {
+                        ret.append("No data returned");
+                }
+                return ret.toString();
+        }
+
+        /**
+         * return true if the word expire is in the exception or the UDDI error
+         * code representing an expired token
+         *
+         * @param ex
+         * @return r
+         */
+        public static boolean isExceptionExpiration(Exception ex) {
+                if (ex == null) {
+                        return false;
+                }
+                if (ex instanceof DispositionReportFaultMessage) {
+                        DispositionReportFaultMessage f = (DispositionReportFaultMessage) ex;
+                        if (f.getFaultInfo().countainsErrorCode(DispositionReport.E_AUTH_TOKEN_EXPIRED) || ex.getMessage().contains(DispositionReport.E_AUTH_TOKEN_EXPIRED) || ex.getMessage().toLowerCase().contains("expired")) {
+                                return true;
+                        }
+                }
+
+                if (ex.getMessage() == null) {
+                        return false;
+                }
+                if (ex.getMessage().toLowerCase().contains("expire")) {
+                        return true;
+                }
+
+                if (ex.getMessage().toLowerCase().contains(DispositionReport.E_AUTH_TOKEN_EXPIRED.toLowerCase())) {
+                        return true;
+                }
+                if (ex.getLocalizedMessage() == null) {
+                        return false;
+                }
+                if (ex.getLocalizedMessage().toLowerCase().contains("expire")) {
+                        return true;
+                }
+                return false;
+        }
+
+        private String save_publisher(HttpServletRequest parameters) {
+
+                SavePublisher sb = new SavePublisher();
+                Publisher p = new Publisher();
+                p.setAuthorizedName(parameters.getParameter("savePublisherAuthorizedName"));
+                p.setPublisherName(parameters.getParameter("savePublisherNAME"));
+                p.setEmailAddress(parameters.getParameter("savePublisherEMAIL"));
+                try {
+                        p.setIsAdmin(Boolean.parseBoolean(parameters.getParameter("savePublisherIsAdmin")));
+                } catch (Exception ex) {
+                }
+                try {
+                        p.setIsEnabled(Boolean.parseBoolean(parameters.getParameter("savePublisherIsEnabled")));
+                } catch (Exception ex) {
+                }
+
+                PublisherDetail d = null;
+                sb.setAuthInfo(GetToken());
+                try {
+                        if (parameters.getParameter("savePublisherMaxBindings") != null) {
+                                p.setMaxBindingsPerService(Integer.parseInt(parameters.getParameter("savePublisherMaxBindings")));
+                        }
+                } catch (Exception ex) {
+                }
+                try {
+                        if (parameters.getParameter("savePublisherMaxServices") != null) {
+                                p.setMaxServicePerBusiness(Integer.parseInt(parameters.getParameter("savePublisherMaxServices")));
+                        }
+                } catch (Exception ex) {
+                }
+                try {
+                        if (parameters.getParameter("savePublisherMaxBusiness") != null) {
+                                p.setMaxBusinesses(Integer.parseInt(parameters.getParameter("savePublisherMaxBusiness")));
+                        }
+                } catch (Exception ex) {
+                }
+                try {
+                        if (parameters.getParameter("savePublisherMaxTModels") != null) {
+                                p.setMaxTModels(Integer.parseInt(parameters.getParameter("savePublisherMaxTModels")));
+                        }
+                } catch (Exception ex) {
+                }
+                sb.getPublisher().add(p);
+                try {
+
+                        d = juddi.savePublisher(sb);
+                } catch (Exception ex) {
+
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                sb.setAuthInfo(GetToken());
+                                try {
+                                        d = juddi.savePublisher(sb);
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+                return "Success";
+        }
+
+        private String adminDelete_tmodel(HttpServletRequest parameters) {
+                DeleteTModel sb = new DeleteTModel();
+                sb.getTModelKey().add(parameters.getParameter("adminDelete_tmodelKEY"));
+                sb.setAuthInfo(GetToken());
+                try {
+                        juddi.adminDeleteTModel(sb);
+                } catch (Exception ex) {
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                sb.setAuthInfo(GetToken());
+                                try {
+                                        juddi.adminDeleteTModel(sb);
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+                return "Success";
+        }
+
+        private String delete_ClientSubscriptionInfo(HttpServletRequest parameters) {
+                DeleteClientSubscriptionInfo sb = new DeleteClientSubscriptionInfo();
+                sb.getSubscriptionKey().add(parameters.getParameter("delete_ClientSubscriptionInfoKEY"));
+                sb.setAuthInfo(GetToken());
+                try {
+                        juddi.deleteClientSubscriptionInfo(sb);
+                } catch (Exception ex) {
+                        if (isExceptionExpiration(ex)) {
+                                token = null;
+                                sb.setAuthInfo(GetToken());
+                                try {
+                                        juddi.deleteClientSubscriptionInfo(sb);
+                                } catch (Exception ex1) {
+                                        return HandleException(ex1);
+                                }
+
+                        } else {
+                                return HandleException(ex);
+                        }
+                }
+                return "Success";
+        }
+
+        /**
+         * If false, the configuration page will be available from anywhere. If
+         * true, it will only be accessible from the server hosting juddi-gui.
+         * if not defined, the result is true.
+         *
+         * @return true/false
+         */
+        public boolean isAdminLocalhostOnly() {
+                return clientConfig.getConfiguration().getBoolean(PROP_ADMIN_LOCALHOST_ONLY, true);
+        }
+
+        public String verifyLogin() {
+                EnsureConfig();
+                if (style != AuthStyle.UDDI_AUTH) {
+                        if (WS_Transport) {
+                                BindingProvider bp = null;
+                                Map<String, Object> context = null;
+
+                                bp = (BindingProvider) juddi;
+                                context = bp.getRequestContext();
+                                context.put(BindingProvider.USERNAME_PROPERTY, session.getAttribute("username"));
+                                context.put(BindingProvider.USERNAME_PROPERTY, session.getAttribute(AES.Decrypt("password", (String) properties.get("key"))));
+                        }
+                        FindBusiness fb = new FindBusiness();
+                        fb.setListHead(0);
+                        fb.setMaxRows(1);
+                        fb.setFindQualifiers(new FindQualifiers());
+                        fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                        fb.getName().add(new Name(UDDIConstants.WILDCARD, null));
+                        try {
+                                GetPublisherDetail publisherDetail = new GetPublisherDetail();
+                                publisherDetail.getPublisherId().add((String) session.getAttribute("username"));
+                                juddi.getPublisherDetail(publisherDetail);
+
+                        } catch (Exception ex) {
+                                return HandleException(ex);
+                        }
+                        /*
+                         bp = (BindingProvider) juddi;
+                         context = bp.getRequestContext();
+                         context.put(BindingProvider.USERNAME_PROPERTY, session.getAttribute("username"));
+                         context.put(BindingProvider.USERNAME_PROPERTY, session.getAttribute(AES.Decrypt("password", (String) properties.get("key"))));*/
+                        return null;
+                } else {
+                        if (token != null) {
+                                return token;
+                        }
+                        if (WS_Transport) {
+                                BindingProvider bp = null;
+                                Map<String, Object> context = null;
+
+                                bp = (BindingProvider) juddi;
+                                context = bp.getRequestContext();
+                                context.remove(BindingProvider.USERNAME_PROPERTY);
+                                context.remove(BindingProvider.PASSWORD_PROPERTY);
+                        }
+                        GetAuthToken req = new GetAuthToken();
+                        try {
+                                if (security == null) {
+                                        security = transport.getUDDISecurityService();
+                                }
+                        } catch (Exception ex) {
+                                return HandleException(ex);
+                        }
+                        if (session.getAttribute("username") != null
+                                && session.getAttribute("password") != null) {
+                                req.setUserID((String) session.getAttribute("username"));
+                                req.setCred(AES.Decrypt((String) session.getAttribute("password"), (String) properties.get("key")));
+                                log.info("AUDIT: fetching auth token for " + req.getUserID() + " Auth Mode is " + ((security == null) ? "HTTP" : "AUTH_TOKEN"));
+                                try {
+                                        AuthToken authToken = security.getAuthToken(req);
+                                        token = authToken.getAuthInfo();
+                                        return null;
+                                } catch (Exception ex) {
+                                        return HandleException(ex);
+                                }
+                        }
+                }
+                return "Unexpected error";
+        }
+
+        public String SendAdvanced(Object request, String method) {
+                StringWriter sw = new StringWriter();
+                Object result=null;
+                try {
+                        if (method.equalsIgnoreCase("save_ClientSubscriptionInfo")) {
+                                SaveClientSubscriptionInfo x = (SaveClientSubscriptionInfo) request;
+                                x.setAuthInfo(GetToken());
+                                ClientSubscriptionInfoDetail saveClientSubscriptionInfo = null;
+                                try {
+                                        result = juddi.saveClientSubscriptionInfo(x);
+                                        sw.append("Success:<br>");
+                                        //JAXB.marshal(saveClientSubscriptionInfo, sw);
+                                } catch (Exception ex) {
+                                        if (isExceptionExpiration(ex)) {
+                                                token = null;
+                                                x.setAuthInfo(GetToken());
+                                                result = juddi.saveClientSubscriptionInfo(x);
+                                                sw.append("Success:<br>");
+                                                //JAXB.marshal(saveClientSubscriptionInfo, sw);
+
+                                        } else {
+                                                throw ex;
+                                        }
+                                }
+
+                        }
+                        if (method.equalsIgnoreCase("invoke_SyncSubscription")) {
+                                SyncSubscription x = (SyncSubscription) request;
+                                x.setAuthInfo(GetToken());
+                                SyncSubscriptionDetail invokeSyncSubscription = null;
+                                try {
+                                        result = juddi.invokeSyncSubscription(x);
+                                        sw.append("Success:<br>");
+                                        //JAXB.marshal(invokeSyncSubscription, sw);
+                                } catch (Exception ex) {
+                                        if (isExceptionExpiration(ex)) {
+                                                token = null;
+                                                x.setAuthInfo(GetToken());
+                                                result = juddi.invokeSyncSubscription(x);
+                                                sw.append("Success:<br>");
+                                                //JAXB.marshal(invokeSyncSubscription, sw);
+
+                                        } else {
+                                                throw ex;
+                                        }
+                                }
+
+                        }
+                        if (method.equalsIgnoreCase("admin_SaveBusiness")) {
+                                AdminSaveBusiness x = (AdminSaveBusiness) request;
+
+                                DispositionReport adminSaveBusiness = null;
+
+                                try {
+                                        result = juddi.adminSaveBusiness(GetToken(), x.getValues());
+                                        sw.append("Success:<br>");
+                                        //JAXB.marshal(adminSaveBusiness, sw);
+
+                                } catch (Exception ex) {
+                                        if (isExceptionExpiration(ex)) {
+                                                token = null;
+                                                x.setAuthInfo(GetToken());
+                                                result = juddi.adminSaveBusiness(GetToken(), x.getValues());
+                                                sw.append("Success:<br>");
+                                               // JAXB.marshal(adminSaveBusiness, sw);
+
+                                        } else {
+                                                throw ex;
+                                        }
+                                }
+                        }
+                        if (method.equalsIgnoreCase("admin_SaveTModel")) {
+                                AdminSaveTModel x = (AdminSaveTModel) request;
+
+                                DispositionReport adminSaveTModel = null;
+                                try {
+                                        result = juddi.adminSaveTModel(GetToken(), x.getValues());
+                                        sw.append("Success:<br>");
+                                        //JAXB.marshal(adminSaveTModel, sw);
+
+                                } catch (Exception ex) {
+                                        if (isExceptionExpiration(ex)) {
+                                                token = null;
+                                                x.setAuthInfo(GetToken());
+                                                result = juddi.adminSaveTModel(GetToken(), x.getValues());
+                                                sw.append("Success:<br>");
+                                                //JAXB.marshal(adminSaveTModel, sw);
+
+                                        } else {
+                                                throw ex;
+                                        }
+                                }
+
+                        }
+
+                        if (method.equalsIgnoreCase("admin_SaveSubscription")) {
+                                AdminSaveSubscriptionRequest x = (AdminSaveSubscriptionRequest) request;
+                                Holder<List<Subscription>> holder = new Holder<List<Subscription>>(x.getSubscriptions());
+                                try {
+                                        juddi.adminSaveSubscription(GetToken(), x.getPublisherOrUsername(), holder);
+                                        sw.append("Success:<br>");
+                                        result=holder;
+                                } catch (Exception ex) {
+                                        if (isExceptionExpiration(ex)) {
+                                                token = null;
+
+                                                juddi.adminSaveSubscription(GetToken(), x.getPublisherOrUsername(), holder);
+                                                sw.append("Success:<br>");
+                                                result=holder;
+
+                                        } else {
+                                                throw ex;
+                                        }
+                                }
+                        }
+                        if (method.equalsIgnoreCase("set_ReplicationNodes")) {
+                                ReplicationConfiguration x = (ReplicationConfiguration) request;
+                                //    Holder<List<Subscription>> holder = new Holder<List<Subscription>>(x.getSubscriptions());
+                                try {
+                                        result = juddi.setReplicationNodes(GetToken(), x);
+                                        sw.append("Success:<br>");
+                                       // JAXB.marshal(setReplicationNodes, sw);
+                                } catch (Exception ex) {
+                                        if (isExceptionExpiration(ex)) {
+                                                token = null;
+
+                                                result = juddi.setReplicationNodes(GetToken(), x);
+                                                sw.append("Success:<br>");
+                                                //JAXB.marshal(setReplicationNodes, sw);
+
+                                        } else {
+                                                throw ex;
+                                        }
+                                }
+                        }
+
+                } catch (Exception ex) {
+                        return HandleException(ex);
+                }
+                if (result!=null){
+                        try {
+                                return sw.toString() + "<br>" + PrettyPrintJaxbObject(result);
+                        } catch (Exception ex) {
+                                return HandleException(ex);
+                        }
+                }
+                return "Error! no work was done?";
+
+        }
+
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org


[11/12] juddi git commit: JUDDI-919 replication now works with ssl + client-cert authentication. In order to support this, we need to have two different war file (unfortunately). Included with this change set is number of typos in our deployment files (w

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoitMultiNode.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoitMultiNode.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoitMultiNode.java
index b017bb0..b73d2f5 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoitMultiNode.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/EntryPoitMultiNode.java
@@ -17,8 +17,18 @@ package org.apache.juddi.samples;
 
 import java.util.List;
 import org.apache.juddi.api_v3.Node;
+import org.apache.juddi.v3.client.UDDIConstants;
 import org.apache.juddi.v3.client.config.UDDIClient;
 import org.apache.juddi.v3.client.transport.Transport;
+import org.uddi.api_v3.BusinessList;
+import org.uddi.api_v3.FindBusiness;
+import org.uddi.api_v3.FindQualifiers;
+import org.uddi.api_v3.FindService;
+import org.uddi.api_v3.FindTModel;
+import org.uddi.api_v3.Name;
+import org.uddi.api_v3.ServiceList;
+import org.uddi.api_v3.TModelList;
+import org.uddi.v3_service.UDDIInquiryPortType;
 
 /**
  *
@@ -26,56 +36,113 @@ import org.apache.juddi.v3.client.transport.Transport;
  */
 public class EntryPoitMultiNode {
 
-        static void goMultiNode() throws Exception{
-              String currentNode = "default";
+        static void goMultiNode() throws Exception {
+                String currentNode = "default";
                 UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
-                
+
                 List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
-                String input=null;
+                String input = null;
                 do {
                         System.out.println("1) Replication - Setup replication between two nodes");
-                      
-                        System.out.println("2) Sets the replication between two instances of jUDDI on 8080 and 9080");
-                        System.out.println("3) Sets directed replication between 3 instances of jUDDI on 8080 and 8080, 10080");
-                        System.out.println("4) Prints the replication status for all nodes");
 
+                        System.out.println("2) Sets undirected replication two instances of jUDDI on 8080 and 9080");
+                        System.out.println("3) Sets undirected replication 3 instances of jUDDI on 8080 and 9080 and 10080");
+                        System.out.println("4) Sets directed replication between 3 instances of jUDDI on 8080 and 9080, 10080");
+                        System.out.println("5) Sets directed replication between 3 instances of jUDDI on 8443 and 9443, 10443 over two way ssl");
+                        System.out.println("6) Prints the replication status for all nodes");
+                        System.out.println("7) Prints the business, service, and tmodels counts");
+                        System.out.println("8) Ping all nodes");
 
                         System.out.println("q) quit");
                         System.out.print("Selection: ");
                         input = System.console().readLine();
-                        
-                                processInput(input,clerkManager);
-                        
+
+                        processInput(input, clerkManager);
+
                 } while (!input.equalsIgnoreCase("q"));
         }
 
-        private static void processInput(String input, UDDIClient clerkManager) throws Exception{
-                 if (input.equals("1")) {
+        private static void processInput(String input, UDDIClient clerkManager) throws Exception {
+                if (input.equals("1")) {
                         // System.out.println("30) Replication - Setup replication between two nodes");
-                        new JuddiAdminService(null, null).setupReplication();
+                        new JuddiAdminService(clerkManager, null).setupReplication();
 
+                } else if (input.equals("2")) {
+
+                        new JuddiAdminService(clerkManager, null).autoMagic();
+                        List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
+                        for (int i = 0; i < uddiNodeList.size(); i++) {
+                                new UddiCreatebulk(uddiNodeList.get(i).getName()).publishBusiness(null, 1, 1, "root@" + uddiNodeList.get(i).getName());
+                        }
+                        //new UddiCreatebulk("uddi:another.juddi.apache.org:node2").publishBusiness(null, 1, 1);
                 }
-                else  if (input.equals("2")) {
-                       
-                        new JuddiAdminService(null, null).autoMagic();
-                         List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
-                         for (int i=0; i < uddiNodeList.size(); i++){
-                                 new UddiCreatebulk(uddiNodeList.get(i).getName()).publishBusiness(null, 1, 1);
-                         }
+                else if (input.equals("3")) {
+
+                        new JuddiAdminService(clerkManager, null).autoMagic3();
+                        List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
+                        for (int i = 0; i < uddiNodeList.size(); i++) {
+                                new UddiCreatebulk(uddiNodeList.get(i).getName()).publishBusiness(null, 1, 1, "root@" + uddiNodeList.get(i).getName());
+                        }
                         //new UddiCreatebulk("uddi:another.juddi.apache.org:node2").publishBusiness(null, 1, 1);
                 }
-               else if (input.equals("3")) {
+                else if (input.equals("4")) {
                         new JuddiAdminService(clerkManager, null).autoMagicDirected();
 
                         List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
-                         for (int i=0; i < uddiNodeList.size(); i++){
-                                 new UddiCreatebulk(uddiNodeList.get(i).getName()).publishBusiness(null, 1, 1);
-                         }
-                }
-               else if (input.equals("4")) {
+                        for (int i = 0; i < uddiNodeList.size(); i++) {
+                                new UddiCreatebulk(uddiNodeList.get(i).getName()).publishBusiness(null, 1, 1, "root@" + uddiNodeList.get(i).getName());
+                        }
+                } else if (input.equals("5")) {
+                        new JuddiAdminService(clerkManager, null).autoMagicDirectedSSL();
+
+                        List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
+                        for (int i = 0; i < uddiNodeList.size(); i++) {
+                                new UddiCreatebulk(uddiNodeList.get(i).getName()).publishBusiness(null, 1, 1, "root@" + uddiNodeList.get(i).getName());
+                        }
+                } else if (input.equals("6")) {
                         new JuddiAdminService(clerkManager, null).printStatus();
+                } else if (input.equals("7")) {
+                        List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
+                        for (Node n : uddiNodeList) {
+                                UDDIInquiryPortType uddiInquiryService = clerkManager.getTransport(n.getName()).getUDDIInquiryService();
+
+                                FindBusiness fb = new FindBusiness();
+
+                                fb.getName().add(new Name(UDDIConstants.WILDCARD, null));
+                                fb.setFindQualifiers(new FindQualifiers());
+                                fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                                fb.setMaxRows(1);
+                                fb.setListHead(0);
+                                BusinessList findBusiness = uddiInquiryService.findBusiness(fb);
+                                System.out.println(n.getName() + " business count "
+                                        + findBusiness.getListDescription().getActualCount());
+                                FindService fs = new FindService();
+
+                                fs.getName().add(new Name(UDDIConstants.WILDCARD, null));
+                                fs.setFindQualifiers(new FindQualifiers());
+                                fs.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                                fs.setMaxRows(1);
+                                fs.setListHead(0);
+                                ServiceList findService = uddiInquiryService.findService(fs);
+                                System.out.println(n.getName() + " service count "
+                                        + findService.getListDescription().getActualCount());
+                                
+                                FindTModel ft= new FindTModel();
+                                ft.setName(new Name(UDDIConstants.WILDCARD, null));
+                                ft.setFindQualifiers(new FindQualifiers());
+                                ft.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                                ft.setMaxRows(1);
+                                ft.setListHead(0);
+                                TModelList findTModel = uddiInquiryService.findTModel(ft);
+                                 System.out.println(n.getName() + " tModel count "
+                                        + findTModel.getListDescription().getActualCount());
+
+                        }
+                        System.out.println();
+                } else if (input.equals("8")){
+                         new JuddiAdminService(clerkManager, null).pingAll();
                 }
-                
+
         }
-        
+
 }

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/JuddiAdminService.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/JuddiAdminService.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/JuddiAdminService.java
index 69a1900..57ce10e 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/JuddiAdminService.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/JuddiAdminService.java
@@ -15,9 +15,15 @@
  */
 package org.apache.juddi.samples;
 
+//import com.sun.xml.internal.ws.developer.JAXWSProperties;
+import java.io.File;
+import java.io.FileInputStream;
 import java.math.BigInteger;
 import java.rmi.RemoteException;
+import java.security.KeyStore;
 import java.util.List;
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.SSLContext;
 import javax.xml.bind.JAXB;
 import javax.xml.ws.BindingProvider;
 import org.apache.commons.configuration.ConfigurationException;
@@ -30,7 +36,6 @@ import org.apache.juddi.api_v3.NodeList;
 import org.apache.juddi.api_v3.SaveNode;
 import org.apache.juddi.jaxb.PrintJUDDI;
 import org.apache.juddi.v3.client.UDDIService;
-import org.apache.juddi.v3.client.config.UDDIClerk;
 import org.apache.juddi.v3.client.config.UDDIClient;
 import org.apache.juddi.v3.client.config.UDDINode;
 import org.apache.juddi.v3.client.transport.Transport;
@@ -46,10 +51,10 @@ import org.uddi.api_v3.Phone;
 import org.uddi.repl_v3.ChangeRecordIDType;
 import org.uddi.repl_v3.CommunicationGraph;
 import org.uddi.repl_v3.CommunicationGraph.Edge;
+import org.uddi.repl_v3.DoPing;
 import org.uddi.repl_v3.Operator;
 import org.uddi.repl_v3.OperatorStatusType;
 import org.uddi.repl_v3.ReplicationConfiguration;
-import org.uddi.v3_service.UDDIPublicationPortType;
 import org.uddi.v3_service.UDDIReplicationPortType;
 import org.uddi.v3_service.UDDISecurityPortType;
 
@@ -59,7 +64,7 @@ import org.uddi.v3_service.UDDISecurityPortType;
  */
 public class JuddiAdminService {
 
-      //  private static UDDISecurityPortType security = null;
+        //  private static UDDISecurityPortType security = null;
         //  private static UDDIPublicationPortType publish = null;
         static JUDDIApiPortType juddi = null;
         // static UDDIClerk clerk = null;
@@ -68,17 +73,19 @@ public class JuddiAdminService {
         public JuddiAdminService(UDDIClient client, Transport transport) {
                 try {
                         clerkManager = client;
-                        if (transport==null)
-                        // create a manager and read the config in the archive; 
+                        if (transport != null) // create a manager and read the config in the archive; 
                         // you can use your config file name
                         // clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
                         //clerk = clerkManager.getClerk("default");
                         // The transport can be WS, inVM, RMI etc which is defined in the uddi.xml
+                        {
                                 transport = clerkManager.getTransport();
+                                juddi = transport.getJUDDIApiService();
+                        }
                         // Now you create a reference to the UDDI API
                         //security = transport.getUDDISecurityService();
                         //publish = transport.getUDDIPublishService();
-                        juddi = transport.getJUDDIApiService();
+
                 } catch (Exception e) {
                         e.printStackTrace();
                 }
@@ -101,6 +108,29 @@ public class JuddiAdminService {
                 return n;
         }
 
+        JuddiAdminService(UDDIClient client, Transport transport, String currentNode) {
+                curentnode = currentNode;
+                try {
+                        clerkManager = client;
+                        if (transport == null) // create a manager and read the config in the archive; 
+                        // you can use your config file name
+                        // clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
+                        //clerk = clerkManager.getClerk("default");
+                        // The transport can be WS, inVM, RMI etc which is defined in the uddi.xml
+                        {
+                                transport = clerkManager.getTransport();
+                        }
+                        // Now you create a reference to the UDDI API
+                        //security = transport.getUDDISecurityService();
+                        //publish = transport.getUDDIPublishService();
+                        juddi = transport.getJUDDIApiService();
+                } catch (Exception e) {
+                        e.printStackTrace();
+                }
+        }
+
+        String curentnode = "default";
+
         public void quickRegisterRemoteCloud(String token) {
                 try {
                         // Setting up the values to get an authentication token for the 'root' user ('root' user has admin privileges
@@ -193,7 +223,7 @@ public class JuddiAdminService {
         }
 
         void viewReplicationConfig(String authtoken, String node) throws Exception {
-                
+
                 Transport transport = clerkManager.getTransport(node);
 
                 JUDDIApiPortType juddiApiService = transport.getJUDDIApiService();
@@ -696,6 +726,86 @@ public class JuddiAdminService {
 
         }
 
+        void autoMagic3() throws Exception {
+
+                List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
+
+                Transport transport = clerkManager.getTransport("default");
+                String authtoken = transport.getUDDISecurityService().getAuthToken(new GetAuthToken("root", "root")).getAuthInfo();
+
+                JUDDIApiPortType juddiApiService = transport.getJUDDIApiService();
+                System.out.println("fetching...");
+
+                ReplicationConfiguration replicationNodes = null;
+                try {
+                        replicationNodes = juddiApiService.getReplicationNodes(authtoken);
+                } catch (Exception ex) {
+                        System.out.println("Error getting replication config");
+                        ex.printStackTrace();
+                        replicationNodes = new ReplicationConfiguration();
+
+                }
+                if (replicationNodes.getCommunicationGraph() == null) {
+                        replicationNodes.setCommunicationGraph(new CommunicationGraph());
+                }
+                Operator op = new Operator();
+                op.setOperatorNodeID("uddi:juddi.apache.org:node1");
+                op.setSoapReplicationURL("http://localhost:8080/juddiv3/services/replication");
+                op.setOperatorStatus(OperatorStatusType.NORMAL);
+                op.getContact().add(new Contact());
+                op.getContact().get(0).getPersonName().add(new PersonName("bob", "en"));
+                op.getContact().get(0).setUseType("admin");
+                replicationNodes.getOperator().clear();
+                replicationNodes.getOperator().add(op);
+
+                op = new Operator();
+                op.setOperatorNodeID("uddi:another.juddi.apache.org:node2");
+                op.setSoapReplicationURL("http://localhost:9080/juddiv3/services/replication");
+                op.setOperatorStatus(OperatorStatusType.NORMAL);
+                op.getContact().add(new Contact());
+                op.getContact().get(0).getPersonName().add(new PersonName("mary", "en"));
+                op.getContact().get(0).setUseType("admin");
+                replicationNodes.getOperator().add(op);
+
+                op = new Operator();
+                op.setOperatorNodeID("uddi:yet.another.juddi.apache.org:node3");
+                op.setSoapReplicationURL("http://localhost:10080/juddiv3/services/replication");
+                op.setOperatorStatus(OperatorStatusType.NORMAL);
+                op.getContact().add(new Contact());
+                op.getContact().get(0).getPersonName().add(new PersonName("mary", "en"));
+                op.getContact().get(0).setUseType("admin");
+                replicationNodes.getOperator().add(op);
+
+                replicationNodes.getCommunicationGraph().getNode().add("uddi:another.juddi.apache.org:node2");
+                replicationNodes.getCommunicationGraph().getNode().add("uddi:yet.another.juddi.apache.org:node3");
+                replicationNodes.getCommunicationGraph().getNode().add("uddi:juddi.apache.org:node1");
+                replicationNodes.setSerialNumber(0L);
+                replicationNodes.setTimeOfConfigurationUpdate("");
+                replicationNodes.setMaximumTimeToGetChanges(BigInteger.ONE);
+                replicationNodes.setMaximumTimeToSyncRegistry(BigInteger.ONE);
+
+                if (replicationNodes.getRegistryContact().getContact() == null) {
+                        replicationNodes.getRegistryContact().setContact(new Contact());
+                        replicationNodes.getRegistryContact().getContact().getPersonName().add(new PersonName("unknown", null));
+                }
+
+                JAXB.marshal(replicationNodes, System.out);
+                juddiApiService.setReplicationNodes(authtoken, replicationNodes);
+
+                transport = clerkManager.getTransport("uddi:another.juddi.apache.org:node2");
+                authtoken = transport.getUDDISecurityService().getAuthToken(new GetAuthToken("root", "root")).getAuthInfo();
+
+                juddiApiService = transport.getJUDDIApiService();
+                juddiApiService.setReplicationNodes(authtoken, replicationNodes);
+
+                transport = clerkManager.getTransport("uddi:yet.another.juddi.apache.org:node3");
+                authtoken = transport.getUDDISecurityService().getAuthToken(new GetAuthToken("root", "root")).getAuthInfo();
+
+                juddiApiService = transport.getJUDDIApiService();
+                juddiApiService.setReplicationNodes(authtoken, replicationNodes);
+
+        }
+
         void printStatus(Transport transport, String authtoken) throws Exception {
 
                 JUDDIApiPortType juddiApiService = transport.getJUDDIApiService();
@@ -726,7 +836,6 @@ public class JuddiAdminService {
         void printStatus() throws Exception {
 
                 //List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
-
                 Transport transport = clerkManager.getTransport("default");
                 String authtoken = transport.getUDDISecurityService().getAuthToken(new GetAuthToken("root", "root")).getAuthInfo();
 
@@ -800,4 +909,176 @@ public class JuddiAdminService {
                         failedReplicationChangeRecords = juddi.getFailedReplicationChangeRecords(req);
                 }
         }
+
+        void printStatusSingleNode(Transport transport, String authtoken) throws Exception {
+                String replicationUrl = clerkManager.getClientConfig().getUDDINode(curentnode).getReplicationUrl();
+
+                SSLContext sc = SSLContext.getInstance("SSLv3");
+
+                KeyManagerFactory kmf
+                        = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
+
+                KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
+                ks.load(new FileInputStream(System.getProperty("javax.net.ssl.keyStore")), System.getProperty("javax.net.ssl.keyStorePassword").toCharArray());
+
+                kmf.init(ks, System.getProperty("javax.net.ssl.keyStorePassword").toCharArray());
+
+                sc.init(kmf.getKeyManagers(), null, null);
+
+                UDDIReplicationPortType uddiReplicationPort = new UDDIService().getUDDIReplicationPort();
+                ((BindingProvider) uddiReplicationPort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, replicationUrl);
+                ((BindingProvider) uddiReplicationPort).getRequestContext()
+                        .put(
+                                "com.sun.xml.internal.ws.transport.https.client.SSLSocketFactory",
+                                sc.getSocketFactory());
+                /*((BindingProvider) uddiReplicationPort).getRequestContext()
+                 .put(
+                 JAXWSProperties.SSL_SOCKET_FACTORY,
+                 sc.getSocketFactory());*/
+
+                String doPing = uddiReplicationPort.doPing(new DoPing());
+                System.out.println(doPing + ".., success");
+
+        }
+
+        void autoMagicDirectedSSL() throws Exception {
+                //1 > 2 >3 >1
+                List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
+
+                Transport transport = clerkManager.getTransport("default");
+                String authtoken = transport.getUDDISecurityService().getAuthToken(new GetAuthToken("root", "root")).getAuthInfo();
+
+                JUDDIApiPortType juddiApiService = transport.getJUDDIApiService();
+                System.out.println("fetching...");
+
+                ReplicationConfiguration replicationNodes = null;
+                try {
+                        replicationNodes = juddiApiService.getReplicationNodes(authtoken);
+                } catch (Exception ex) {
+                        System.out.println("Error getting replication config");
+                        ex.printStackTrace();
+                        replicationNodes = new ReplicationConfiguration();
+
+                }
+                //if (replicationNodes.getCommunicationGraph() == null) {
+                replicationNodes.setCommunicationGraph(new CommunicationGraph());
+                //}
+                Operator op = new Operator();
+                op.setOperatorNodeID("uddi:juddi.apache.org:node1");
+                op.setSoapReplicationURL("https://localhost:8443/juddiv3replication/services/replication");
+                op.setOperatorStatus(OperatorStatusType.NORMAL);
+                op.getContact().add(new Contact());
+                op.getContact().get(0).getPersonName().add(new PersonName("bob", "en"));
+                op.getContact().get(0).setUseType("admin");
+                replicationNodes.getOperator().clear();
+                replicationNodes.getOperator().add(op);
+
+                op = new Operator();
+                op.setOperatorNodeID("uddi:another.juddi.apache.org:node2");
+                op.setSoapReplicationURL("https://localhost:9443/juddiv3replication/services/replication");
+                op.setOperatorStatus(OperatorStatusType.NORMAL);
+                op.getContact().add(new Contact());
+                op.getContact().get(0).getPersonName().add(new PersonName("mary", "en"));
+                op.getContact().get(0).setUseType("admin");
+                replicationNodes.getOperator().add(op);
+                op = new Operator();
+
+                op.setOperatorNodeID("uddi:yet.another.juddi.apache.org:node3");
+                op.setSoapReplicationURL("https://localhost:10443/juddiv3replication/services/replication");
+                op.setOperatorStatus(OperatorStatusType.NORMAL);
+                op.getContact().add(new Contact());
+                op.getContact().get(0).getPersonName().add(new PersonName("mary", "en"));
+                op.getContact().get(0).setUseType("admin");
+                replicationNodes.getOperator().add(op);
+                replicationNodes.getCommunicationGraph().getNode().clear();
+                replicationNodes.getCommunicationGraph().getNode().add("uddi:another.juddi.apache.org:node2");
+                replicationNodes.getCommunicationGraph().getNode().add("uddi:juddi.apache.org:node1");
+                replicationNodes.getCommunicationGraph().getNode().add("uddi:yet.another.juddi.apache.org:node3");
+                replicationNodes.getCommunicationGraph().getEdge().clear();
+                Edge e = new CommunicationGraph.Edge();
+                e.setMessageSender("uddi:juddi.apache.org:node1");
+                e.setMessageReceiver("uddi:another.juddi.apache.org:node2");
+                replicationNodes.getCommunicationGraph().getEdge().add(e);
+
+                e = new CommunicationGraph.Edge();
+                e.setMessageSender("uddi:another.juddi.apache.org:node2");
+                e.setMessageReceiver("uddi:yet.another.juddi.apache.org:node3");
+                replicationNodes.getCommunicationGraph().getEdge().add(e);
+
+                e = new CommunicationGraph.Edge();
+                e.setMessageSender("uddi:yet.another.juddi.apache.org:node3");
+                e.setMessageReceiver("uddi:juddi.apache.org:node1");
+                replicationNodes.getCommunicationGraph().getEdge().add(e);
+
+                replicationNodes.setSerialNumber(0L);
+                replicationNodes.setTimeOfConfigurationUpdate("");
+                replicationNodes.setMaximumTimeToGetChanges(BigInteger.ONE);
+                replicationNodes.setMaximumTimeToSyncRegistry(BigInteger.ONE);
+
+                if (replicationNodes.getRegistryContact().getContact() == null) {
+                        replicationNodes.getRegistryContact().setContact(new Contact());
+                        replicationNodes.getRegistryContact().getContact().getPersonName().add(new PersonName("unknown", null));
+                }
+
+                JAXB.marshal(replicationNodes, System.out);
+
+                juddiApiService.setReplicationNodes(authtoken, replicationNodes);
+                System.out.println("Saved to node1");
+                TestEquals(replicationNodes, juddiApiService.getReplicationNodes(authtoken));
+
+                transport = clerkManager.getTransport("uddi:another.juddi.apache.org:node2");
+                authtoken = transport.getUDDISecurityService().getAuthToken(new GetAuthToken("root", "root")).getAuthInfo();
+                juddiApiService = transport.getJUDDIApiService();
+                juddiApiService.setReplicationNodes(authtoken, replicationNodes);
+                System.out.println("Saved to node2");
+                TestEquals(replicationNodes, juddiApiService.getReplicationNodes(authtoken));
+
+                transport = clerkManager.getTransport("uddi:yet.another.juddi.apache.org:node3");
+                authtoken = transport.getUDDISecurityService().getAuthToken(new GetAuthToken("root", "root")).getAuthInfo();
+                juddiApiService = transport.getJUDDIApiService();
+                juddiApiService.setReplicationNodes(authtoken, replicationNodes);
+                System.out.println("Saved to node3");
+                TestEquals(replicationNodes, juddiApiService.getReplicationNodes(authtoken));
+        }
+
+        void pingAll() throws Exception {
+                List<Node> uddiNodeList = clerkManager.getClientConfig().getUDDINodeList();
+
+                UDDIReplicationPortType uddiReplicationPort = new UDDIService().getUDDIReplicationPort();
+                File currentdir = new File(".");
+                System.out.println("Using keystore from " + System.getProperty("javax.net.ssl.keyStore") + " current dir is " + currentdir.getAbsolutePath());
+                System.out.println("Using truststure from " + System.getProperty("javax.net.ssl.trustStore") + " current dir is " + currentdir.getAbsolutePath());
+                SSLContext sc = SSLContext.getInstance("SSLv3");
+
+                KeyManagerFactory kmf
+                        = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
+
+                KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
+                ks.load(new FileInputStream(System.getProperty("javax.net.ssl.keyStore")), System.getProperty("javax.net.ssl.keyStorePassword").toCharArray());
+
+                kmf.init(ks, System.getProperty("javax.net.ssl.keyStorePassword").toCharArray());
+
+                sc.init(kmf.getKeyManagers(), null, null);
+
+                ((BindingProvider) uddiReplicationPort).getRequestContext()
+                        .put(
+                                "com.sun.xml.internal.ws.transport.https.client.SSLSocketFactory",
+                                sc.getSocketFactory());
+
+                for (Node currenteNode : uddiNodeList) {
+                        try {
+                                String replicationUrl = clerkManager.getClientConfig().getUDDINode(currenteNode.getName()).getReplicationUrl();
+                                ((BindingProvider) uddiReplicationPort).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, replicationUrl);
+                                long now = System.currentTimeMillis();
+                                String doPing = uddiReplicationPort.doPing(new DoPing());
+                                System.out.println(replicationUrl + " " + currenteNode.getName() + " says it's node id is " + doPing + " (took " + (System.currentTimeMillis() - now) + "ms)");
+                        } catch (Exception ex) {
+                                System.out.println("Error! " + currenteNode.getName() + " " + currenteNode.getReplicationUrl());
+                                ex.printStackTrace();
+                        }
+
+                }
+
+        }
+
 }

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiCreatebulk.java
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiCreatebulk.java b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiCreatebulk.java
index cf46f3a..f74fc9b 100644
--- a/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiCreatebulk.java
+++ b/juddi-examples/more-uddi-samples/src/main/java/org/apache/juddi/samples/UddiCreatebulk.java
@@ -66,7 +66,14 @@ public class UddiCreatebulk {
                 }
         }
 
-        public void publishBusiness(String token, int businesses, int servicesPerBusiness) {
+        /**
+         * bulk creates businesses, services and binding templates
+         * @param token if null, root/root will be used to authenticate
+         * @param businesses
+         * @param servicesPerBusiness
+         * @param user purely for display purposes
+         */
+        public void publishBusiness(String token, int businesses, int servicesPerBusiness, String user) {
                 try {
                         // Setting up the values to get an authentication token for the 'root' user ('root' user has admin privileges
                         // and can save other publishers).
@@ -91,7 +98,7 @@ public class UddiCreatebulk {
                                 BusinessEntity myBusEntity = new BusinessEntity();
                                 Name myBusName = new Name();
                                 myBusName.setLang("en");
-                                myBusName.setValue("My Business " +curretNode +" " + i + " " + xcal.toString() + " " + textgen.getWords(5, 2) );
+                                myBusName.setValue(user + "'s Business " +curretNode +" " + i + " " + xcal.toString() + " " + textgen.getWords(5, 2) );
                                 myBusEntity.getDescription().add(new Description( textgen.getWords(10, 2), null));
                                 myBusEntity.getName().add(myBusName);
 
@@ -109,7 +116,7 @@ public class UddiCreatebulk {
                                         myService.setBusinessKey(myBusKey);
                                         Name myServName = new Name();
                                         myServName.setLang("en");
-                                        myServName.setValue("My Service " +curretNode+" "+ i + " " + k + " " + xcal.toString()+ " " + textgen.getWords(5, 2) );
+                                        myServName.setValue(user + "'s Service " +curretNode+" "+ i + " " + k + " " + xcal.toString()+ " " + textgen.getWords(5, 2) );
                                         myService.getName().add(myServName);
                                         myService.getDescription().add(new Description( textgen.getWords(10, 2), null));
                                         
@@ -198,6 +205,6 @@ public class UddiCreatebulk {
 
         public static void main(String args[]) {
                 UddiCreatebulk sp = new UddiCreatebulk(null);
-                sp.publishBusiness(null, 15, 20);
+                sp.publishBusiness(null, 15, 20, "root");
         }
 }

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-examples/more-uddi-samples/src/main/resources/META-INF/simple-publish-uddi.xml
----------------------------------------------------------------------
diff --git a/juddi-examples/more-uddi-samples/src/main/resources/META-INF/simple-publish-uddi.xml b/juddi-examples/more-uddi-samples/src/main/resources/META-INF/simple-publish-uddi.xml
index 0dd7ed7..9d071a6 100644
--- a/juddi-examples/more-uddi-samples/src/main/resources/META-INF/simple-publish-uddi.xml
+++ b/juddi-examples/more-uddi-samples/src/main/resources/META-INF/simple-publish-uddi.xml
@@ -27,6 +27,7 @@
                                 <properties>
                                         <property name="serverName" value="localhost"/>
                                         <property name="serverPort" value="8080"/>
+                                       
                                         <!-- for UDDI nodes that use HTTP u/p, using the following 
                                         <property name="basicAuthUsername" value="root" />
                                         <property name="basicAuthPassword" value="password" />
@@ -44,6 +45,7 @@
                                 <subscriptionUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription</subscriptionUrl>
                                 <subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener</subscriptionListenerUrl>
                                 <juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api</juddiApiUrl>
+                                <replicationUrl>https://${serverName}:8443/juddiv3replication/services/replication</replicationUrl>
                         </node>
                         <node>
                                 <!-- required 'default' node -->
@@ -51,6 +53,7 @@
                                 <properties>
                                         <property name="serverName" value="localhost"/>
                                         <property name="serverPort" value="9080"/>
+                                        
                                         <!-- for UDDI nodes that use HTTP u/p, using the following 
                                         <property name="basicAuthUsername" value="root" />
                                         <property name="basicAuthPassword" value="password" />
@@ -68,7 +71,7 @@
                                 <subscriptionUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription</subscriptionUrl>
                                 <subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener</subscriptionListenerUrl>
                                 <juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api</juddiApiUrl>
-                                <replicationUrl>http://${serverName}:${serverPort}/juddiv3/services/replication</replicationUrl>
+                                <replicationUrl>https://${serverName}:9443/juddiv3replication/services/replication</replicationUrl>
                         </node>
                         
                         <node>
@@ -77,6 +80,7 @@
                                 <properties>
                                         <property name="serverName" value="localhost"/>
                                         <property name="serverPort" value="10080"/>
+                                        
                                         <!-- for UDDI nodes that use HTTP u/p, using the following 
                                         <property name="basicAuthUsername" value="root" />
                                         <property name="basicAuthPassword" value="password" />
@@ -94,7 +98,7 @@
                                 <subscriptionUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription</subscriptionUrl>
                                 <subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener</subscriptionListenerUrl>
                                 <juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api</juddiApiUrl>
-                                <replicationUrl>http://${serverName}:${serverPort}/juddiv3/services/replication</replicationUrl>
+                                <replicationUrl>https://${serverName}:10443/juddiv3replication/services/replication</replicationUrl>
                         </node>
                 </nodes>
                 <clerks registerOnStartup="false">

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-tomcat/build.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/build.xml b/juddi-tomcat/build.xml
index 4f7b3ae..03fc37b 100644
--- a/juddi-tomcat/build.xml
+++ b/juddi-tomcat/build.xml
@@ -27,6 +27,7 @@
 		<unzip dest="${basedir}/target/tomcat" src="${dependency.tomcat.zip}"/>
 		<unzip dest="${webapps.dir}/juddiv3" src="${dependency.juddiv3.war}"/>
 		<unzip dest="${webapps.dir}/juddi-gui" src="${dependency.juddi-gui.war}"/>
+		<unzip dest="${webapps.dir}/juddiv3replication" src="${dependency.juddiv3replication.war}"/>
 	</target>
 	
 	<target name="copy-resources" depends="unzip-tomcat">
@@ -47,6 +48,7 @@
 		
         <copy file="${basedir}/tomcat-users.xml" todir="${conf.dir}" overwrite="true"/>
 		<copy file="${basedir}/context.xml" todir="${webapps.dir}/juddiv3/META-INF" overwrite="true"/>
+		<copy file="${basedir}/context.xml" todir="${webapps.dir}/juddiv3replication/META-INF" overwrite="true"/>
 		<copy file="${basedir}/server.xml" todir="${conf.dir}" overwrite="true"/>
 		<copy file="${basedir}/keystore.jks" todir="${conf.dir}" overwrite="true"/>
 		
@@ -78,6 +80,7 @@
 		<unzip dest="${basedir}/target/tomcat2" src="${dependency.tomcat.zip}"/>
 		<unzip dest="${webapps2.dir}/juddiv3" src="${dependency.juddiv3.war}"/>
 		<unzip dest="${webapps2.dir}/juddi-gui" src="${dependency.juddi-gui.war}"/>
+		<unzip dest="${webapps2.dir}/juddiv3replication" src="${dependency.juddiv3replication.war}"/>
 	</target>
 	
 	<target name="copy-resources2" depends="unzip-tomcat2">
@@ -97,6 +100,8 @@
 		
 		
 		<copy file="${basedir}/juddiv3Node2.xml" tofile="${webapps2.dir}/juddiv3/WEB-INF/classes/juddiv3.xml" overwrite="true"/>
+		<copy file="${basedir}/juddiv3Node2.xml" tofile="${webapps2.dir}/juddiv3replication/WEB-INF/classes/juddiv3.xml" overwrite="true"/>
+
 		<copy file="${basedir}/juddi_install_data_node2/root_BusinessEntity.xml" todir="${webapps2.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
 		<copy file="${basedir}/juddi_install_data_node2/root_Publisher.xml" todir="${webapps2.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
 		<copy file="${basedir}/juddi_install_data_node2/root_tModelKeyGen.xml" todir="${webapps2.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
@@ -111,6 +116,7 @@
 		
         <copy file="${basedir}/tomcat-users.xml" todir="${conf2.dir}" overwrite="true"/>
 		<copy file="${basedir}/context.xml" todir="${webapps2.dir}/juddiv3/META-INF" overwrite="true"/>
+		<copy file="${basedir}/context.xml" todir="${webapps2.dir}/juddiv3replication/META-INF" overwrite="true"/>
 		<copy file="${basedir}/keystore.jks" todir="${conf2.dir}" overwrite="true"/>
 		
  		<copy file="${dependency.mysql.jar}" todir="${lib2.dir}"/>
@@ -142,6 +148,7 @@
 		<unzip dest="${basedir}/target/tomcat3" src="${dependency.tomcat.zip}"/>
 		<unzip dest="${webapps3.dir}/juddiv3" src="${dependency.juddiv3.war}"/>
 		<unzip dest="${webapps3.dir}/juddi-gui" src="${dependency.juddi-gui.war}"/>
+		<unzip dest="${webapps3.dir}/juddiv3replication" src="${dependency.juddiv3replication.war}"/>
 	</target>
 	
 	<target name="copy-resources3" depends="unzip-tomcat3">
@@ -161,6 +168,8 @@
 		
 		
 		<copy file="${basedir}/juddiv3Node3.xml" tofile="${webapps3.dir}/juddiv3/WEB-INF/classes/juddiv3.xml" overwrite="true"/>
+		<copy file="${basedir}/juddiv3Node3.xml" tofile="${webapps3.dir}/juddiv3replication/WEB-INF/classes/juddiv3.xml" overwrite="true"/>
+
 		<copy file="${basedir}/juddi_install_data_node3/root_BusinessEntity.xml" todir="${webapps3.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
 		<copy file="${basedir}/juddi_install_data_node3/root_Publisher.xml" todir="${webapps3.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
 		<copy file="${basedir}/juddi_install_data_node3/root_tModelKeyGen.xml" todir="${webapps3.dir}/juddiv3/WEB-INF/classes/juddi_custom_install_data/" overwrite="true"/>
@@ -175,6 +184,7 @@
 		
         <copy file="${basedir}/tomcat-users.xml" todir="${conf3.dir}" overwrite="true"/>
 		<copy file="${basedir}/context.xml" todir="${webapps3.dir}/juddiv3/META-INF" overwrite="true"/>
+		<copy file="${basedir}/context.xml" todir="${webapps3.dir}/juddiv3replication/META-INF" overwrite="true"/>
 		<copy file="${basedir}/keystore.jks" todir="${conf3.dir}" overwrite="true"/>
 		
  		<copy file="${dependency.mysql.jar}" todir="${lib3.dir}"/>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-tomcat/pom.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/pom.xml b/juddi-tomcat/pom.xml
index f5d8a17..b703958 100644
--- a/juddi-tomcat/pom.xml
+++ b/juddi-tomcat/pom.xml
@@ -44,6 +44,12 @@
 			<type>war</type>
 		</dependency>
 		<dependency>
+			<artifactId>juddiv3-war-repl</artifactId>
+			<groupId>org.apache.juddi</groupId>
+			<version>${project.parent.version}</version>
+			<type>war</type>
+		</dependency>
+		<dependency>
             <artifactId>juddi-gui-war</artifactId>
             <groupId>org.apache.juddi</groupId>
             <version>${project.parent.version}</version>
@@ -98,7 +104,7 @@
 						<configuration>
 							<stripVersion>true</stripVersion>
 							<includeGroupIds>org.apache.juddi</includeGroupIds>
-							<includeArtifactIds>juddiv3-war,juddi-gui-war</includeArtifactIds>
+							<includeArtifactIds>juddiv3-war,juddiv3-war-repl,juddi-gui-war</includeArtifactIds>
 							<outputDirectory>
 								${project.build.directory}
 							</outputDirectory>
@@ -134,6 +140,7 @@
 								<property name="dependency.derby.jar" value="${maven.dependency.org.apache.derby.derby.jar.path}" />
 								<property name="dependency.tomcat.zip" value="${maven.dependency.org.apache.juddi.bootstrap.apache-tomcat.zip.path}" />
 								<property name="dependency.juddiv3.war" value="${project.build.directory}/juddiv3-war.war" />
+								<property name="dependency.juddiv3replication.war" value="${project.build.directory}/juddiv3-war-repl.war" />
 								<property name="dependency.juddi-gui.war" value="${project.build.directory}/juddi-gui-war.war" />
 								<property name="dependency.jaxws.jar" value="${maven.dependency.org.apache.geronimo.specs.geronimo-jaxws_2.2_spec.jar.path}" />
 								<ant antfile="${basedir}/build.xml">

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-tomcat/server.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/server.xml b/juddi-tomcat/server.xml
index d00f397..6243f46 100644
--- a/juddi-tomcat/server.xml
+++ b/juddi-tomcat/server.xml
@@ -81,7 +81,8 @@
     
     <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                maxThreads="150" scheme="https" secure="true"
-               clientAuth="false" sslProtocol="TLS" 
+               clientAuth="want" sslProtocol="TLS" 
+               truststoreFile="truststore.jks" truststorePass="password"
 			   keystoreFile="conf/keystore.jks" keystorePass="password"
 			   />
     

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-tomcat/serverNode2.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/serverNode2.xml b/juddi-tomcat/serverNode2.xml
index 8f438a7..7f34dda 100644
--- a/juddi-tomcat/serverNode2.xml
+++ b/juddi-tomcat/serverNode2.xml
@@ -81,7 +81,8 @@
     
     <Connector port="9443" protocol="HTTP/1.1" SSLEnabled="true"
                maxThreads="150" scheme="https" secure="true"
-               clientAuth="false" sslProtocol="TLS" 
+               clientAuth="want" sslProtocol="TLS" 
+               truststoreFile="truststore.jks" truststorePass="password"
 			   keystoreFile="conf/keystore.jks" keystorePass="password"
 			   />
     

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-tomcat/serverNode3.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/serverNode3.xml b/juddi-tomcat/serverNode3.xml
index 257bc21..0ef70cc 100644
--- a/juddi-tomcat/serverNode3.xml
+++ b/juddi-tomcat/serverNode3.xml
@@ -81,7 +81,8 @@
     
     <Connector port="10443" protocol="HTTP/1.1" SSLEnabled="true"
                maxThreads="150" scheme="https" secure="true"
-               clientAuth="false" sslProtocol="TLS" 
+               clientAuth="want" sslProtocol="TLS" 
+               truststoreFile="truststore.jks" truststorePass="password"
 			   keystoreFile="conf/keystore.jks" keystorePass="password"
 			   />
     

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddi-tomcat/tomcat-users.xml
----------------------------------------------------------------------
diff --git a/juddi-tomcat/tomcat-users.xml b/juddi-tomcat/tomcat-users.xml
index 52c29e9..9333f39 100644
--- a/juddi-tomcat/tomcat-users.xml
+++ b/juddi-tomcat/tomcat-users.xml
@@ -39,7 +39,9 @@
     -   the juddi-gui configuration page http://localhost:8080/juddi-gui/settings.jsp
     
     -->
-	<role rolename="tomcat"/>
-  <role rolename="uddiadmin"/>  
+  <role rolename="tomcat"/>
+  <role rolename="uddiadmin"/>
+  <role rolename="replication"/>  
   <user username="uddiadmin" password="da_password1" roles="uddiadmin,tomcat,manager" />
+  <user username="CN=localhost, OU=jUDDI Test, O=Apache Software Foundation, L=Anytown, ST=MD, C=US" password="null" roles="replication"/>
 </tomcat-users>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/.gitignore
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/.gitignore b/juddiv3-war-repl/.gitignore
new file mode 100644
index 0000000..c1a69fd
--- /dev/null
+++ b/juddiv3-war-repl/.gitignore
@@ -0,0 +1,6 @@
+target
+**/target/*
+**/derby.log
+**/.project
+**/.classpath
+**/.settings/*

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/conf/axis2.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/conf/axis2.xml b/juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/conf/axis2.xml
new file mode 100644
index 0000000..cad435b
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/conf/axis2.xml
@@ -0,0 +1,520 @@
+<!--
+  ~ 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.
+  -->
+
+<axisconfig name="AxisJava2.0">
+    <!-- ================================================= -->
+    <!-- Parameters -->
+    <!-- ================================================= -->
+    <parameter name="hotdeployment">true</parameter>
+    <parameter name="hotupdate">false</parameter>
+    <parameter name="enableMTOM">false</parameter>
+    <parameter name="enableSwA">false</parameter>
+
+    <!--Uncomment if you want to enable file caching for attachments -->
+    <!--parameter name="cacheAttachments">true</parameter>
+    <parameter name="attachmentDIR"></parameter>
+    <parameter name="sizeThreshold">4000</parameter-->
+
+    <parameter name="EnableChildFirstClassLoading">false</parameter>
+
+     <!--
+       The exposeServiceMetadata parameter decides whether the metadata (WSDL, schema, policy) of
+       the services deployed on Axis2 should be visible when ?wsdl, ?wsdl2, ?xsd, ?policy requests
+       are received.
+       This parameter can be defined in the axi2.xml file, in which case this will be applicable
+       globally, or in the services.xml files, in which case, it will be applicable to the
+       Service groups and/or services, depending on the level at which the parameter is declared.
+       This value of this parameter defaults to true.
+    -->
+    <parameter name="exposeServiceMetadata">true</parameter>
+
+    <!--Uncomment if you want to plugin your own attachments lifecycle implementation -->
+    <!--<attachmentsLifecycleManager class="org.apache.axiom.attachments.lifecycle.impl.LifecycleManagerImpl"/>-->
+
+
+    <!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions -->
+    <!--In some server environments, the available memory heap is limited and can fill up under load -->
+    <!--Since in-memory copies of WSDL definitions can be large, some steps can be taken-->
+    <!--to reduce the memory needed for the cached WSDL definitions. -->
+    <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
+
+    <!--This will give out the timout of the configuration contexts, in milliseconds-->
+    <parameter name="ConfigContextTimeoutInterval">30000</parameter>
+
+    <!--During a fault, stack trace can be sent with the fault message. The following flag will control -->
+    <!--that behavior.-->
+    <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
+
+    <!--If there aren't any information available to find out the fault reason, we set the message of the exception-->
+    <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
+    <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
+    <!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
+    <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
+
+    <parameter name="userName">admin</parameter>
+    <parameter name="password">axis2</parameter>
+
+    <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
+    <!--ServicesDirectory only works on the following cases-->
+    <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
+    <!---When creating URL Based configurator with URL file:// -->
+    <!--- War based configurator with expanded case , -->
+
+    <!--All the other scenarios it will be ignored.-->
+    <!--<parameter name="ServicesDirectory">service</parameter>-->
+    <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
+    <!--<parameter name="ModulesDirectory">modules</parameter>-->
+
+
+    <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
+    <!--root which can configured using the following contextRoot parameter-->
+    <!--<parameter name="contextRoot">axis2</parameter>-->
+
+    <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints-->
+    <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
+    <!--context path to proper Axis2 servlets-->
+    <!--<parameter name="servicePath">services</parameter>-->
+    <!--<parameter name="restPath">rest</parameter>-->
+
+    <!-- Following parameter will completely disable REST handling in Axis2-->
+    <parameter name="disableREST" locked="false">false</parameter>
+
+    <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files -->
+    <parameter name="disableSOAP12" locked="true">false</parameter>
+
+    <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
+    <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
+    <deployer extension=".jar" directory="servicejars"
+              class="org.apache.axis2.jaxws.framework.JAXWSDeployer"/>
+    <deployer extension=".jar" directory="transports"
+              class="org.apache.axis2.deployment.TransportDeployer"/>
+
+    <!--CORBA deployer , this will alow users to invoke remote CORBA services through Axis2-->
+    <!--<deployer extension=".xml" directory="corba" class="org.apache.axis2.corba.deployer.CorbaDeployer"/>-->
+
+    <!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
+
+
+    <!-- Following parameter will set the host name for the epr-->
+    <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
+
+    <!-- If you have a front end host which exposes this webservice using a different public URL  -->
+    <!-- use this parameter to override autodetected url -->
+    <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
+
+    <!--By default, JAXWS services are created by reading annotations. WSDL and schema are generated-->
+    <!--using a separate WSDL generator only when ?wsdl is called. Therefore, even if you engage-->
+    <!--policies etc.. to AxisService, it doesn't appear in the WSDL. By setting the following property-->
+    <!--to true, you can create the AxisService using the generated WSDL and remove the need for a-->
+    <!--WSDL generator. When ?wsdl is called, WSDL is generated in the normal way.-->
+    <parameter name="useGeneratedWSDLinJAXWS">false</parameter>
+
+    <!--    The way of adding listener to the system-->
+    <!--    <listener class="org.apache.axis2.ObserverIMPL">-->
+    <!--        <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
+    <!--    </listener>-->
+
+    <threadContextMigrators>
+        <threadContextMigrator listId="JAXWS-ThreadContextMigrator-List"
+                               class="org.apache.axis2.jaxws.addressing.migrator.EndpointContextMapMigrator"/>
+    </threadContextMigrators>
+
+    <!-- ================================================= -->
+    <!-- Message Receivers -->
+    <!-- ================================================= -->
+    <!--This is the default MessageReceiver for the system , if you want to have MessageReceivers for -->
+    <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
+    <!--any operation -->
+    <!--Note : You can override this for a particular service by adding the same element with your requirement-->
+    <messageReceivers>
+        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
+                         class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
+                         class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
+                         class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
+                         class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/ns/wsdl/in-only"
+                         class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
+                         class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+    </messageReceivers>
+
+    <!-- ================================================= -->
+    <!-- Message Formatter -->
+    <!-- ================================================= -->
+    <!--Following content type to message formatter mapping can be used to implement support for different message -->
+    <!--format  serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
+    <messageFormatters>
+        <messageFormatter contentType="application/x-www-form-urlencoded"
+                          class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
+        <messageFormatter contentType="multipart/form-data"
+                          class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
+        <messageFormatter contentType="application/xml"
+                          class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
+        <messageFormatter contentType="text/xml"
+                          class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
+        <messageFormatter contentType="application/soap+xml"
+                          class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
+    </messageFormatters>
+
+    <!-- ================================================= -->
+    <!-- Message Builders -->
+    <!-- ================================================= -->
+    <!--Following content type to builder mapping can be used to implement support for different message -->
+    <!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
+    <messageBuilders>
+        <messageBuilder contentType="application/xml"
+                        class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
+        <messageBuilder contentType="application/x-www-form-urlencoded"
+                        class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
+        <messageBuilder contentType="multipart/form-data"
+                        class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
+    </messageBuilders>
+
+    <!-- ================================================= -->
+    <!-- Transport Ins -->
+    <!-- ================================================= -->
+
+    <!-- The default configuration assumes that AxisServlet only receives requests
+         through HTTP. To allow HTTPS as well, configure a second AxisServletListener
+         with name="https" and specify the port parameter on both receivers.
+         For more information, please have a look at the servlet transport documentation:
+         http://axis.apache.org/axis2/java/core/docs/servlet-transport.html -->
+    <transportReceiver name="http"
+                       class="org.apache.axis2.transport.http.AxisServletListener"/>
+
+    <!--Uncomment if you want to have TCP transport support-->
+    <!--transportReceiver name="tcp"
+                       class="org.apache.axis2.transport.tcp.TCPServer">
+        <parameter name="port">6060</parameter-->>
+    <!--If you want to give your own host address for EPR generation-->
+    <!--uncomment the following paramter , and set it as you required.-->
+    <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
+    <!-- /transportReceiver -->
+
+    <!-- ================================================= -->
+    <!-- Transport Outs -->
+    <!-- ================================================= -->
+
+    <!--Uncomment if you want to have TCP transport support-->
+    <!--
+    <transportSender name="tcp"
+                     class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
+    -->
+    <transportSender name="local"
+                     class="org.apache.axis2.transport.local.LocalTransportSender"/>
+    <transportSender name="http"
+                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+        <parameter name="PROTOCOL">HTTP/1.1</parameter>
+        <parameter name="Transfer-Encoding">chunked</parameter>
+
+        <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages -->
+        <!--  <parameter name="OmitSOAP12Action">true</parameter>  -->
+    </transportSender>
+
+    <transportSender name="https"
+                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+        <parameter name="PROTOCOL">HTTP/1.1</parameter>
+        <parameter name="Transfer-Encoding">chunked</parameter>
+    </transportSender>
+
+    <!-- Please enable this if you need the java transport -->
+    <!-- <transportSender name="java"
+                     class="org.apache.axis2.transport.java.JavaTransportSender"/> -->
+
+    <!-- ================================================= -->
+    <!-- Global Modules  -->
+    <!-- ================================================= -->
+    <!-- Comment this to disable Addressing -->
+    <module ref="addressing"/>
+
+    <!--Configuring module , providing parameters for modules whether they refer or not-->
+    <!--<moduleConfig name="addressing">-->
+    <!--<parameter name="addressingPara">N/A</parameter>-->
+    <!--</moduleConfig>-->
+
+    <!-- ================================================= -->
+    <!-- Clustering  -->
+    <!-- ================================================= -->
+    <!--
+     To enable clustering for this node, set the value of "enable" attribute of the "clustering"
+     element to "true". The initialization of a node in the cluster is handled by the class
+     corresponding to the "class" attribute of the "clustering" element. It is also responsible for
+     getting this node to join the cluster.
+     -->
+    <clustering class="org.apache.axis2.clustering.tribes.TribesClusteringAgent" enable="false">
+
+        <!--
+           This parameter indicates whether the cluster has to be automatically initalized
+           when the AxisConfiguration is built. If set to "true" the initialization will not be
+           done at that stage, and some other party will have to explictly initialize the cluster.
+        -->
+        <parameter name="AvoidInitiation">true</parameter>
+
+        <!--
+           The membership scheme used in this setup. The only values supported at the moment are
+           "multicast" and "wka"
+
+           1. multicast - membership is automatically discovered using multicasting
+           2. wka - Well-Known Address based multicasting. Membership is discovered with the help
+                    of one or more nodes running at a Well-Known Address. New members joining a
+                    cluster will first connect to a well-known node, register with the well-known node
+                    and get the membership list from it. When new members join, one of the well-known
+                    nodes will notify the others in the group. When a member leaves the cluster or
+                    is deemed to have left the cluster, it will be detected by the Group Membership
+                    Service (GMS) using a TCP ping mechanism.
+        -->
+        <parameter name="membershipScheme">multicast</parameter>
+
+        <!--
+         The clustering domain/group. Nodes in the same group will belong to the same multicast
+         domain. There will not be interference between nodes in different groups.
+        -->
+        <parameter name="domain">wso2.carbon.domain</parameter>
+
+        <!--
+           When a Web service request is received, and processed, before the response is sent to the
+           client, should we update the states of all members in the cluster? If the value of
+           this parameter is set to "true", the response to the client will be sent only after
+           all the members have been updated. Obviously, this can be time consuming. In some cases,
+           such this overhead may not be acceptable, in which case the value of this parameter
+           should be set to "false"
+        -->
+        <parameter name="synchronizeAll">true</parameter>
+
+        <!--
+          The maximum number of times we need to retry to send a message to a particular node
+          before giving up and considering that node to be faulty
+        -->
+        <parameter name="maxRetries">10</parameter>
+
+        <!-- The multicast address to be used -->
+        <parameter name="mcastAddress">228.0.0.4</parameter>
+
+        <!-- The multicast port to be used -->
+        <parameter name="mcastPort">45564</parameter>
+
+        <!-- The frequency of sending membership multicast messages (in ms) -->
+        <parameter name="mcastFrequency">500</parameter>
+
+        <!-- The time interval within which if a member does not respond, the member will be
+         deemed to have left the group (in ms)
+         -->
+        <parameter name="memberDropTime">3000</parameter>
+
+        <!--
+           The IP address of the network interface to which the multicasting has to be bound to.
+           Multicasting would be done using this interface.
+        -->
+        <parameter name="mcastBindAddress">127.0.0.1</parameter>
+
+        <!-- The host name or IP address of this member -->
+        <parameter name="localMemberHost">127.0.0.1</parameter>
+
+        <!--
+        The TCP port used by this member. This is the port through which other nodes will
+        contact this member
+         -->
+        <parameter name="localMemberPort">4000</parameter>
+
+        <!--
+        Preserve message ordering. This will be done according to sender order.
+        -->
+        <parameter name="preserveMessageOrder">true</parameter>
+
+        <!--
+        Maintain atmost-once message processing semantics
+        -->
+        <parameter name="atmostOnceMessageSemantics">true</parameter>
+
+        <!--
+        Properties specific to this member
+        -->
+        <parameter name="properties">
+            <property name="backendServerURL" value="https://${hostName}:${httpsPort}/services/"/>
+            <property name="mgtConsoleURL" value="https://${hostName}:${httpsPort}/"/>
+        </parameter>
+
+        <!--
+           The list of static or well-known members. These entries will only be valid if the
+           "membershipScheme" above is set to "wka"
+        -->
+        <members>
+            <member>
+                <hostName>127.0.0.1</hostName>
+                <port>4000</port>
+            </member>
+            <member>
+                <hostName>127.0.0.1</hostName>
+                <port>4001</port>
+            </member>
+        </members>
+
+        <!--
+        Enable the groupManagement entry if you need to run this node as a cluster manager.
+        Multiple application domains with different GroupManagementAgent implementations
+        can be defined in this section.
+        -->
+        <groupManagement enable="false">
+            <applicationDomain name="apache.axis2.application.domain"
+                               description="Axis2 group"
+                               agent="org.apache.axis2.clustering.management.DefaultGroupManagementAgent"/>
+        </groupManagement>
+
+        <!--
+           This interface is responsible for handling management of a specific node in the cluster
+           The "enable" attribute indicates whether Node management has been enabled
+        -->
+        <nodeManager class="org.apache.axis2.clustering.management.DefaultNodeManager"
+                         enable="true"/>
+
+        <!--
+           This interface is responsible for handling state replication. The property changes in
+           the Axis2 context hierarchy in this node, are propagated to all other nodes in the cluster.
+
+           The "excludes" patterns can be used to specify the prefixes (e.g. local_*) or
+           suffixes (e.g. *_local) of the properties to be excluded from replication. The pattern
+           "*" indicates that all properties in a particular context should not be replicated.
+
+            The "enable" attribute indicates whether context replication has been enabled
+        -->
+        <stateManager class="org.apache.axis2.clustering.state.DefaultStateManager"
+                      enable="true">
+            <replication>
+                <defaults>
+                    <exclude name="local_*"/>
+                    <exclude name="LOCAL_*"/>
+                </defaults>
+                <context class="org.apache.axis2.context.ConfigurationContext">
+                    <exclude name="local_*"/>
+                </context>
+                <context class="org.apache.axis2.context.ServiceGroupContext">
+                    <exclude name="local_*"/>
+                </context>
+                <context class="org.apache.axis2.context.ServiceContext">
+                    <exclude name="local_*"/>
+                </context>
+            </replication>
+        </stateManager>
+    </clustering>
+
+    <!-- ================================================= -->
+    <!-- Phases  -->
+    <!-- ================================================= -->
+    <phaseOrder type="InFlow">
+        <!--  System predefined phases       -->
+        <phase name="Transport">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+        </phase>
+        <phase name="Addressing">
+            <handler name="AddressingBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
+                <order phase="Addressing"/>
+            </handler>
+        </phase>
+        <phase name="Security"/>
+        <phase name="PreDispatch"/>
+        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
+            <handler name="RequestURIOperationDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
+            <handler name="SOAPMessageBodyBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
+            <handler name="HTTPLocationBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
+            <handler name="GenericProviderDispatcher"
+                     class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
+            <handler name="MustUnderstandValidationDispatcher"
+                     class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
+        </phase>
+        <phase name="RMPhase"/>
+        <!--  System predefined phases       -->
+        <!--   After Postdispatch phase module author or service author can add any phase he want      -->
+        <phase name="OperationInPhase">
+            <handler name="MustUnderstandChecker"
+                     class="org.apache.axis2.jaxws.dispatchers.MustUnderstandChecker">
+                <order phase="OperationInPhase"/>
+            </handler>
+        </phase>
+        <phase name="soapmonitorPhase"/>
+    </phaseOrder>
+    <phaseOrder type="OutFlow">
+        <!--      user can add his own phases to this area  -->
+        <phase name="soapmonitorPhase"/>
+        <phase name="OperationOutPhase"/>
+        <!--system predefined phase-->
+        <!--these phase will run irrespective of the service-->
+        <phase name="RMPhase"/>
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+        <phase name="Security"/>
+    </phaseOrder>
+    <phaseOrder type="InFaultFlow">
+        <phase name="Addressing">
+            <handler name="AddressingBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
+                <order phase="Addressing"/>
+            </handler>
+        </phase>
+        <phase name="Security"/>
+        <phase name="PreDispatch"/>
+        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
+            <handler name="RequestURIOperationDispatcher"
+                     class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
+            <handler name="SOAPMessageBodyBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
+            <handler name="HTTPLocationBasedDispatcher"
+                     class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
+            <handler name="GenericProviderDispatcher"
+                     class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
+            <handler name="MustUnderstandValidationDispatcher"
+                     class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
+        </phase>
+        <phase name="RMPhase"/>
+        <!--      user can add his own phases to this area  -->
+        <phase name="OperationInFaultPhase"/>
+        <phase name="soapmonitorPhase"/>
+    </phaseOrder>
+    <phaseOrder type="OutFaultFlow">
+        <!--      user can add his own phases to this area  -->
+        <phase name="soapmonitorPhase"/>
+        <phase name="OperationOutFaultPhase"/>
+        <phase name="RMPhase"/>
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+        <phase name="Security"/>
+    </phaseOrder>
+</axisconfig>
+

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/web.xml b/juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/web.xml
new file mode 100644
index 0000000..6e718d8
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/Axis2/WEB-INF/web.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE web-app
+    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+    "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<!--
+	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.
+-->
+<web-app>
+ 
+    <context-param>
+        <param-name>log4jConfigLocation</param-name>
+        <param-value>/WEB-INF/classes/log4j.properties</param-value>
+    </context-param>
+
+    <listener>
+        <!-- this class setups the encryption key for the session-->
+        <listener-class>org.apache.juddi.adminconsole.StartupServlet</listener-class>
+    
+    </listener>
+    <servlet>
+        <servlet-name>AxisServlet</servlet-name>
+        <display-name>Apache-Axis Servlet</display-name>
+        <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
+        <!--<init-param>-->
+        <!--<param-name>axis2.xml.path</param-name>-->
+        <!--<param-value>/WEB-INF/conf/axis2.xml</param-value>-->
+        <!--<param-name>axis2.xml.url</param-name>-->
+        <!--<param-value>http://localhost/myrepo/axis2.xml</param-value>-->
+        <!--<param-name>axis2.repository.path</param-name>-->
+        <!--<param-value>/WEB-INF</param-value>-->
+        <!--<param-name>axis2.repository.url</param-name>-->
+        <!--<param-value>http://localhost/myrepo</param-value>-->
+        <!--</init-param>-->
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+   
+  
+    <servlet>
+        <servlet-name>RegistryServlet</servlet-name>
+        <display-name>Registry Servlet</display-name>
+        <servlet-class>
+            org.apache.juddi.servlets.RegistryServlet
+        </servlet-class>
+        <load-on-startup>1</load-on-startup> 
+    </servlet>
+  
+    <servlet>
+        <servlet-name>NotifyServlet</servlet-name>
+        <display-name>Notify Servlet</display-name>
+        <servlet-class>
+            org.apache.juddi.servlets.NotifyServlet
+        </servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+  
+  
+  
+    <servlet-mapping>
+        <servlet-name>AxisServlet</servlet-name>
+        <url-pattern>/servlet/AxisServlet</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>AxisServlet</servlet-name>
+        <url-pattern>*.jws</url-pattern>
+    </servlet-mapping>
+
+    <servlet-mapping>
+        <servlet-name>AxisServlet</servlet-name> 
+        <url-pattern>/services/*</url-pattern>
+    </servlet-mapping>
+ 
+	
+    <servlet-mapping>
+        <servlet-name>NotifyServlet</servlet-name>
+        <url-pattern>/notify/*</url-pattern>
+    </servlet-mapping>
+ 
+    <resource-ref>
+        <description>jUDDI DataSource</description>
+        <res-ref-name>jdbc/juddiDB</res-ref-name>
+        <res-type>javax.sql.DataSource</res-type>
+        <res-auth>Container</res-auth>
+        <res-sharing-scope>Shareable</res-sharing-scope>
+    </resource-ref>
+
+    <security-constraint>
+        <display-name>jUDDI Replication content</display-name>
+        <web-resource-collection>
+            <web-resource-name>admin</web-resource-name>
+            <url-pattern>/*</url-pattern>
+          
+          
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>replication</role-name>
+        </auth-constraint>
+        <!-- uncomment to require SSL -->
+        <user-data-constraint>
+            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
+        </user-data-constraint>
+      
+    </security-constraint>
+    <login-config> 
+        <auth-method>CLIENT-CERT</auth-method> 
+        <!-- you should consider NOT using BASIC is favor of something more secure, see your web app servers documentation for details -->
+        <realm-name>Apache jUDDI - Make sure you're using HTTPS!</realm-name> 
+    </login-config> 
+    <security-role>
+        <role-name>replication</role-name>
+    </security-role>
+</web-app>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/beans.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/beans.xml b/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/beans.xml
new file mode 100644
index 0000000..4a52c2f
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/CXF-JBossAS7Up/WEB-INF/beans.xml
@@ -0,0 +1,47 @@
+<?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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans" 
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+       xmlns:jaxws="http://cxf.apache.org/jaxws"
+	    xmlns:jaxrs="http://cxf.apache.org/jaxrs"
+		xmlns:util="http://www.springframework.org/schema/util"
+  xsi:schemaLocation="
+  http://www.springframework.org/schema/beans classpath:schemas/spring-beans.xsd
+  http://cxf.apache.org/jaxws  classpath:schemas/jaxws.xsd
+  http://cxf.apache.org/jaxrs classpath:schemas/jaxrs.xsd
+  http://www.springframework.org/schema/util classpath:schemas/spring-util.xsd
+  ">
+ 
+  <import resource="classpath:META-INF/cxf/cxf.xml" />
+  <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
+  <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
+
+ 
+
+
+  <jaxws:endpoint id="replication" implementor="org.apache.juddi.api.impl.UDDIReplicationImpl" address="/replication">
+    <jaxws:properties>
+      <entry key="schema-validation-enabled" value="true"/>
+    </jaxws:properties>
+  </jaxws:endpoint>
+
+
+
+</beans>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org


[09/12] juddi git commit: JUDDI-919 replication now works with ssl + client-cert authentication. In order to support this, we need to have two different war file (unfortunately). Included with this change set is number of typos in our deployment files (w

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/classes/schemas/jaxrs.xsd
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/classes/schemas/jaxrs.xsd b/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/classes/schemas/jaxrs.xsd
new file mode 100644
index 0000000..928a3d2
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/classes/schemas/jaxrs.xsd
@@ -0,0 +1,169 @@
+<?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.
+-->
+<xsd:schema xmlns="http://cxf.apache.org/jaxrs"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:beans="http://www.springframework.org/schema/beans"
+  xmlns:cxf-beans="http://cxf.apache.org/configuration/beans"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  targetNamespace="http://cxf.apache.org/jaxrs"
+  xmlns:tns="http://cxf.apache.org/jaxrs" 
+  elementFormDefault="qualified"
+  attributeFormDefault="unqualified"  >
+
+  <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans.xsd"/>
+  <xsd:import namespace="http://cxf.apache.org/configuration/beans" schemaLocation="http://cxf.apache.org/schemas/configuration/cxf-beans.xsd"/>
+  
+  <xsd:element name="server">
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base="beans:identifiedType">
+          <xsd:all>
+            <xsd:element name="executor" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="features" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0" />  
+            <xsd:element name="dataBinding" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="invoker" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="serviceFactories" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="properties" type="beans:mapType" minOccurs="0"/>
+            <xsd:element name="serviceBeans" type="xsd:anyType" minOccurs="0"/>            
+            <xsd:element name="modelBeans" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="model" type="model" minOccurs="0"/>
+            <xsd:element name="providers" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="extensionMappings" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="languageMappings" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="schemaLocations" type="schemasType" minOccurs="0"/>
+            <xsd:element name="resourceComparator" type="xsd:anyType" minOccurs="0"/> 
+          </xsd:all>
+          <xsd:attributeGroup ref="cxf-beans:beanAttributes"/>
+          <xsd:attribute name="address" type="xsd:string" />
+          <xsd:attribute name="bus" type="xsd:string" />
+          <xsd:attribute name="serviceClass" type="xsd:string"/>                    
+          <xsd:attribute name="transportId" type="xsd:string"/>
+          <xsd:attribute name="modelRef" type="xsd:string" />
+          <xsd:attribute name="bindingId" type="xsd:string" />          
+          <xsd:attribute name="staticSubresourceResolution" type="xsd:boolean"/>          
+          <xsd:attribute name="beanNames" type="xsd:string"/>
+          <xsd:attribute name="serviceName" type="xsd:QName"/>
+          <xsd:attribute name="docLocation" type="xsd:string"/>
+          <xsd:attribute name="publishedEndpointUrl" type="xsd:string"/>
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name="client">
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base="beans:identifiedType">
+          <xsd:all>
+            <xsd:element name="executor" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="features" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0" />
+            <xsd:element name="dataBinding" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="properties" type="beans:mapType" minOccurs="0"/>
+            <xsd:element name="providers" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="modelBeans" type="xsd:anyType" minOccurs="0"/>
+            <xsd:element name="model" type="model" minOccurs="0"/>
+            <xsd:element name="headers" type="xsd:anyType" minOccurs="0"/> 
+            <xsd:element name="schemaLocations" type="schemasType" minOccurs="0"/>
+          </xsd:all>
+          <xsd:attributeGroup ref="cxf-beans:beanAttributes"/>
+          <xsd:attribute name="address" type="xsd:string" />
+          <xsd:attribute name="serviceClass" type="xsd:string"/>
+          <xsd:attribute name="inheritHeaders" type="xsd:boolean"/>
+          <xsd:attribute name="bus" type="xsd:string" />
+          <xsd:attribute name="transportId" type="xsd:string"/>
+          <xsd:attribute name="bindingId" type="xsd:string" />
+          <xsd:attribute name="modelRef" type="xsd:string" />
+          <xsd:attribute name="username" type="xsd:string"/>
+          <xsd:attribute name="password" type="xsd:string"/>
+          <xsd:attribute name="serviceName" type="xsd:QName"/>
+          <xsd:attribute name="threadSafe" type="xsd:boolean"/>
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:complexType name="schemasType">
+    <xsd:sequence>
+      <xsd:element name="schemaLocation" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:element name="model" type="tns:model"/>
+  
+  <xsd:complexType name="model">
+    <xsd:sequence>
+      <xsd:element name="resource" minOccurs="0" maxOccurs="unbounded">
+         <xsd:complexType>
+             <xsd:sequence>
+                 <xsd:element name="operation" minOccurs="0" maxOccurs="unbounded">
+                    <xsd:complexType>
+                      <xsd:sequence>
+                         <xsd:element name="param" minOccurs="0" maxOccurs="unbounded">
+                           <xsd:complexType>
+                              <xsd:attribute name="name" type="xsd:string"/>
+                              <xsd:attribute name="type">
+                                 <xsd:simpleType>
+                                   <xsd:restriction base="xsd:string">
+                                     <xsd:enumeration value="PATH"/>
+                                     <xsd:enumeration value="QUERY"/>
+                                     <xsd:enumeration value="MATRIX"/>
+                                     <xsd:enumeration value="HEADER"/>
+                                     <xsd:enumeration value="COOKIE"/>
+                                     <xsd:enumeration value="FORM"/>
+                                     <xsd:enumeration value="CONTEXT"/>
+                                     <xsd:enumeration value="REQUEST_BODY"/>
+                                   </xsd:restriction>
+                                 </xsd:simpleType>
+                              </xsd:attribute>
+                              <xsd:attribute name="defaultValue" type="xsd:string"/>
+                              <xsd:attribute name="encoded" type="xsd:boolean"/>
+                           </xsd:complexType>
+                         </xsd:element>
+                      </xsd:sequence>
+                      <xsd:attribute name="name" type="xsd:string"/>
+                      <xsd:attribute name="path" type="xsd:string"/>
+                      <xsd:attribute name="verb" type="xsd:string"/>
+                      <xsd:attribute name="consumes" type="xsd:string"/>
+                      <xsd:attribute name="produces" type="xsd:string"/>
+                      <xsd:attribute name="oneway" type="xsd:boolean"/>
+                    </xsd:complexType>
+                 </xsd:element>
+             </xsd:sequence>
+             <xsd:attribute name="name" type="xsd:string"/>
+             <xsd:attribute name="path" type="xsd:string"/>
+             <xsd:attribute name="consumes" type="xsd:string"/>
+             <xsd:attribute name="produces" type="xsd:string"/>
+         </xsd:complexType>
+      </xsd:element>   
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:string"/>
+  </xsd:complexType>
+  
+</xsd:schema>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/classes/schemas/jaxws.xsd
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/classes/schemas/jaxws.xsd b/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/classes/schemas/jaxws.xsd
new file mode 100644
index 0000000..08a59cd
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/classes/schemas/jaxws.xsd
@@ -0,0 +1,437 @@
+<?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.
+-->
+<xsd:schema xmlns="http://cxf.apache.org/jaxws"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns:beans="http://www.springframework.org/schema/beans"
+  xmlns:cxf-beans="http://cxf.apache.org/configuration/beans"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  targetNamespace="http://cxf.apache.org/jaxws" 
+  elementFormDefault="qualified"
+  attributeFormDefault="unqualified"  >
+
+  <xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans.xsd"/>
+  <xsd:import namespace="http://cxf.apache.org/configuration/beans" schemaLocation="http://cxf.apache.org/schemas/configuration/cxf-beans.xsd"/>
+
+  <xsd:element name="endpoint">
+    <xsd:annotation>
+      <xsd:documentation>Configures a JAX-WS server. This element is associated with the org.apache.cxf.jaxws.EndpointImpl object.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base="beans:identifiedType">
+          <xsd:all>
+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures the message binding used by the endpoint. Message bindings are configured using implementations of the 
+                  org.apache.cxf.binding.BindingFactory interface. The SOAP binding is configured using the soap:soapBinding bean.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="dataBinding" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures the data binding used by the endpoint. The class implementing the JAXB data binding is org.apache.cxf.jaxb.JAXBDataBinding.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="executor" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures a Java executor to handle the service.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="features" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of beans that configure advanced features like WS-RM.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="handlers" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of JAX-WS handlers to add to the endpoint's processing chain.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="implementor" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures the bean implementing the service. If this child is used you should not use the implementor attribute.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process incoming requests.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process incoming fault messages.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="invoker" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies an implementation of the org.apache.cxf.service.Invoker interface to be used by the service. The Invoker 
+                  implementation controls how a service is invoked. For example, it controls if each request is handled by a new instance of the 
+                  service implementation or if state is preserved across invocations.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process outgoing responses.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process outgoing fault messages.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="properties" type="beans:mapType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a map of properties that are passed to the endpoint.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="schemaLocations" type="schemasType" minOccurs="0"/>
+            <xsd:element name="serviceFactory" type="xsd:anyType" minOccurs="0"/>
+          </xsd:all>
+          <xsd:attributeGroup ref="cxf-beans:beanAttributes"/>
+          <xsd:attribute name="address" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the HTTP address of the endpoint. This value will override the value specified in the services 
+                contract.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="bindingUri" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the ID of the data binding the service will use. For SOAP bindings the IDs are defined in the JAX-WS 
+                specification. For other data bindings, the ID is the namespace of the WSDL extensions used to configure the
+                binding.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="bus" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the ID of the Spring bean configuring the bus managing the endpoint.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="implementor" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the class implementing the service. You can specify the implementation class using either the class 
+                name or an ID reference to a Spring bean configuring the implementation class. This class needs to be on the 
+                classpath.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="implementorClass" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the name of the class implementing the service. This attribute is useful when you specify the implementor 
+                with the ref bean which is wrapped by using Spring AOP.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="publish" type="xsd:boolean" default="true">
+            <xsd:annotation>
+              <xsd:documentation>Specifies if the service should be automatically published.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="publishedEndpointUrl" type="xsd:string"/>
+          <xsd:attribute name="endpointName" type="xsd:QName">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the value of the service's WSDL port element's name attribute.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="serviceName" type="xsd:QName">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the value of the service's WSDL service element's name attribute.</xsd:documentation>
+            </xsd:annotation>            
+          </xsd:attribute>
+          <xsd:attribute name="transportId" type="xsd:string">
+        	<xsd:annotation>
+              <xsd:documentation>Specifies the transportId that endpoint will use, it will override the transport which is defined in the wsdl.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>  
+          <xsd:attribute name="wsdlLocation" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the location of the endpoint's WSDL contract. The WSDL contract's location is relative to the folder 
+                from which the service is deployed.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:element name="server">
+    <xsd:annotation>
+      <xsd:documentation>Configures a JAX-WS server. The element is associated with the org.apache.cxf.jaxws.support.JaxWsServerFactoryBean object.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base="beans:identifiedType">
+          <xsd:all>
+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures the message binding used by the endpoint. Message bindings are configured using implementations of the 
+                  org.apache.cxf.binding.BindingFactory interface. The SOAP binding is configured using the soap:soapBinding bean.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="dataBinding" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures the data binding used by the endpoint. The class implementing the JAXB data binding is
+                  org.apache.cxf.jaxb.JAXBDataBinding.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="executor" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures a Java executor to handle the service.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="features" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of beans that configure advanced features like WS-RM.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="handlers" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of JAX-WS handlers to add to the endpoint's processing chain.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process incoming requests.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process incoming fault messages.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="invoker" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies an implementation of the org.apache.cxf.service.Invoker interface to be used by the service. The Invoker 
+                  implementation controls how a service is invoked. For example, it controls if each request is handled by a new instance of the 
+                  service implementation or if state is preserved across invocations.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process outgoing responses.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process outgoing fault messages.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="properties" type="beans:mapType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a map of properties that are passed to the endpoint.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="schemaLocations" type="schemasType" minOccurs="0"/>
+            <xsd:element name="serviceBean" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures the bean implementing the service. If this child is used you should not use the serviceBean attribute.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="serviceFactory" type="xsd:anyType" minOccurs="0"/>
+          </xsd:all>
+          <xsd:attributeGroup ref="cxf-beans:beanAttributes"/>
+          <xsd:attribute name="address" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the HTTP address of the endpoint. This value will override the value specified in the services 
+                contract.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="bindingId" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the ID of the data binding the service will use. For SOAP bindings the IDs are defined in the JAX-WS 
+                specification. For other data bindings, the ID is the namespace of the WSDL extensions used to configure the
+                binding.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="bus" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the ID of the Spring bean configuring the bus managing the endpoint.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="serviceClass" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the name of the class implementing the service. This attribute is useful when you specify the implementor 
+                with the ref bean which is wrapped by using Spring AOP.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="serviceBean" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the class implementing the service. You can specify the implementation class using either the class 
+                name or an ID reference to a Spring bean configuring the implementation class. This class needs to be on the 
+                classpath.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="start" type="xsd:boolean" default="true">
+            <xsd:annotation>
+              <xsd:documentation>Specifies if the service should be automatically published.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+           <xsd:attribute name="transportId" type="xsd:string">
+        	<xsd:annotation>
+              <xsd:documentation>Specifies the transportId that endpoint will use, it will override the transport which is defined in the wsdl.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="wsdlLocation" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the location of the endpoint's WSDL contract. The WSDL contract's location is relative to the folder 
+                from which the service is deployed.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="endpointName" type="xsd:QName">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the value of the service's WSDL port element's name attribute.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="serviceName" type="xsd:QName">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the value of the service's WSDL service element's name attribute.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+
+  <xsd:element name="client">
+    <xsd:annotation>
+      <xsd:documentation>Configures a JAX-WS client.</xsd:documentation>
+    </xsd:annotation>
+    <xsd:complexType>
+      <xsd:complexContent>
+        <xsd:extension base="beans:identifiedType">
+          <xsd:all>
+            <xsd:element name="binding" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures the message binding used by the endpoint. Message bindings are configured using implementations of the 
+                  org.apache.cxf.binding.BindingFactory interface. The SOAP binding is configured using the soap:soapBinding bean.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="dataBinding" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Configures the data binding used by the endpoint. The class implementing the JAXB data binding is org.apache.cxf.jaxb.JAXBDataBinding.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="features" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of beans that configure advanced features like WS-RM.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="handlers" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of JAX-WS handlers to add to the endpoint's processing chain.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="inInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process incoming responses.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="inFaultInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process incoming fault messages.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="outInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process outgoing requests.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="outFaultInterceptors" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a list of interceptors to process outgoing fault messages.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="properties" type="beans:mapType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a map of properties that are passed to the endpoint.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="conduitSelector" type="xsd:anyType" minOccurs="0">
+              <xsd:annotation>
+                <xsd:documentation>Specifies a org.apache.cxf.endpoint.ConduitSelector implementation. ConduitSelector implementations override the 
+                  strategy used to select the Conduit used to process outgoing messages.</xsd:documentation>
+              </xsd:annotation>
+            </xsd:element>
+          </xsd:all>
+          <xsd:attributeGroup ref="cxf-beans:beanAttributes"/>
+          <xsd:attribute name="address" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the HTTP address of the endpoint on which the client makes requests. This value will override the value 
+                specified in the services contract.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="bindingId" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the ID of the data binding the client will use. For SOAP bindings the IDs are defined in the JAX-WS 
+                specification. For other data bindings, the ID is the namespace of the WSDL extensions used to configure the
+                binding.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="bus" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the ID of the Spring bean configuring the bus managing the endpoint.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="endpointName" type="xsd:QName">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the value of the WSDL port element's name attribute for the service on which the client is making 
+                requests.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="password" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies a password that is used for simple username/password authentication.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="serviceClass" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the name of the class implementing the client.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="serviceName" type="xsd:QName">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the value of the WSDL service element's name attribute for the service on which the client is making 
+                requests.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="username" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies a password that is used for simple username/password authentication.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="transportId" type="xsd:string">
+        	<xsd:annotation>
+              <xsd:documentation>Specifies the transportId that endpoint will use, it will override the transport which is defined in the wsdl.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+          <xsd:attribute name="wsdlLocation" type="xsd:string">
+            <xsd:annotation>
+              <xsd:documentation>Specifies the location of the endpoint's WSDL contract. The WSDL contract's location is relative to the folder 
+                from which the client is deployed.</xsd:documentation>
+            </xsd:annotation>
+          </xsd:attribute>
+        </xsd:extension>
+      </xsd:complexContent>
+    </xsd:complexType>
+  </xsd:element>
+  
+  <xsd:complexType name="schemasType">
+    <xsd:sequence>
+      <xsd:element name="schemaLocation" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:complexType>
+  
+</xsd:schema>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/classes/schemas/spring-beans.xsd
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/classes/schemas/spring-beans.xsd b/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/classes/schemas/spring-beans.xsd
new file mode 100644
index 0000000..fe427c2
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/classes/schemas/spring-beans.xsd
@@ -0,0 +1,1203 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/beans"
+		xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+		targetNamespace="http://www.springframework.org/schema/beans">
+
+	<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
+
+	<xsd:annotation>
+		<xsd:documentation><![CDATA[
+	Spring XML Beans Schema, version 3.2
+	Authors: Juergen Hoeller, Rob Harrop, Mark Fisher, Chris Beams
+
+	This defines a simple and consistent way of creating a namespace
+	of JavaBeans objects, managed by a Spring BeanFactory, read by
+	XmlBeanDefinitionReader (with DefaultBeanDefinitionDocumentReader).
+
+	This document type is used by most Spring functionality, including
+	web application contexts, which are based on bean factories.
+
+	Each "bean" element in this document defines a JavaBean.
+	Typically the bean class is specified, along with JavaBean properties
+	and/or constructor arguments.
+
+	A bean instance can be a "singleton" (shared instance) or a "prototype"
+	(independent instance). Further scopes can be provided by extended
+	bean factories, for example in a web environment.
+
+	References among beans are supported, that is, setting a JavaBean property
+	or a constructor argument to refer to another bean in the same factory
+	(or an ancestor factory).
+
+	As alternative to bean references, "inner bean definitions" can be used.
+	Singleton flags of such inner bean definitions are effectively ignored:
+	inner beans are typically anonymous prototypes.
+
+	There is also support for lists, sets, maps, and java.util.Properties
+	as bean property types or constructor argument types.
+		]]></xsd:documentation>
+	</xsd:annotation>
+
+	<!-- base types -->
+	<xsd:complexType name="identifiedType" abstract="true">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	The unique identifier for a bean. The scope of the identifier
+	is the enclosing bean factory.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:attribute name="id" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The unique identifier for a bean. A bean id may not be used more than once
+	within the same <beans> element.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+	<!-- Top-level <beans> tag -->
+	<xsd:element name="beans">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Container for <bean> and other elements, typically the root element in the document.
+	Allows the definition of default values for all nested bean definitions. May itself
+	be nested for the purpose of defining a subset of beans with certain default values or
+	to be registered only when certain profile(s) are active. Any such nested <beans> element
+	must be declared as the last element in the document.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="description" minOccurs="0"/>
+				<xsd:choice minOccurs="0" maxOccurs="unbounded">
+					<xsd:element ref="import"/>
+					<xsd:element ref="alias"/>
+					<xsd:element ref="bean"/>
+					<xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+				</xsd:choice>
+				<xsd:element ref="beans" minOccurs="0" maxOccurs="unbounded"/>
+			</xsd:sequence>
+			<xsd:attribute name="profile" use="optional" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The set of profiles for which this <beans> element should be parsed. Multiple profiles
+	can be separated by spaces, commas, or semi-colons.
+
+	If one or more of the specified profiles are active at time of parsing, the <beans>
+	element will be parsed, and all of its <bean> elements registered, &lt;import&gt;
+	elements followed, etc.  If none of the specified profiles are active at time of
+	parsing, then the entire element and its contents will be ignored.
+
+	If a profile is prefixed with the NOT operator '!', e.g.
+
+		<beans profile="p1,!p2">
+
+	indicates that the <beans> element should be parsed if profile "p1" is active or
+	if profile "p2" is not active.
+
+	Profiles are activated in one of two ways:
+		Programmatic:
+			ConfigurableEnvironment#setActiveProfiles(String...)
+			ConfigurableEnvironment#setDefaultProfiles(String...)
+
+		Properties (typically through -D system properties, environment variables, or
+		servlet context init params):
+			spring.profiles.active=p1,p2
+			spring.profiles.default=p1,p2
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="default-lazy-init" default="default" type="defaultable-boolean">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The default 'lazy-init' value; see the documentation for the
+	'lazy-init' attribute of the 'bean' element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="default-merge" default="default" type="defaultable-boolean">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The default 'merge' value; see the documentation for the
+	'merge' attribute of the various collection elements. The default
+	is 'false'.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="default-autowire" default="default">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The default 'autowire' value; see the documentation for the
+	'autowire' attribute of the 'bean' element. The default is 'default'.
+					]]></xsd:documentation>
+				</xsd:annotation>
+				<xsd:simpleType>
+					<xsd:restriction base="xsd:NMTOKEN">
+						<xsd:enumeration value="default"/>
+						<xsd:enumeration value="no"/>
+						<xsd:enumeration value="byName"/>
+						<xsd:enumeration value="byType"/>
+						<xsd:enumeration value="constructor"/>
+					</xsd:restriction>
+				</xsd:simpleType>
+			</xsd:attribute>
+			<xsd:attribute name="default-autowire-candidates" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	A default bean name pattern for identifying autowire candidates:
+	e.g. "*Service", "data*", "*Service*", "data*Service".
+	Also accepts a comma-separated list of patterns: e.g. "*Service,*Dao".
+	See the documentation for the 'autowire-candidate' attribute of the
+	'bean' element for the semantic details of autowire candidate beans.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="default-init-method" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The default 'init-method' value; see the documentation for the
+	'init-method' attribute of the 'bean' element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="default-destroy-method" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The default 'destroy-method' value; see the documentation for the
+	'destroy-method' attribute of the 'bean' element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:anyAttribute namespace="##other" processContents="lax"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="description">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Contains informative text describing the purpose of the enclosing element.
+	Used primarily for user documentation of XML bean definition documents.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType mixed="true">
+			<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="import">
+		<xsd:annotation>
+			<xsd:documentation source="java:org.springframework.core.io.Resource"><![CDATA[
+	Specifies an XML bean definition resource to import.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:restriction base="xsd:anyType">
+					<xsd:attribute name="resource" type="xsd:string" use="required">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The relative resource location of the XML (bean definition) file to import,
+	for example "myImport.xml" or "includes/myImport.xml" or "../myImport.xml".
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:restriction>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="alias">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Defines an alias for a bean (which can reside in a different definition
+	resource).
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:restriction base="xsd:anyType">
+					<xsd:attribute name="name" type="xsd:string" use="required">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the bean to define an alias for.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="alias" type="xsd:string" use="required">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The alias name to define for the bean.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:restriction>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:group name="beanElements">
+		<xsd:sequence>
+			<xsd:element ref="description" minOccurs="0"/>
+			<xsd:choice minOccurs="0" maxOccurs="unbounded">
+				<xsd:element ref="meta"/>
+				<xsd:element ref="constructor-arg"/>
+				<xsd:element ref="property"/>
+				<xsd:element ref="qualifier"/>
+				<xsd:element ref="lookup-method"/>
+				<xsd:element ref="replaced-method"/>
+				<xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+			</xsd:choice>
+		</xsd:sequence>
+	</xsd:group>
+
+	<xsd:attributeGroup name="beanAttributes">
+		<xsd:attribute name="name" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Can be used to create one or more aliases illegal in an (XML) id.
+	Multiple aliases can be separated by any number of spaces, commas,
+	or semi-colons (or indeed any mixture of the three).
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="class" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation source="java:java.lang.Class"><![CDATA[
+	The fully qualified name of the bean's class, except if it serves only
+	as a parent definition for child bean definitions.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="parent" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The name of the parent bean definition.
+
+	Will use the bean class of the parent if none is specified, but can
+	also override it. In the latter case, the child bean class must be
+	compatible with the parent, i.e. accept the parent's property values
+	and constructor argument values, if any.
+
+	A child bean definition will inherit constructor argument values,
+	property values and method overrides from the parent, with the option
+	to add new values. If init method, destroy method, factory bean and/or
+	factory method are specified, they will override the corresponding
+	parent settings.
+
+	The remaining settings will always be taken from the child definition:
+	depends on, autowire mode, scope, lazy init.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="scope" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The scope of this bean: typically "singleton" (one shared instance,
+	which will be returned by all calls to getBean with the given id), or
+	"prototype" (independent instance resulting from each call to getBean).
+
+	By default, a bean will be a singleton, unless the bean has a parent
+	bean definition in which case it will inherit the parent's scope.
+
+	Singletons are most commonly used, and are ideal for multi-threaded
+	service objects. Further scopes, such as "request" or "session", might
+	be supported by extended bean factories (e.g. in a web environment).
+
+	Inner bean definitions inherit the singleton status of their containing
+	bean definition, unless explicitly specified: The inner bean will be a
+	singleton if the containing bean is a singleton, and a prototype if
+	the containing bean has any other scope.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="abstract" type="xsd:boolean">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Is this bean "abstract", that is, not meant to be instantiated itself
+	but rather just serving as parent for concrete child bean definitions?
+	The default is "false". Specify "true" to tell the bean factory to not
+	try to instantiate that particular bean in any case.
+
+	Note: This attribute will not be inherited by child bean definitions.
+	Hence, it needs to be specified per abstract bean definition.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="lazy-init" default="default" type="defaultable-boolean">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Indicates whether or not this bean is to be lazily initialized.
+	If false, it will be instantiated on startup by bean factories
+	that perform eager initialization of singletons. The default is
+	"false".
+
+	Note: This attribute will not be inherited by child bean definitions.
+	Hence, it needs to be specified per concrete bean definition.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="autowire" default="default">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Controls whether bean properties are "autowired".
+	This is an automagical process in which bean references don't need
+	to be coded explicitly in the XML bean definition file, but rather the
+	Spring container works out dependencies.
+
+	There are 4 modes:
+
+	1. "no"
+	The traditional Spring default. No automagical wiring. Bean references
+	must be defined in the XML file via the <ref/> element (or "ref"
+	attribute). We recommend this in most cases as it makes documentation
+	more explicit.
+
+	Note that this default mode also allows for annotation-driven autowiring,
+	if activated. "no" refers to externally driven autowiring only, not
+	affecting any autowiring demands that the bean class itself expresses.
+
+	2. "byName"
+	Autowiring by property name. If a bean of class Cat exposes a "dog"
+	property, Spring will try to set this to the value of the bean "dog"
+	in the current container. If there is no matching bean by name, nothing
+	special happens.
+
+	3. "byType"
+	Autowiring if there is exactly one bean of the property type in the
+	container. If there is more than one, a fatal error is raised, and
+	you cannot use byType autowiring for that bean. If there is none,
+	nothing special happens.
+
+	4. "constructor"
+	Analogous to "byType" for constructor arguments. If there is not exactly
+	one bean of the constructor argument type in the bean factory, a fatal
+	error is raised.
+
+	Note that explicit dependencies, i.e. "property" and "constructor-arg"
+	elements, always override autowiring.
+
+	Note: This attribute will not be inherited by child bean definitions.
+	Hence, it needs to be specified per concrete bean definition.
+				]]></xsd:documentation>
+			</xsd:annotation>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:NMTOKEN">
+					<xsd:enumeration value="default"/>
+					<xsd:enumeration value="no"/>
+					<xsd:enumeration value="byName"/>
+					<xsd:enumeration value="byType"/>
+					<xsd:enumeration value="constructor"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:attribute>
+		<xsd:attribute name="depends-on" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The names of the beans that this bean depends on being initialized.
+	The bean factory will guarantee that these beans get initialized
+	before this bean.
+
+	Note that dependencies are normally expressed through bean properties
+	or constructor arguments. This property should just be necessary for
+	other kinds of dependencies like statics (*ugh*) or database preparation
+	on startup.
+
+	Note: This attribute will not be inherited by child bean definitions.
+	Hence, it needs to be specified per concrete bean definition.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="autowire-candidate" default="default" type="defaultable-boolean">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Indicates whether or not this bean should be considered when looking
+	for matching candidates to satisfy another bean's autowiring requirements.
+	Note that this does not affect explicit references by name, which will get
+	resolved even if the specified bean is not marked as an autowire candidate.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="primary" type="xsd:boolean">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Specifies that this bean should be given preference when multiple
+	candidates are qualified to autowire a single-valued dependency.
+	If exactly one 'primary' bean exists among the candidates, it
+	will be the autowired value.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="init-method" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The name of the custom initialization method to invoke after setting
+	bean properties. The method must have no arguments, but may throw any
+	exception.
+
+	This is an alternative to implementing Spring's InitializingBean
+	interface or marking a method with the PostConstruct annotation.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="destroy-method" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The name of the custom destroy method to invoke on bean factory shutdown.
+	The method must have no arguments, but may throw any exception.
+
+	This is an alternative to implementing Spring's DisposableBean
+	interface or the standard Java Closeable/AutoCloseable interface,
+	or marking a method with the PreDestroy annotation.
+
+	Note: Only invoked on beans whose lifecycle is under the full
+	control of the factory - which is always the case for singletons,
+	but not guaranteed for any other scope.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="factory-method" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The name of a factory method to use to create this object. Use
+	constructor-arg elements to specify arguments to the factory method,
+	if it takes arguments. Autowiring does not apply to factory methods.
+
+	If the "class" attribute is present, the factory method will be a static
+	method on the class specified by the "class" attribute on this bean
+	definition. Often this will be the same class as that of the constructed
+	object - for example, when the factory method is used as an alternative
+	to a constructor. However, it may be on a different class. In that case,
+	the created object will *not* be of the class specified in the "class"
+	attribute. This is analogous to FactoryBean behavior.
+
+	If the "factory-bean" attribute is present, the "class" attribute is not
+	used, and the factory method will be an instance method on the object
+	returned from a getBean call with the specified bean name. The factory
+	bean may be defined as a singleton or a prototype.
+
+	The factory method can have any number of arguments. Autowiring is not
+	supported. Use indexed constructor-arg elements in conjunction with the
+	factory-method attribute.
+
+	Setter Injection can be used in conjunction with a factory method.
+	Method Injection cannot, as the factory method returns an instance,
+	which will be used when the container creates the bean.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="factory-bean" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Alternative to class attribute for factory-method usage.
+	If this is specified, no class attribute should be used.
+	This must be set to the name of a bean in the current or
+	ancestor factories that contains the relevant factory method.
+	This allows the factory itself to be configured using Dependency
+	Injection, and an instance (rather than static) method to be used.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:anyAttribute namespace="##other" processContents="lax"/>
+	</xsd:attributeGroup>
+
+	<xsd:element name="meta" type="metaType">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Arbitrary metadata attached to a bean definition.
+			]]></xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+
+	<xsd:complexType name="metaType">
+		<xsd:attribute name="key" type="xsd:string" use="required">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The key name of the metadata attribute being defined.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="value" type="xsd:string" use="required">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The value of the metadata attribute being defined (as a simple String).
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+	<xsd:element name="bean">
+		<xsd:annotation>
+			<xsd:documentation source="java:org.springframework.beans.factory.config.BeanDefinition"><![CDATA[
+	Defines a single (usually named) bean.
+
+	A bean definition may contain nested tags for constructor arguments,
+	property values, lookup methods, and replaced methods. Mixing constructor
+	injection and setter injection on the same bean is explicitly supported.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="identifiedType">
+					<xsd:group ref="beanElements"/>
+					<xsd:attributeGroup ref="beanAttributes"/>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="constructor-arg">
+		<xsd:annotation>
+			<xsd:documentation source="java:org.springframework.beans.factory.config.ConstructorArgumentValues">
+				<![CDATA[
+	Bean definitions can specify zero or more constructor arguments.
+	This is an alternative to "autowire constructor".
+	Arguments correspond to either a specific index of the constructor
+	argument list or are supposed to be matched generically by type.
+
+	Note: A single generic argument value will just be used once, rather
+	than potentially matched multiple times (as of Spring 1.1).
+
+	constructor-arg elements are also used in conjunction with the
+	factory-method element to construct beans using static or instance
+	factory methods.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="description" minOccurs="0"/>
+				<xsd:choice minOccurs="0" maxOccurs="1">
+					<xsd:element ref="bean"/>
+					<xsd:element ref="ref"/>
+					<xsd:element ref="idref"/>
+					<xsd:element ref="value"/>
+					<xsd:element ref="null"/>
+					<xsd:element ref="array"/>
+					<xsd:element ref="list"/>
+					<xsd:element ref="set"/>
+					<xsd:element ref="map"/>
+					<xsd:element ref="props"/>
+					<xsd:any namespace="##other" processContents="strict"/>
+				</xsd:choice>
+			</xsd:sequence>
+			<xsd:attribute name="index" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The exact index of the argument in the constructor argument list.
+	Only needed to avoid ambiguities, e.g. in case of 2 arguments of
+	the exact same type.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="type" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The exact type of the constructor argument. Only needed to avoid
+	ambiguities, e.g. in case of 2 single argument constructors
+	that can both be converted from a String.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="name" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The exact name of the argument in the constructor argument list.
+	Only needed to avoid ambiguities, e.g. in case of 2 arguments of
+	the exact same type. Note: This requires debug symbols to be
+	stored in the class file in order to introspect argument names!
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="ref" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<ref bean='...'/>" element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="value" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<value>...<value/>" element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="property" type="propertyType">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Bean definitions can have zero or more properties.
+	Property elements correspond to JavaBean setter methods exposed
+	by the bean classes. Spring supports primitives, references to other
+	beans in the same or related factories, lists, maps and properties.
+			]]></xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="qualifier">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Bean definitions can provide qualifiers to match against annotations
+	on a field or parameter for fine-grained autowire candidate resolution.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:element ref="attribute" minOccurs="0" maxOccurs="unbounded"/>
+			</xsd:sequence>
+			<xsd:attribute name="type" type="xsd:string" default="org.springframework.beans.factory.annotation.Qualifier"/>
+			<xsd:attribute name="value" type="xsd:string"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="attribute" type="metaType">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A qualifier element may contain attribute child elements as key-value
+	pairs. These will be available for matching against attributes of a
+	qualifier annotation on an autowired field or parameter if present.
+			]]></xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="lookup-method">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A lookup method causes the IoC container to override the given method
+	and return the bean with the name given in the bean attribute. This is
+	a form of Method Injection. It is particularly useful as an alternative
+	to implementing the BeanFactoryAware interface, in order to be able to
+	make getBean() calls for non-singleton instances at runtime. In this
+	case, Method Injection is a less invasive alternative.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:restriction base="xsd:anyType">
+					<xsd:attribute name="name" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the lookup method. This method must take no arguments.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="bean" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the bean in the current or ancestor factories that
+	the lookup method should resolve to. Often this bean will be a
+	prototype, in which case the lookup method will return a distinct
+	instance on every invocation. This is useful for single-threaded objects.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:restriction>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="replaced-method">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Similar to the lookup method mechanism, the replaced-method element
+	is used to control IoC container method overriding: Method Injection.
+	This mechanism allows the overriding of a method with arbitrary code.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:sequence>
+				<xsd:choice minOccurs="0" maxOccurs="unbounded">
+					<xsd:element ref="arg-type"/>
+				</xsd:choice>
+			</xsd:sequence>
+			<xsd:attribute name="name" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The name of the method whose implementation must be replaced by the
+	IoC container. If this method is not overloaded, there is no need
+	to use arg-type subelements. If this method is overloaded, arg-type
+	subelements must be used for all override definitions for the method.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+			<xsd:attribute name="replacer" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation source="java:org.springframework.beans.factory.support.MethodReplacer"><![CDATA[
+	Bean name of an implementation of the MethodReplacer interface in the
+	current or ancestor factories. This may be a singleton or prototype
+	bean. If it is a prototype, a new instance will be used for each
+	method replacement. Singleton usage is the norm.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="arg-type">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Identifies an argument for a replaced method in the event of
+	method overloading.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType mixed="true">
+			<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+			<xsd:attribute name="match" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	Specification of the type of an overloaded method argument as a String.
+	For convenience, this may be a substring of the FQN. E.g. all the
+	following would match "java.lang.String":
+	- java.lang.String
+	- String
+	- Str
+
+	As the number of arguments will be checked also, this convenience
+	can often be used to save typing.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="ref">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Defines a reference to another bean in this factory or an external
+	factory (parent or included factory).
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:restriction base="xsd:anyType">
+					<xsd:attribute name="bean" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the referenced bean.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="local" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the referenced bean. The value must be a bean ID and will be
+	checked by the Spring container. This is therefore the preferred technique
+	for referencing beans within the same bean factory XML file.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="parent" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the referenced bean in a parent factory.
+						]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:restriction>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="idref">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	The id of another bean in this factory or an external factory
+	(parent or included factory).
+	While a regular 'value' element could instead be used for the
+	same effect, using idref indicates that the Spring container
+	should check that the value actually corresponds to a bean id.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:restriction base="xsd:anyType">
+					<xsd:attribute name="bean" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the referenced bean.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="local" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The name of the referenced bean. The value must be a bean ID and will be
+	checked by the Spring container. This is therefore the preferred technique
+	for referencing beans within the same bean factory XML file.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:restriction>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="value">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Contains a string representation of a property value.
+	The property may be a string, or may be converted to the required
+	type using the JavaBeans PropertyEditor machinery. This makes it
+	possible for application developers to write custom PropertyEditor
+	implementations that can convert strings to arbitrary target objects.
+
+	Note that this is recommended for simple objects only. Configure
+	more complex objects by populating JavaBean properties with
+	references to other beans.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType mixed="true">
+			<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+			<xsd:attribute name="type" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The exact type that the value should be converted to. Only needed
+	if the type of the target property or constructor argument is
+	too generic: for example, in case of a collection element.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="null">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Denotes a Java null value. Necessary because an empty "value" tag
+	will resolve to an empty String, which will not be resolved to a
+	null value unless a special PropertyEditor does so.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType mixed="true">
+			<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<!-- Collection Elements -->
+	<xsd:group name="collectionElements">
+		<xsd:sequence>
+			<xsd:element ref="description" minOccurs="0"/>
+			<xsd:choice minOccurs="0" maxOccurs="unbounded">
+				<xsd:element ref="bean"/>
+				<xsd:element ref="ref"/>
+				<xsd:element ref="idref"/>
+				<xsd:element ref="value"/>
+				<xsd:element ref="null"/>
+				<xsd:element ref="array"/>
+				<xsd:element ref="list"/>
+				<xsd:element ref="set"/>
+				<xsd:element ref="map"/>
+				<xsd:element ref="props"/>
+				<xsd:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
+			</xsd:choice>
+		</xsd:sequence>
+	</xsd:group>
+
+	<xsd:element name="array">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	An array can contain multiple inner bean, ref, collection, or value elements.
+	This configuration element will always result in an array, even when being
+	defined e.g. as a value for a map with value type Object.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="listOrSetType">
+					<xsd:attribute name="merge" default="default" type="defaultable-boolean">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Enables/disables merging for collections when using parent/child beans.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="list">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A list can contain multiple inner bean, ref, collection, or value elements.
+	A list can also map to an array type; the necessary conversion is performed
+	automatically.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="listOrSetType">
+					<xsd:attribute name="merge" default="default" type="defaultable-boolean">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Enables/disables merging for collections when using parent/child beans.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="set">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A set can contain multiple inner bean, ref, collection, or value elements.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="listOrSetType">
+					<xsd:attribute name="merge" default="default" type="defaultable-boolean">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Enables/disables merging for collections when using parent/child beans.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="map">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A mapping from a key to an object. Maps may be empty.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="mapType">
+					<xsd:attribute name="merge" default="default" type="defaultable-boolean">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Enables/disables merging for collections when using parent/child beans.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="entry" type="entryType">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A map entry can be an inner bean, ref, value, or collection.
+	The key of the entry is given by the "key" attribute or child element.
+			]]></xsd:documentation>
+		</xsd:annotation>
+	</xsd:element>
+
+	<xsd:element name="props">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	Props elements differ from map elements in that values must be strings.
+	Props may be empty.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="propsType">
+					<xsd:attribute name="merge" default="default" type="defaultable-boolean">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Enables/disables merging for collections when using parent/child beans.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="key">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	A key element can contain an inner bean, ref, value, or collection.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:group ref="collectionElements"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="prop">
+		<xsd:annotation>
+			<xsd:documentation><![CDATA[
+	The string value of the property. Note that whitespace is trimmed
+	off to avoid unwanted whitespace caused by typical XML formatting.
+			]]></xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType mixed="true">
+			<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
+			<xsd:attribute name="key" type="xsd:string" use="required">
+				<xsd:annotation>
+					<xsd:documentation><![CDATA[
+	The key of the property entry.
+					]]></xsd:documentation>
+				</xsd:annotation>
+			</xsd:attribute>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:complexType name="propertyType">
+		<xsd:sequence>
+			<xsd:element ref="description" minOccurs="0"/>
+			<xsd:choice minOccurs="0" maxOccurs="1">
+				<xsd:element ref="meta"/>
+				<xsd:element ref="bean"/>
+				<xsd:element ref="ref"/>
+				<xsd:element ref="idref"/>
+				<xsd:element ref="value"/>
+				<xsd:element ref="null"/>
+				<xsd:element ref="array"/>
+				<xsd:element ref="list"/>
+				<xsd:element ref="set"/>
+				<xsd:element ref="map"/>
+				<xsd:element ref="props"/>
+				<xsd:any namespace="##other" processContents="strict"/>
+			</xsd:choice>
+		</xsd:sequence>
+		<xsd:attribute name="name" type="xsd:string" use="required">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	The name of the property, following JavaBean naming conventions.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="ref" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<ref bean='...'/>".
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="value" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<value>...</value>" element.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+	<!-- Collection Types -->
+
+	<!-- base type for collections that have (possibly) typed nested values -->
+	<xsd:complexType name="collectionType">
+		<xsd:attribute name="value-type" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation source="java:java.lang.Class"><![CDATA[
+	The default Java type for nested values. Must be a fully qualified
+	class name.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+	<!-- 'list' and 'set' collection type -->
+	<xsd:complexType name="listOrSetType">
+		<xsd:complexContent>
+			<xsd:extension base="collectionType">
+				<xsd:group ref="collectionElements"/>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<!-- 'map' element type -->
+	<xsd:complexType name="mapType">
+		<xsd:complexContent>
+			<xsd:extension base="collectionType">
+				<xsd:sequence>
+					<xsd:element ref="description" minOccurs="0"/>
+					<xsd:choice minOccurs="0" maxOccurs="unbounded">
+						<xsd:element ref="entry"/>
+					</xsd:choice>
+				</xsd:sequence>
+				<xsd:attribute name="key-type" type="xsd:string">
+					<xsd:annotation>
+						<xsd:documentation source="java:java.lang.Class"><![CDATA[
+	The default Java type for nested entry keys. Must be a fully qualified
+	class name.
+						]]></xsd:documentation>
+					</xsd:annotation>
+				</xsd:attribute>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<!-- 'entry' element type -->
+	<xsd:complexType name="entryType">
+		<xsd:sequence>
+			<xsd:element ref="key" minOccurs="0"/>
+			<xsd:group ref="collectionElements"/>
+		</xsd:sequence>
+		<xsd:attribute name="key" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	Each map element must specify its key as attribute or as child element.
+	A key attribute is always a String value.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="key-ref" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a to a "key" element with a nested
+	"<ref bean='...'/>".
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="value" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<value>...</value>"
+	element.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="value-ref" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a nested "<ref bean='...'/>".
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+		<xsd:attribute name="value-type" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation><![CDATA[
+	A short-cut alternative to a 'type' attribute on a nested
+	"<value type='...' >...</value>" element.
+				]]></xsd:documentation>
+			</xsd:annotation>
+		</xsd:attribute>
+	</xsd:complexType>
+
+	<!-- 'props' collection type -->
+	<xsd:complexType name="propsType">
+		<xsd:complexContent>
+			<xsd:extension base="collectionType">
+				<xsd:sequence>
+					<xsd:choice minOccurs="0" maxOccurs="unbounded">
+						<xsd:element ref="prop"/>
+					</xsd:choice>
+				</xsd:sequence>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+
+	<!-- simple internal types -->
+	<xsd:simpleType name="defaultable-boolean">
+		<xsd:restriction base="xsd:NMTOKEN">
+			<xsd:enumeration value="default"/>
+			<xsd:enumeration value="true"/>
+			<xsd:enumeration value="false"/>
+		</xsd:restriction>
+	</xsd:simpleType>
+
+</xsd:schema>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org


[08/12] juddi git commit: JUDDI-919 replication now works with ssl + client-cert authentication. In order to support this, we need to have two different war file (unfortunately). Included with this change set is number of typos in our deployment files (w

Posted by al...@apache.org.
http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/classes/schemas/spring-util.xsd
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/classes/schemas/spring-util.xsd b/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/classes/schemas/spring-util.xsd
new file mode 100644
index 0000000..f7a754a
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/classes/schemas/spring-util.xsd
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
+<xsd:schema xmlns="http://www.springframework.org/schema/util"
+		xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+		xmlns:beans="http://www.springframework.org/schema/beans"
+		xmlns:tool="http://www.springframework.org/schema/tool"
+		targetNamespace="http://www.springframework.org/schema/util"
+		elementFormDefault="qualified"
+		attributeFormDefault="unqualified">
+
+	<xsd:import namespace="http://www.springframework.org/schema/beans" schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"/>
+	<xsd:import namespace="http://www.springframework.org/schema/tool" schemaLocation="http://www.springframework.org/schema/tool/spring-tool-3.2.xsd"/>
+
+	<xsd:element name="constant">
+		<xsd:annotation>
+			<xsd:documentation>
+	Reference a public, static field on a type and expose its value as
+	a bean. For example <code>&lt;util:constant static-field=&quot;java.lang.Integer.MAX_VALUE&quot;/&gt;</code>.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:attribute name="id" type="xsd:string"/>
+			<xsd:attribute name="static-field" type="xsd:string" use="required"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="property-path">
+		<xsd:annotation>
+			<xsd:documentation>
+	Reference a property on a bean (or as a nested value) and expose its values as
+	a bean. For example &lt;util:property-path path=&quot;order.customer.name&quot;/&gt;.
+			</xsd:documentation>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:attribute name="id" type="xsd:string"/>
+			<xsd:attribute name="path" type="xsd:string" use="required"/>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="list">
+		<xsd:annotation>
+			<xsd:documentation source="java:org.springframework.beans.factory.config.ListFactoryBean">
+	Builds a List instance of the specified type, populated with the specified content.
+			</xsd:documentation>
+			<xsd:appinfo>
+				<tool:annotation>
+					<tool:exports type="java.util.List"/>
+				</tool:annotation>
+			</xsd:appinfo>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="beans:listOrSetType">
+					<xsd:attribute name="id" type="xsd:string"/>
+					<xsd:attribute name="list-class" type="xsd:string">
+						<xsd:annotation>
+							<xsd:appinfo>
+								<tool:annotation>
+									<tool:expected-type type="java.lang.Class"/>
+									<tool:assignable-to type="java.util.List"/>
+								</tool:annotation>
+							</xsd:appinfo>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="scope" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The scope of this collection bean: typically "singleton" (one shared instance,
+	which will be returned by all calls to getBean with the given id), or
+	"prototype" (independent instance resulting from each call to getBean).
+	Default is "singleton". Further scopes, such as "request" or "session",
+	might be supported by extended bean factories (e.g. in a web environment).
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="set">
+		<xsd:annotation>
+			<xsd:documentation source="java:org.springframework.beans.factory.config.SetFactoryBean">
+	Builds a Set instance of the specified type, populated with the specified content.
+			</xsd:documentation>
+			<xsd:appinfo>
+				<tool:annotation>
+					<tool:exports type="java.util.Set"/>
+				</tool:annotation>
+			</xsd:appinfo>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="beans:listOrSetType">
+					<xsd:attribute name="id" type="xsd:string"/>
+					<xsd:attribute name="set-class" type="xsd:string">
+						<xsd:annotation>
+							<xsd:appinfo>
+								<tool:annotation>
+									<tool:expected-type type="java.lang.Class"/>
+									<tool:assignable-to type="java.util.Set"/>
+								</tool:annotation>
+							</xsd:appinfo>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="scope" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The scope of this collection bean: typically "singleton" (one shared instance,
+	which will be returned by all calls to getBean with the given id), or
+	"prototype" (independent instance resulting from each call to getBean).
+	Default is "singleton". Further scopes, such as "request" or "session",
+	might be supported by extended bean factories (e.g. in a web environment).
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="map">
+		<xsd:annotation>
+			<xsd:documentation source="java:org.springframework.beans.factory.config.MapFactoryBean">
+	Builds a Map instance of the specified type, populated with the specified content.
+			</xsd:documentation>
+			<xsd:appinfo>
+				<tool:annotation>
+					<tool:exports type="java.util.Map"/>
+				</tool:annotation>
+			</xsd:appinfo>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="beans:mapType">
+					<xsd:attribute name="id" type="xsd:string"/>
+					<xsd:attribute name="map-class" type="xsd:string">
+						<xsd:annotation>
+							<xsd:appinfo>
+								<tool:annotation>
+									<tool:expected-type type="java.lang.Class"/>
+									<tool:assignable-to type="java.util.Map"/>
+								</tool:annotation>
+							</xsd:appinfo>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="scope" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The scope of this collection bean: typically "singleton" (one shared instance,
+	which will be returned by all calls to getBean with the given id), or
+	"prototype" (independent instance resulting from each call to getBean).
+	Default is "singleton". Further scopes, such as "request" or "session",
+	might be supported by extended bean factories (e.g. in a web environment).
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+	<xsd:element name="properties">
+		<xsd:annotation>
+			<xsd:documentation source="java:org.springframework.beans.factory.config.PropertiesFactoryBean">
+	Loads a Properties instance from the resource location specified by the '<code>location</code>' attribute.
+			</xsd:documentation>
+			<xsd:appinfo>
+				<tool:annotation>
+					<tool:exports type="java.util.Properties"/>
+				</tool:annotation>
+			</xsd:appinfo>
+		</xsd:annotation>
+		<xsd:complexType>
+			<xsd:complexContent>
+				<xsd:extension base="beans:propsType">
+					<xsd:attribute name="id" type="xsd:string"/>
+					<xsd:attribute name="location" type="xsd:string">
+						<xsd:annotation>
+							<xsd:appinfo>
+								<tool:annotation>
+									<tool:expected-type type="org.springframework.core.io.Resource"/>
+								</tool:annotation>
+							</xsd:appinfo>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="local-override" type="xsd:boolean">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	Specifies whether local properties override properties from files.
+	Default is "false": properties from files override local defaults.
+	If set to "true", local properties will override defaults from files.
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+					<xsd:attribute name="scope" type="xsd:string">
+						<xsd:annotation>
+							<xsd:documentation><![CDATA[
+	The scope of this collection bean: typically "singleton" (one shared instance,
+	which will be returned by all calls to getBean with the given id), or
+	"prototype" (independent instance resulting from each call to getBean).
+	Default is "singleton". Further scopes, such as "request" or "session",
+	might be supported by extended bean factories (e.g. in a web environment).
+							]]></xsd:documentation>
+						</xsd:annotation>
+					</xsd:attribute>
+				</xsd:extension>
+			</xsd:complexContent>
+		</xsd:complexType>
+	</xsd:element>
+
+</xsd:schema>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/web.xml b/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/web.xml
new file mode 100644
index 0000000..8997354
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/CXF/WEB-INF/web.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE web-app
+    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+    "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<!--
+	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.
+-->
+<web-app>
+    <context-param>
+        <param-name>contextConfigLocation</param-name>
+        <param-value>WEB-INF/beans.xml</param-value>
+    </context-param>
+
+    <context-param>
+        <param-name>log4jConfigLocation</param-name>
+        <param-value>/WEB-INF/classes/log4j.properties</param-value>
+    </context-param>
+
+    <listener>
+        <listener-class>
+            org.springframework.web.context.ContextLoaderListener
+        </listener-class>
+        <!-- this class setups the encryption key for the session-->
+        <listener-class>org.apache.juddi.adminconsole.StartupServlet</listener-class>
+    
+    </listener>
+
+    <servlet>
+        <servlet-name>CXFServlet</servlet-name>
+        <display-name>CXF Servlet</display-name>
+        <servlet-class>
+            org.apache.cxf.transport.servlet.CXFServlet
+        </servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+  
+    <servlet>
+        <servlet-name>RegistryServlet</servlet-name>
+        <display-name>Registry Servlet</display-name>
+        <servlet-class>
+            org.apache.juddi.servlets.RegistryServlet
+        </servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+  
+    <servlet>
+        <servlet-name>NotifyServlet</servlet-name>
+        <display-name>Notify Servlet</display-name>
+        <servlet-class>
+            org.apache.juddi.servlets.NotifyServlet
+        </servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+  
+    <servlet-mapping>
+        <servlet-name>CXFServlet</servlet-name>
+        <url-pattern>/services/*</url-pattern>
+    </servlet-mapping>
+  
+    <servlet-mapping>
+        <servlet-name>NotifyServlet</servlet-name>
+        <url-pattern>/notify/*</url-pattern>
+    </servlet-mapping>
+ 
+    <resource-ref>
+        <description>jUDDI DataSource</description>
+        <res-ref-name>jdbc/juddiDB</res-ref-name>
+        <res-type>javax.sql.DataSource</res-type>
+        <res-auth>Container</res-auth>
+        <res-sharing-scope>Shareable</res-sharing-scope>
+    </resource-ref>
+    <security-constraint>
+        <display-name>jUDDI Replication content</display-name>
+        <web-resource-collection>
+            <web-resource-name>admin</web-resource-name>
+            <url-pattern>/*</url-pattern>
+          
+          
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>replication</role-name>
+        </auth-constraint>
+        <!-- uncomment to require SSL -->
+        <user-data-constraint>
+            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
+        </user-data-constraint>
+    </security-constraint>
+    <login-config> 
+        <auth-method>CLIENT-CERT</auth-method> 
+        <realm-name>Apache jUDDI - Make sure you're using HTTPS!</realm-name> 
+    </login-config> 
+    <security-role>
+        <role-name>replication</role-name>
+    </security-role>
+  
+
+</web-app>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/JBossWS-CXF/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/JBossWS-CXF/WEB-INF/web.xml b/juddiv3-war-repl/JAX-WS/JBossWS-CXF/WEB-INF/web.xml
new file mode 100644
index 0000000..e76d9fb
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/JBossWS-CXF/WEB-INF/web.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<!--
+        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.
+-->
+<web-app>
+    <context-param>
+        <param-name>log4jConfigLocation</param-name>
+        <param-value>/WEB-INF/classes/log4j.properties</param-value>
+    </context-param>
+    <listener>
+        <!-- this class setups the encryption key for the session-->
+        <listener-class>org.apache.juddi.adminconsole.StartupServlet</listener-class>
+    
+    </listener>
+    <servlet>
+        <servlet-name>RegistryServlet</servlet-name>
+        <display-name>Registry Servlet</display-name>
+        <servlet-class>org.apache.juddi.servlets.RegistryServlet</servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+ 
+ 
+    <servlet>
+        <servlet-name>UDDIReplicationWS</servlet-name>
+
+        <servlet-class>org.jboss.wsf.stack.cxf.CXFServletExt</servlet-class>
+        <init-param>
+            <param-name>jboss.ws.endpoint</param-name>
+            <param-value>org.apache.juddi.api.impl.UDDIReplicationImpl</param-value>
+
+        </init-param>
+    </servlet>
+
+  
+    <servlet-mapping>
+        <servlet-name>UDDIReplicationWS</servlet-name>
+        <url-pattern>/services/replication/*</url-pattern>
+    </servlet-mapping>
+  
+  
+    <security-constraint>
+        <display-name>jUDDI Replication content</display-name>
+        <web-resource-collection>
+            <web-resource-name>admin</web-resource-name>
+            <url-pattern>/*</url-pattern>
+          
+          
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>replication</role-name>
+        </auth-constraint>
+        <!-- uncomment to require SSL -->
+        <user-data-constraint>
+            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
+        </user-data-constraint>
+      
+    </security-constraint>
+    <login-config> 
+        <auth-method>CLIENT-CERT</auth-method> 
+        <!-- you should consider NOT using BASIC is favor of something more secure, see your web app servers documentation for details -->
+        <realm-name>Apache jUDDI - Make sure you're using HTTPS!</realm-name> 
+    </login-config> 
+    <security-role>
+        <role-name>replication</role-name>
+    </security-role>
+</web-app>
+  

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JAX-WS/JBossWS-Native/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JAX-WS/JBossWS-Native/WEB-INF/web.xml b/juddiv3-war-repl/JAX-WS/JBossWS-Native/WEB-INF/web.xml
new file mode 100644
index 0000000..6a80aa7
--- /dev/null
+++ b/juddiv3-war-repl/JAX-WS/JBossWS-Native/WEB-INF/web.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+        /* * Copyright 2001-2004 The Apache Software Foundation. * * Licensed
+        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. */
+-->
+<!DOCTYPE web-app PUBLIC
+        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+        "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<web-app>
+
+    <display-name>jUDDI</display-name>
+    <description>
+        jUDDI is Java-based implementation of an UDDI version 3.0 registry.
+    </description>
+    <listener>
+        <!-- this class setups the encryption key for the session-->
+        <listener-class>org.apache.juddi.adminconsole.StartupServlet</listener-class>
+    
+    </listener>
+    <servlet>
+        <servlet-name>RegistryServlet</servlet-name>
+        <display-name>Registry Servlet</display-name>
+        <servlet-class>org.apache.juddi.servlets.RegistryServlet</servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+
+    <servlet>
+        <servlet-name>NotifyServlet</servlet-name>
+        <display-name>Notify Servlet</display-name>
+        <servlet-class>
+            org.apache.juddi.servlets.NotifyServlet
+        </servlet-class>
+        <load-on-startup>1</load-on-startup>
+    </servlet>
+
+
+    <servlet>
+        <servlet-name>ReplicationService</servlet-name>
+        <servlet-class>org.apache.juddi.api.impl.UDDIReplicationImpl</servlet-class>
+    </servlet>
+
+
+    <servlet-mapping>
+        <servlet-name>NotifyServlet</servlet-name>
+        <url-pattern>/notify/*</url-pattern>
+    </servlet-mapping>
+
+
+    <servlet-mapping>
+        <servlet-name>ReplicationService</servlet-name>
+        <url-pattern>/services/replication</url-pattern>
+    </servlet-mapping>
+
+
+    <welcome-file-list id="WelcomeFileList">
+        <welcome-file>index.jsp</welcome-file>
+        <welcome-file>index.html</welcome-file>
+    </welcome-file-list>
+    <security-constraint>
+        <display-name>jUDDI Replication Services</display-name>
+        <web-resource-collection>
+            <web-resource-name>repl</web-resource-name>
+            <url-pattern>/*</url-pattern>
+
+
+        </web-resource-collection>
+        <auth-constraint>
+            <role-name>replication</role-name>
+        </auth-constraint>
+        <!-- uncomment to require SSL -->
+        <user-data-constraint>
+            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
+        </user-data-constraint>
+    </security-constraint>
+    <login-config> 
+        <auth-method>CLIENT-CERT</auth-method> 
+        <realm-name>Apache jUDDI - Make sure you're using HTTPS!</realm-name> 
+    </login-config> 
+    <security-role>
+        <role-name>replication</role-name>
+    </security-role>
+</web-app>
+    

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JPA/Hibernate-JBoss/WEB-INF/classes/META-INF/orm.xml.example
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JPA/Hibernate-JBoss/WEB-INF/classes/META-INF/orm.xml.example b/juddiv3-war-repl/JPA/Hibernate-JBoss/WEB-INF/classes/META-INF/orm.xml.example
new file mode 100644
index 0000000..660655e
--- /dev/null
+++ b/juddiv3-war-repl/JPA/Hibernate-JBoss/WEB-INF/classes/META-INF/orm.xml.example
@@ -0,0 +1,242 @@
+<!--
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ * 
+ * Licensed 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.
+ *
+ */
+ --><entity-mappings
+  xmlns="http://java.sun.com/xml/ns/persistence/orm"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm classpath:schemas/orm_1_0.xsd"
+  version="1.0">
+  
+  <sequence-generator name="juddi_sequence" sequence-name="juddi_sequence"/>
+
+  <entity class="org.apache.juddi.model.Address">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.AddressLine">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.BindingDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.BusinessDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.BusinessIdentifier">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.BusinessName">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.CategoryBag">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.Contact">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.ContactDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.DiscoveryUrl">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.Email">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.InstanceDetailsDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.InstanceDetailsDocDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+ <entity class="org.apache.juddi.model.KeyedReference">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.KeyedReferenceGroup">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.OverviewDoc">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.OverviewDocDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.PersonName">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.Phone">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.ServiceDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.ServiceName">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.SubscriptionMatch">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TmodelDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TmodelIdentifier">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TmodelInstanceInfo">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TmodelInstanceInfoDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TransferTokenKey">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+</entity-mappings>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JPA/Hibernate-JBoss/WEB-INF/classes/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JPA/Hibernate-JBoss/WEB-INF/classes/META-INF/persistence.xml b/juddiv3-war-repl/JPA/Hibernate-JBoss/WEB-INF/classes/META-INF/persistence.xml
new file mode 100644
index 0000000..8da4000
--- /dev/null
+++ b/juddiv3-war-repl/JPA/Hibernate-JBoss/WEB-INF/classes/META-INF/persistence.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    /*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ * 
+ * Licensed 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.
+ *
+ */
+-->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
+             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence classpath:schemas/persistence_1_0.xsd" 
+             version="1.0">
+  <persistence-unit name="juddiDatabase" transaction-type="RESOURCE_LOCAL">
+    <provider>org.hibernate.ejb.HibernatePersistence</provider>
+    <non-jta-data-source>java:/DefaultDS</non-jta-data-source>
+        <!-- entity classes -->
+    <class>org.apache.juddi.model.Address</class>
+    <class>org.apache.juddi.model.AddressLine</class>
+    <class>org.apache.juddi.model.AuthToken</class>
+    <class>org.apache.juddi.model.BindingCategoryBag</class>
+    <class>org.apache.juddi.model.BindingDescr</class>
+    <class>org.apache.juddi.model.BindingTemplate</class>
+    <class>org.apache.juddi.model.BusinessCategoryBag</class>
+    <class>org.apache.juddi.model.BusinessDescr</class>
+    <class>org.apache.juddi.model.BusinessEntity</class>
+    <class>org.apache.juddi.model.BusinessIdentifier</class>
+    <class>org.apache.juddi.model.BusinessName</class>
+    <class>org.apache.juddi.model.BusinessService</class>
+    <class>org.apache.juddi.model.CanonicalizationMethod</class>
+    <class>org.apache.juddi.model.CategoryBag</class>
+    <class>org.apache.juddi.model.Clerk</class>
+    <class>org.apache.juddi.model.ClientSubscriptionInfo</class>
+    <class>org.apache.juddi.model.Contact</class>
+    <class>org.apache.juddi.model.ContactDescr</class>
+    <class>org.apache.juddi.model.DiscoveryUrl</class>
+    <class>org.apache.juddi.model.Email</class>
+    <class>org.apache.juddi.model.InstanceDetailsDescr</class>
+    <class>org.apache.juddi.model.InstanceDetailsDocDescr</class>
+    <class>org.apache.juddi.model.KeyedReference</class>
+    <class>org.apache.juddi.model.KeyedReferenceGroup</class>
+    <class>org.apache.juddi.model.KeyDataValue</class>
+    <class>org.apache.juddi.model.KeyInfo</class>
+    <class>org.apache.juddi.model.Node</class>
+    <class>org.apache.juddi.model.ObjectType</class>
+    <class>org.apache.juddi.model.ObjectTypeContent</class>
+    <class>org.apache.juddi.model.OverviewDoc</class>
+    <class>org.apache.juddi.model.OverviewDocDescr</class>
+    <class>org.apache.juddi.model.PersonName</class>
+    <class>org.apache.juddi.model.Phone</class>
+    <class>org.apache.juddi.model.Publisher</class>
+    <class>org.apache.juddi.model.PublisherAssertion</class>
+    <class>org.apache.juddi.model.PublisherAssertionId</class>
+    <class>org.apache.juddi.model.Reference</class>
+    <class>org.apache.juddi.model.ServiceCategoryBag</class>
+    <class>org.apache.juddi.model.ServiceDescr</class>
+    <class>org.apache.juddi.model.ServiceName</class>
+    <class>org.apache.juddi.model.ServiceProjection</class>
+    <class>org.apache.juddi.model.ServiceProjectionId</class>
+    <class>org.apache.juddi.model.Signature</class>
+    <class>org.apache.juddi.model.SignatureMethod</class>
+    <class>org.apache.juddi.model.SignatureTransform</class>
+    <class>org.apache.juddi.model.SignatureTransformDataValue</class>
+    <class>org.apache.juddi.model.SignatureValue</class>
+    <class>org.apache.juddi.model.SignedInfo</class>
+    <class>org.apache.juddi.model.Subscription</class>
+    <class>org.apache.juddi.model.SubscriptionChunkToken</class>
+    <class>org.apache.juddi.model.SubscriptionMatch</class>
+    <class>org.apache.juddi.model.TempKey</class>
+	<class>org.apache.juddi.model.TempKeyPK</class>
+    <class>org.apache.juddi.model.Tmodel</class>
+    <class>org.apache.juddi.model.TmodelCategoryBag</class>
+    <class>org.apache.juddi.model.TmodelDescr</class>
+    <class>org.apache.juddi.model.TmodelIdentifier</class>
+    <class>org.apache.juddi.model.TmodelInstanceInfo</class>
+    <class>org.apache.juddi.model.TmodelInstanceInfoDescr</class>
+    <class>org.apache.juddi.model.TransferToken</class>
+    <class>org.apache.juddi.model.TransferTokenKey</class>
+    <class>org.apache.juddi.model.UddiEntity</class>
+    <class>org.apache.juddi.model.UddiEntityPublisher</class>
+	<class>org.apache.juddi.model.ValueSetValues</class>
+
+	<class>org.apache.juddi.model.ChangeRecord</class>
+	<class>org.apache.juddi.model.Operator</class>
+	<class>org.apache.juddi.model.ReplicationConfiguration</class>
+	<class>org.apache.juddi.model.Edge</class>
+	<class>org.apache.juddi.model.ControlMessage</class>
+    <class>org.apache.juddi.model.ReplicationConfigurationNode</class>
+    <class>org.apache.juddi.model.EdgeReceiverAlternate</class>
+
+    <properties>
+      <property name="hibernate.archive.autodetection" value="class"/>
+      <property name="hibernate.hbm2ddl.auto" value="update"/>
+      <property name="hibernate.show_sql" value="false"/>
+
+      <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
+      
+    </properties>
+  </persistence-unit>
+</persistence>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JPA/Hibernate-JBoss/WEB-INF/index.jsp
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JPA/Hibernate-JBoss/WEB-INF/index.jsp b/juddiv3-war-repl/JPA/Hibernate-JBoss/WEB-INF/index.jsp
new file mode 100644
index 0000000..3908cde
--- /dev/null
+++ b/juddiv3-war-repl/JPA/Hibernate-JBoss/WEB-INF/index.jsp
@@ -0,0 +1,131 @@
+<%@ page session="false" %>
+<%
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ * 
+ * Licensed 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.
+ *
+ */
+ %>
+<%@ page import="java.util.List,
+                 org.apache.juddi.config.Install,
+                 javax.xml.bind.JAXBException,
+                 org.uddi.v3_service.DispositionReportFaultMessage,
+                 org.apache.juddi.config.AppConfig,
+                 org.apache.juddi.config.Property,
+                 org.uddi.api_v3.BusinessEntity,
+                 org.uddi.api_v3.Name,
+                 org.uddi.api_v3.Description,
+                 java.io.IOException,
+                 org.apache.juddi.config.Release"
+%>
+
+<!-- index.jsp -->
+<html>
+<head>
+<title>Apache jUDDI Registry</title>
+<link rel="stylesheet" href="juddi.css" />
+</head>
+<body>
+<div class="header" align="right"><a href="http://ws.apache.org/juddi/" target="_top">jUDDI@Apache</a></div>
+<h1>Apache jUDDI version <%= Release.getRegistryVersion() %></h1>
+
+
+<h3><em>Welcome</em> to Apache jUDDI!</h3>
+<div class="install">
+<h4>jUDDI Documentation</h4>
+    <div class="content">
+	<table><tr>
+	<td>
+	<ul>
+	    <li><a href="/pluto/portal/jUDDI">jUDDI Portal (if installed)</a></li>
+	    <li><a href="/jbossws/services">View</a> service listing</li>
+	    <li><a href="http://juddi.apache.org/">Visit</a> the Apache-jUDDI Home Page</li>
+	    <li><a href="http://issues.apache.org/jira/browse/JUDDI">Report</a> a bug</li>
+	    <li><a href="http://juddi.apache.org/participate.html">Participate! We love you..</a></li>
+	    <li><a href="http://juddi.apache.org/library.html">UDDI library</a></li>
+	</ul>
+	</td>
+	<td>
+	<ul>
+	    <li><a href="http://juddi.apache.org/docs/3.x/userguide/html/index.html">jUDDI User Guide</a></li>
+	    <li><a href="http://juddi.apache.org/docs/3.x/devguide/html/index.html">jUDDI Developer Guide</a></li>
+	    <li><a href="http://svn.apache.org/repos/asf/juddi/trunk/docs/uddi3-specification/uddi-v3.0.2-20041019.pdf">UDDI v3.0.2 Specification</a></li>
+	    <li><a href="http://wiki.apache.org/jUDDI">jUDDI wiki</a> - add your own docs</li>
+	    <li><a href="http://apachejuddi.blogspot.com/">jUDDI Blog</a></li>
+	</ul>
+	</td>
+	</tr>
+	</table>
+</div>
+
+<div class="install">
+  <h4>jUDDI Installation</h4>
+    <div class="content">
+<%
+    // This will trigger the install process...
+    String rootPartition = AppConfig.getConfiguration().getString(Property.JUDDI_ROOT_PARTITION);
+	String nodeId = AppConfig.getConfiguration().getString(Property.JUDDI_NODE_ID);
+    String nodeName = "";
+    String nodeDescription = "";
+    
+    BusinessEntity be = Install.getNodeBusinessEntity(nodeId);
+    
+    if (be != null) {
+        Name n = (Name) be.getName().get(0);
+        if (n != null)
+            nodeName = n.getValue();
+
+        List descList = be.getDescription();
+        if (descList != null && descList.size() > 0) {
+            Description d = (Description) descList.get(0);
+            if (d != null)
+                nodeDescription = d.getValue();
+        }
+    }
+%>
+    <div>jUDDI has been successfully installed!</div>
+    <p />
+    <h3>Node Information</h3>
+    <table>
+        <tr>
+            <td><b>Root Partition:</b></td>
+            <td><%= rootPartition %></td>
+        </tr>
+        <tr>
+            <td><b>Node Id:</b></td>
+            <td><%= nodeId %></td>
+        </tr>
+        <tr>
+            <td><b>Name:</b></td>
+            <td><%= nodeName %></td>
+        </tr>
+        <tr>
+            <td><b>Description:</b></td>
+            <td><%= nodeDescription %></td>
+        </tr>
+    </table>
+  </div>
+</div>
+
+<hr />
+<table width="100%" border="0">
+    <tr>
+        <td height="50" align="center" valign="bottom" nowrap>
+        <div class="footer">&nbsp;</div>
+        </td>
+    </tr>
+</table>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JPA/Hibernate-JBoss/WEB-INF/jboss-web.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JPA/Hibernate-JBoss/WEB-INF/jboss-web.xml b/juddiv3-war-repl/JPA/Hibernate-JBoss/WEB-INF/jboss-web.xml
new file mode 100644
index 0000000..3f356a0
--- /dev/null
+++ b/juddiv3-war-repl/JPA/Hibernate-JBoss/WEB-INF/jboss-web.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+	/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ * 
+ * Licensed 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.
+ *
+ */
+-->
+<!DOCTYPE jboss-web PUBLIC 
+	"-//JBoss//DTD Web Application 2.3V2//EN"
+    "http://www.jboss.org/j2ee/dtd/jboss-web_3_2.dtd">
+
+<jboss-web>
+
+    <resource-ref>
+        <res-ref-name>jdbc/DefaultDS</res-ref-name>
+        <jndi-name>java:/DefaultDS</jndi-name>
+    </resource-ref>
+    <depends>jboss.jdbc:datasource=DefaultDS,service=metadata</depends>
+
+</jboss-web>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JPA/Hibernate-JBossAS7Up/WEB-INF/classes/META-INF/orm.xml.example
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JPA/Hibernate-JBossAS7Up/WEB-INF/classes/META-INF/orm.xml.example b/juddiv3-war-repl/JPA/Hibernate-JBossAS7Up/WEB-INF/classes/META-INF/orm.xml.example
new file mode 100644
index 0000000..deb90a2
--- /dev/null
+++ b/juddiv3-war-repl/JPA/Hibernate-JBossAS7Up/WEB-INF/classes/META-INF/orm.xml.example
@@ -0,0 +1,243 @@
+<!--
+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.
+-->
+<entity-mappings
+  xmlns="http://java.sun.com/xml/ns/persistence/orm"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm classpath:schemas/orm_1_0.xsd"
+  version="1.0">
+  
+  <sequence-generator name="juddi_sequence" sequence-name="juddi_sequence"/>
+
+  <entity class="org.apache.juddi.model.Address">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.AddressLine">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.BindingDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.BusinessDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.BusinessIdentifier">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.BusinessName">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.CategoryBag">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.Contact">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.ContactDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.DiscoveryUrl">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.Email">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.InstanceDetailsDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.InstanceDetailsDocDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+ <entity class="org.apache.juddi.model.KeyedReference">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.KeyedReferenceGroup">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.OverviewDoc">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.OverviewDocDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.PersonName">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.Phone">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.ServiceDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.ServiceName">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.SubscriptionMatch">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TmodelDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TmodelIdentifier">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TmodelInstanceInfo">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TmodelInstanceInfoDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TransferTokenKey">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+</entity-mappings>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JPA/Hibernate-JBossAS7Up/WEB-INF/classes/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JPA/Hibernate-JBossAS7Up/WEB-INF/classes/META-INF/persistence.xml b/juddiv3-war-repl/JPA/Hibernate-JBossAS7Up/WEB-INF/classes/META-INF/persistence.xml
new file mode 100644
index 0000000..10fc12a
--- /dev/null
+++ b/juddiv3-war-repl/JPA/Hibernate-JBossAS7Up/WEB-INF/classes/META-INF/persistence.xml
@@ -0,0 +1,111 @@
+<?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.
+-->
+<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence 
+    http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
+
+  <persistence-unit name="juddiDatabase" transaction-type="RESOURCE_LOCAL">
+    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
+    <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
+        <!-- entity classes -->
+    <class>org.apache.juddi.model.Address</class>
+    <class>org.apache.juddi.model.AddressLine</class>
+    <class>org.apache.juddi.model.AuthToken</class>
+    <class>org.apache.juddi.model.BindingCategoryBag</class>
+    <class>org.apache.juddi.model.BindingDescr</class>
+    <class>org.apache.juddi.model.BindingTemplate</class>
+    <class>org.apache.juddi.model.BusinessCategoryBag</class>
+    <class>org.apache.juddi.model.BusinessDescr</class>
+    <class>org.apache.juddi.model.BusinessEntity</class>
+    <class>org.apache.juddi.model.BusinessIdentifier</class>
+    <class>org.apache.juddi.model.BusinessName</class>
+    <class>org.apache.juddi.model.BusinessService</class>
+    <class>org.apache.juddi.model.CanonicalizationMethod</class>
+    <class>org.apache.juddi.model.CategoryBag</class>
+    <class>org.apache.juddi.model.Clerk</class>
+    <class>org.apache.juddi.model.ClientSubscriptionInfo</class>
+    <class>org.apache.juddi.model.Contact</class>
+    <class>org.apache.juddi.model.ContactDescr</class>
+    <class>org.apache.juddi.model.DiscoveryUrl</class>
+    <class>org.apache.juddi.model.Email</class>
+    <class>org.apache.juddi.model.InstanceDetailsDescr</class>
+    <class>org.apache.juddi.model.InstanceDetailsDocDescr</class>
+    <class>org.apache.juddi.model.KeyedReference</class>
+    <class>org.apache.juddi.model.KeyedReferenceGroup</class>
+    <class>org.apache.juddi.model.KeyDataValue</class>
+    <class>org.apache.juddi.model.KeyInfo</class>
+    <class>org.apache.juddi.model.Node</class>
+    <class>org.apache.juddi.model.ObjectType</class>
+    <class>org.apache.juddi.model.ObjectTypeContent</class>
+    <class>org.apache.juddi.model.OverviewDoc</class>
+    <class>org.apache.juddi.model.OverviewDocDescr</class>
+    <class>org.apache.juddi.model.PersonName</class>
+    <class>org.apache.juddi.model.Phone</class>
+    <class>org.apache.juddi.model.Publisher</class>
+    <class>org.apache.juddi.model.PublisherAssertion</class>
+    <class>org.apache.juddi.model.PublisherAssertionId</class>
+    <class>org.apache.juddi.model.Reference</class>
+    <class>org.apache.juddi.model.ServiceCategoryBag</class>
+    <class>org.apache.juddi.model.ServiceDescr</class>
+    <class>org.apache.juddi.model.ServiceName</class>
+    <class>org.apache.juddi.model.ServiceProjection</class>
+    <class>org.apache.juddi.model.ServiceProjectionId</class>
+    <class>org.apache.juddi.model.Signature</class>
+    <class>org.apache.juddi.model.SignatureMethod</class>
+    <class>org.apache.juddi.model.SignatureTransform</class>
+    <class>org.apache.juddi.model.SignatureTransformDataValue</class>
+    <class>org.apache.juddi.model.SignatureValue</class>
+    <class>org.apache.juddi.model.SignedInfo</class>
+    <class>org.apache.juddi.model.Subscription</class>
+    <class>org.apache.juddi.model.SubscriptionChunkToken</class>
+    <class>org.apache.juddi.model.SubscriptionMatch</class>
+    <class>org.apache.juddi.model.TempKey</class>
+	<class>org.apache.juddi.model.TempKeyPK</class>
+    <class>org.apache.juddi.model.Tmodel</class>
+    <class>org.apache.juddi.model.TmodelCategoryBag</class>
+    <class>org.apache.juddi.model.TmodelDescr</class>
+    <class>org.apache.juddi.model.TmodelIdentifier</class>
+    <class>org.apache.juddi.model.TmodelInstanceInfo</class>
+    <class>org.apache.juddi.model.TmodelInstanceInfoDescr</class>
+    <class>org.apache.juddi.model.TransferToken</class>
+    <class>org.apache.juddi.model.TransferTokenKey</class>
+    <class>org.apache.juddi.model.UddiEntity</class>
+    <class>org.apache.juddi.model.UddiEntityPublisher</class>
+	<class>org.apache.juddi.model.ValueSetValues</class>
+
+	<class>org.apache.juddi.model.ChangeRecord</class>
+	<class>org.apache.juddi.model.Operator</class>
+	<class>org.apache.juddi.model.ReplicationConfiguration</class>
+	<class>org.apache.juddi.model.Edge</class>
+	<class>org.apache.juddi.model.ControlMessage</class>
+    <class>org.apache.juddi.model.ReplicationConfigurationNode</class>
+    <class>org.apache.juddi.model.EdgeReceiverAlternate</class>
+	
+    <properties>
+      <property name="hibernate.archive.autodetection" value="class"/>
+      <property name="hibernate.hbm2ddl.auto" value="update"/>
+      <property name="hibernate.show_sql" value="false"/>
+      <property name="hibernate.listeners.envers.autoRegister" value="false" />
+      <property name="hibernate.id.new_generator_mappings" value="true" />
+      <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
+    </properties>
+  </persistence-unit>
+</persistence>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JPA/Hibernate-JBossAS7Up/WEB-INF/jboss-deployment-structure.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JPA/Hibernate-JBossAS7Up/WEB-INF/jboss-deployment-structure.xml b/juddiv3-war-repl/JPA/Hibernate-JBossAS7Up/WEB-INF/jboss-deployment-structure.xml
new file mode 100644
index 0000000..f55959a
--- /dev/null
+++ b/juddiv3-war-repl/JPA/Hibernate-JBossAS7Up/WEB-INF/jboss-deployment-structure.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jboss-deployment-structure>
+  <deployment>
+    <dependencies>
+      <module name="org.jboss.as.jpa" />
+      <module name="org.jboss.ws.cxf.jbossws-cxf-server" />
+    </dependencies>
+  </deployment>
+</jboss-deployment-structure>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JPA/Hibernate-JBossAS7Up/WEB-INF/jboss-web.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JPA/Hibernate-JBossAS7Up/WEB-INF/jboss-web.xml b/juddiv3-war-repl/JPA/Hibernate-JBossAS7Up/WEB-INF/jboss-web.xml
new file mode 100644
index 0000000..108b011
--- /dev/null
+++ b/juddiv3-war-repl/JPA/Hibernate-JBossAS7Up/WEB-INF/jboss-web.xml
@@ -0,0 +1,26 @@
+<!--
+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.
+-->
+<jboss-web>
+    <context-root>juddiv3</context-root>
+
+    <resource-ref>
+        <res-ref-name>jdbc/juddidb</res-ref-name>
+        <jndi-name>java:jboss/datasources/ExampleDS</jndi-name>
+    </resource-ref>
+</jboss-web>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JPA/Hibernate/WEB-INF/classes/META-INF/orm.xml.example
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JPA/Hibernate/WEB-INF/classes/META-INF/orm.xml.example b/juddiv3-war-repl/JPA/Hibernate/WEB-INF/classes/META-INF/orm.xml.example
new file mode 100644
index 0000000..2aed627
--- /dev/null
+++ b/juddiv3-war-repl/JPA/Hibernate/WEB-INF/classes/META-INF/orm.xml.example
@@ -0,0 +1,243 @@
+<!--
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ * 
+ * Licensed 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.
+ *
+ */
+ -->
+ <entity-mappings
+  xmlns="http://java.sun.com/xml/ns/persistence/orm"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm classpath:schemas/orm_1_0.xsd"
+  version="1.0">
+  
+  <sequence-generator name="juddi_sequence" sequence-name="juddi_sequence"/>
+
+  <entity class="org.apache.juddi.model.Address">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.AddressLine">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.BindingDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.BusinessDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.BusinessIdentifier">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.BusinessName">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.CategoryBag">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.Contact">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.ContactDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.DiscoveryUrl">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.Email">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.InstanceDetailsDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.InstanceDetailsDocDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+ <entity class="org.apache.juddi.model.KeyedReference">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.KeyedReferenceGroup">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.OverviewDoc">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.OverviewDocDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.PersonName">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.Phone">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.ServiceDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.ServiceName">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.SubscriptionMatch">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TmodelDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TmodelIdentifier">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TmodelInstanceInfo">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TmodelInstanceInfoDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TransferTokenKey">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+</entity-mappings>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JPA/Hibernate/WEB-INF/classes/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JPA/Hibernate/WEB-INF/classes/META-INF/persistence.xml b/juddiv3-war-repl/JPA/Hibernate/WEB-INF/classes/META-INF/persistence.xml
new file mode 100644
index 0000000..8cff09c
--- /dev/null
+++ b/juddiv3-war-repl/JPA/Hibernate/WEB-INF/classes/META-INF/persistence.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    /*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ * 
+ * Licensed 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.
+ *
+ */
+-->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
+             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence classpath:schemas/persistence_1_0.xsd" 
+             version="1.0">
+  <persistence-unit name="juddiDatabase" transaction-type="RESOURCE_LOCAL">
+    <provider>org.hibernate.ejb.HibernatePersistence</provider>
+    <jta-data-source>java:comp/env/jdbc/JuddiDS</jta-data-source>
+        <!-- entity classes -->
+    <class>org.apache.juddi.model.Address</class>
+    <class>org.apache.juddi.model.AddressLine</class>
+    <class>org.apache.juddi.model.AuthToken</class>
+    <class>org.apache.juddi.model.BindingCategoryBag</class>
+    <class>org.apache.juddi.model.BindingDescr</class>
+    <class>org.apache.juddi.model.BindingTemplate</class>
+    <class>org.apache.juddi.model.BusinessCategoryBag</class>
+    <class>org.apache.juddi.model.BusinessDescr</class>
+    <class>org.apache.juddi.model.BusinessEntity</class>
+    <class>org.apache.juddi.model.BusinessIdentifier</class>
+    <class>org.apache.juddi.model.BusinessName</class>
+    <class>org.apache.juddi.model.BusinessService</class>
+    <class>org.apache.juddi.model.CanonicalizationMethod</class>
+    <class>org.apache.juddi.model.CategoryBag</class>
+    <class>org.apache.juddi.model.Clerk</class>
+    <class>org.apache.juddi.model.ClientSubscriptionInfo</class>
+    <class>org.apache.juddi.model.Contact</class>
+    <class>org.apache.juddi.model.ContactDescr</class>
+    <class>org.apache.juddi.model.DiscoveryUrl</class>
+    <class>org.apache.juddi.model.Email</class>
+    <class>org.apache.juddi.model.InstanceDetailsDescr</class>
+    <class>org.apache.juddi.model.InstanceDetailsDocDescr</class>
+    <class>org.apache.juddi.model.KeyedReference</class>
+    <class>org.apache.juddi.model.KeyedReferenceGroup</class>
+    <class>org.apache.juddi.model.KeyDataValue</class>
+    <class>org.apache.juddi.model.KeyInfo</class>
+    <class>org.apache.juddi.model.Node</class>
+    <class>org.apache.juddi.model.ObjectType</class>
+    <class>org.apache.juddi.model.ObjectTypeContent</class>
+    <class>org.apache.juddi.model.OverviewDoc</class>
+    <class>org.apache.juddi.model.OverviewDocDescr</class>
+    <class>org.apache.juddi.model.PersonName</class>
+    <class>org.apache.juddi.model.Phone</class>
+    <class>org.apache.juddi.model.Publisher</class>
+    <class>org.apache.juddi.model.PublisherAssertion</class>
+    <class>org.apache.juddi.model.PublisherAssertionId</class>
+    <class>org.apache.juddi.model.Reference</class>
+    <class>org.apache.juddi.model.ServiceCategoryBag</class>
+    <class>org.apache.juddi.model.ServiceDescr</class>
+    <class>org.apache.juddi.model.ServiceName</class>
+    <class>org.apache.juddi.model.ServiceProjection</class>
+    <class>org.apache.juddi.model.ServiceProjectionId</class>
+    <class>org.apache.juddi.model.Signature</class>
+    <class>org.apache.juddi.model.SignatureMethod</class>
+    <class>org.apache.juddi.model.SignatureTransform</class>
+    <class>org.apache.juddi.model.SignatureTransformDataValue</class>
+    <class>org.apache.juddi.model.SignatureValue</class>
+    <class>org.apache.juddi.model.SignedInfo</class>
+    <class>org.apache.juddi.model.Subscription</class>
+    <class>org.apache.juddi.model.SubscriptionChunkToken</class>
+    <class>org.apache.juddi.model.SubscriptionMatch</class>
+    <class>org.apache.juddi.model.TempKey</class>
+	<class>org.apache.juddi.model.TempKeyPK</class>
+    <class>org.apache.juddi.model.Tmodel</class>
+    <class>org.apache.juddi.model.TmodelCategoryBag</class>
+    <class>org.apache.juddi.model.TmodelDescr</class>
+    <class>org.apache.juddi.model.TmodelIdentifier</class>
+    <class>org.apache.juddi.model.TmodelInstanceInfo</class>
+    <class>org.apache.juddi.model.TmodelInstanceInfoDescr</class>
+    <class>org.apache.juddi.model.TransferToken</class>
+    <class>org.apache.juddi.model.TransferTokenKey</class>
+    <class>org.apache.juddi.model.UddiEntity</class>
+    <class>org.apache.juddi.model.UddiEntityPublisher</class>
+	<class>org.apache.juddi.model.ValueSetValues</class>
+
+	<class>org.apache.juddi.model.ChangeRecord</class>
+	<class>org.apache.juddi.model.CommunicationGraph</class>
+	<class>org.apache.juddi.model.Operator</class>
+	<class>org.apache.juddi.model.ReplicationConfiguration</class>
+	<class>org.apache.juddi.model.Edge</class>
+	<class>org.apache.juddi.model.ControlMessage</class>
+    <class>org.apache.juddi.model.ReplicationConfigurationNode</class>
+    <class>org.apache.juddi.model.EdgeReceiverAlternate</class>
+	
+    <properties>
+      <property name="hibernate.archive.autodetection" value="class"/>
+      <property name="hibernate.hbm2ddl.auto" value="update"/>
+      <property name="hibernate.show_sql" value="false"/>
+
+      <property name="hibernate.dialect" value="org.hibernate.dialect.DerbyDialect"/>
+      
+    </properties>
+  </persistence-unit>
+</persistence>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JPA/Hibernate/WEB-INF/classes/log4j.properties
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JPA/Hibernate/WEB-INF/classes/log4j.properties b/juddiv3-war-repl/JPA/Hibernate/WEB-INF/classes/log4j.properties
new file mode 100644
index 0000000..5d85a79
--- /dev/null
+++ b/juddiv3-war-repl/JPA/Hibernate/WEB-INF/classes/log4j.properties
@@ -0,0 +1,37 @@
+# Copyright 2001-2008 The Apache Software Foundation.
+# * 
+# * Licensed 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.
+log4j.rootLogger=INFO, logfile
+
+# in case any output is given to stdout, format it
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
+
+log4j.appender.logfile=org.apache.log4j.RollingFileAppender
+log4j.appender.logfile.File=${catalina.home}/logs/juddi.log
+log4j.appender.logfile.MaxFileSize=512MB
+# Keep three backup files.
+log4j.appender.logfile.MaxBackupIndex=3
+# Pattern to output: date priority [category] - message
+log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
+log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
+
+#log4j.category.org.springframework.beans.property editors.CustomDateEditor=DEBUG
+
+log4j.debug=false
+
+# showing sql
+#log4j.category.org.hibernate.hql.ast.QueryTranslatorImpl=DEBUG
+#log4j.category.org.hibernate.SQL=DEBUG
+#log4j.category.org.hibernate.loader.hql.QueryLoad er=DEBUG 

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JPA/OpenJPA/WEB-INF/classes/META-INF/orm.xml.example
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JPA/OpenJPA/WEB-INF/classes/META-INF/orm.xml.example b/juddiv3-war-repl/JPA/OpenJPA/WEB-INF/classes/META-INF/orm.xml.example
new file mode 100644
index 0000000..deb90a2
--- /dev/null
+++ b/juddiv3-war-repl/JPA/OpenJPA/WEB-INF/classes/META-INF/orm.xml.example
@@ -0,0 +1,243 @@
+<!--
+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.
+-->
+<entity-mappings
+  xmlns="http://java.sun.com/xml/ns/persistence/orm"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm classpath:schemas/orm_1_0.xsd"
+  version="1.0">
+  
+  <sequence-generator name="juddi_sequence" sequence-name="juddi_sequence"/>
+
+  <entity class="org.apache.juddi.model.Address">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.AddressLine">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.BindingDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.BusinessDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.BusinessIdentifier">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.BusinessName">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.CategoryBag">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.Contact">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.ContactDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.DiscoveryUrl">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.Email">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.InstanceDetailsDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.InstanceDetailsDocDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+ <entity class="org.apache.juddi.model.KeyedReference">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.KeyedReferenceGroup">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.OverviewDoc">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.OverviewDocDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.PersonName">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.Phone">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.ServiceDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.ServiceName">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.SubscriptionMatch">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TmodelDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TmodelIdentifier">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TmodelInstanceInfo">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TmodelInstanceInfoDescr">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+  <entity class="org.apache.juddi.model.TransferTokenKey">
+    <attributes>
+      <id name="id">
+        <generated-value generator="juddi_sequence" strategy="AUTO"/>
+      </id>
+    </attributes>
+  </entity>
+
+</entity-mappings>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JPA/OpenJPA/WEB-INF/classes/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JPA/OpenJPA/WEB-INF/classes/META-INF/persistence.xml b/juddiv3-war-repl/JPA/OpenJPA/WEB-INF/classes/META-INF/persistence.xml
new file mode 100644
index 0000000..35ff53d
--- /dev/null
+++ b/juddiv3-war-repl/JPA/OpenJPA/WEB-INF/classes/META-INF/persistence.xml
@@ -0,0 +1,111 @@
+<?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.
+-->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence" 
+             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence classpath:schemas/persistence_1_0.xsd" 
+             version="1.0">
+  <persistence-unit name="juddiDatabase" transaction-type="RESOURCE_LOCAL">
+    <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
+    <non-jta-data-source>java:comp/env/jdbc/JuddiDS</non-jta-data-source>
+    <!-- entity classes -->
+    <class>org.apache.juddi.model.Address</class>
+    <class>org.apache.juddi.model.AddressLine</class>
+    <class>org.apache.juddi.model.AuthToken</class>
+    <class>org.apache.juddi.model.BindingCategoryBag</class>
+    <class>org.apache.juddi.model.BindingDescr</class>
+    <class>org.apache.juddi.model.BindingTemplate</class>
+    <class>org.apache.juddi.model.BusinessCategoryBag</class>
+    <class>org.apache.juddi.model.BusinessDescr</class>
+    <class>org.apache.juddi.model.BusinessEntity</class>
+    <class>org.apache.juddi.model.BusinessIdentifier</class>
+    <class>org.apache.juddi.model.BusinessName</class>
+    <class>org.apache.juddi.model.BusinessService</class>
+    <class>org.apache.juddi.model.CanonicalizationMethod</class>
+    <class>org.apache.juddi.model.CategoryBag</class>
+    <class>org.apache.juddi.model.Clerk</class>
+    <class>org.apache.juddi.model.ClientSubscriptionInfo</class>
+    <class>org.apache.juddi.model.Contact</class>
+    <class>org.apache.juddi.model.ContactDescr</class>
+    <class>org.apache.juddi.model.DiscoveryUrl</class>
+    <class>org.apache.juddi.model.Email</class>
+    <class>org.apache.juddi.model.InstanceDetailsDescr</class>
+    <class>org.apache.juddi.model.InstanceDetailsDocDescr</class>
+    <class>org.apache.juddi.model.KeyedReference</class>
+    <class>org.apache.juddi.model.KeyedReferenceGroup</class>
+    <class>org.apache.juddi.model.KeyDataValue</class>
+    <class>org.apache.juddi.model.KeyInfo</class>
+    <class>org.apache.juddi.model.Node</class>
+    <class>org.apache.juddi.model.ObjectType</class>
+    <class>org.apache.juddi.model.ObjectTypeContent</class>
+    <class>org.apache.juddi.model.OverviewDoc</class>
+    <class>org.apache.juddi.model.OverviewDocDescr</class>
+    <class>org.apache.juddi.model.PersonName</class>
+    <class>org.apache.juddi.model.Phone</class>
+    <class>org.apache.juddi.model.Publisher</class>
+    <class>org.apache.juddi.model.PublisherAssertion</class>
+    <class>org.apache.juddi.model.PublisherAssertionId</class>
+    <class>org.apache.juddi.model.Reference</class>
+    <class>org.apache.juddi.model.ServiceCategoryBag</class>
+    <class>org.apache.juddi.model.ServiceDescr</class>
+    <class>org.apache.juddi.model.ServiceName</class>
+    <class>org.apache.juddi.model.ServiceProjection</class>
+    <class>org.apache.juddi.model.ServiceProjectionId</class>
+    <class>org.apache.juddi.model.Signature</class>
+    <class>org.apache.juddi.model.SignatureMethod</class>
+    <class>org.apache.juddi.model.SignatureTransform</class>
+    <class>org.apache.juddi.model.SignatureTransformDataValue</class>
+    <class>org.apache.juddi.model.SignatureValue</class>
+    <class>org.apache.juddi.model.SignedInfo</class>
+    <class>org.apache.juddi.model.Subscription</class>
+    <class>org.apache.juddi.model.SubscriptionChunkToken</class>
+    <class>org.apache.juddi.model.SubscriptionMatch</class>
+    <class>org.apache.juddi.model.TempKey</class>
+	<class>org.apache.juddi.model.TempKeyPK</class>
+    <class>org.apache.juddi.model.Tmodel</class>
+    <class>org.apache.juddi.model.TmodelCategoryBag</class>
+    <class>org.apache.juddi.model.TmodelDescr</class>
+    <class>org.apache.juddi.model.TmodelIdentifier</class>
+    <class>org.apache.juddi.model.TmodelInstanceInfo</class>
+    <class>org.apache.juddi.model.TmodelInstanceInfoDescr</class>
+    <class>org.apache.juddi.model.TransferToken</class>
+    <class>org.apache.juddi.model.TransferTokenKey</class>
+    <class>org.apache.juddi.model.UddiEntity</class>
+    <class>org.apache.juddi.model.UddiEntityPublisher</class>
+	<class>org.apache.juddi.model.ValueSetValues</class>
+	<class>org.apache.juddi.model.ChangeRecord</class>
+	<class>org.apache.juddi.model.Edge</class>
+	<class>org.apache.juddi.model.Operator</class>
+	<class>org.apache.juddi.model.ReplicationConfiguration</class>
+     <class>org.apache.juddi.model.ControlMessage</class>
+    <class>org.apache.juddi.model.ReplicationConfigurationNode</class>
+    <class>org.apache.juddi.model.EdgeReceiverAlternate</class>
+	
+    <properties>
+      <property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema(SchemaAction='add')"/>
+      <property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO"/>
+      <property name="openjpa.jdbc.UpdateManager" value="operation-order"/>
+      <property name="openjpa.jdbc.DBDictionary" value="derby"/>
+      <!-- dialects: derby, postgres, mysql,  oracle, sybase, sqlserver 
+           for a complete list check the OpenJPA documentation -->
+      <property name="openjpa.RuntimeUnenhancedClasses" value="warn"/>
+      <property name="openjpa.Compatibility" value="CheckDatabaseForCascadePersistToDetachedEntity=true"/>
+    </properties>
+  </persistence-unit>
+</persistence>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5994cd06/juddiv3-war-repl/JPA/OpenJPA/WEB-INF/classes/log4j.properties
----------------------------------------------------------------------
diff --git a/juddiv3-war-repl/JPA/OpenJPA/WEB-INF/classes/log4j.properties b/juddiv3-war-repl/JPA/OpenJPA/WEB-INF/classes/log4j.properties
new file mode 100644
index 0000000..7e5e4e0
--- /dev/null
+++ b/juddiv3-war-repl/JPA/OpenJPA/WEB-INF/classes/log4j.properties
@@ -0,0 +1,42 @@
+#
+#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.
+
+log4j.rootLogger=INFO, logfile
+
+# in case any output is given to stdout, format it
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
+
+log4j.appender.logfile=org.apache.log4j.RollingFileAppender
+log4j.appender.logfile.File=${catalina.home}/logs/juddi.log
+log4j.appender.logfile.MaxFileSize=512MB
+# Keep three backup files.
+log4j.appender.logfile.MaxBackupIndex=3
+# Pattern to output: date priority [category] - message
+log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
+log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
+
+#log4j.category.org.springframework.beans.property editors.CustomDateEditor=DEBUG
+
+log4j.debug=false
+
+# showing sql
+#log4j.category.org.hibernate.hql.ast.QueryTranslatorImpl=DEBUG
+#log4j.category.org.hibernate.SQL=DEBUG
+#log4j.category.org.hibernate.loader.hql.QueryLoad er=DEBUG 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org