This is an automated email from the ASF dual-hosted git repository.

alexoree pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juddi.git


The following commit(s) were added to refs/heads/master by this push:
     new baba62c  JUDDI-993 sample for running juddi in an embedded server, 
with and without http access. also changes a few hopefully minor things in 
juddi core and client.
baba62c is described below

commit baba62cc23039af5bd486ccb39978908ec21f3cd
Author: Alex O'Ree <[email protected]>
AuthorDate: Sun Jan 19 22:13:38 2020 -0500

    JUDDI-993 sample for running juddi in an embedded server, with and without 
http access. also changes a few hopefully minor things in juddi core and client.
---
 .../apache/juddi/v3/client/config/UDDIClient.java  |   2 +
 .../v3/client/config/UDDIClientContainer.java      |   5 +
 .../apache/juddi/v3/client/config/UDDINode.java    |   4 +-
 .../juddi/api/impl/AuthenticatedService.java       |  13 +-
 .../org/apache/juddi/api/impl/JUDDIApiImpl.java    |   4 +-
 .../apache/juddi/api/impl/UDDISecurityImpl.java    |   3 +-
 .../juddi/api/impl/UDDIValueSetCachingImpl.java    |   7 +-
 .../juddi/api/impl/UDDIValueSetValidationImpl.java |   3 +
 .../juddi/v3/auth/HTTPContainerAuthenticator.java  |   4 +-
 .../partition/SimpleCreateTmodelPartition.java     |   4 -
 juddi-examples/juddi-embedded/juddi-server.xml     | 225 +++++++++++++++++++++
 juddi-examples/juddi-embedded/juddi-users.xml      |  22 ++
 juddi-examples/juddi-embedded/pom.xml              |  35 ++++
 .../example/juddi/embedded/EmbeddedNoWeb.java      |  73 +++++++
 .../juddi/embedded/EmbeddedNoWebNoClerk.java       |  99 +++++++++
 .../example/juddi/embedded/EmbeddedWithWeb.java    | 179 ++++++++++++++++
 .../juddi/example/juddi/embedded/MyWebContext.java |  69 +++++++
 .../src/main/resources/META-INF/persistence.xml    | 118 +++++++++++
 .../src/main/resources/META-INF/uddi-client.xml    |  53 +++++
 juddi-examples/juddi-embedded/truststore.jks       | Bin 0 -> 965 bytes
 juddi-examples/juddi-embedded/uddi-http.xml        |  93 +++++++++
 juddi-examples/juddi-embedded/uddi-invm.xml        |  83 ++++++++
 juddi-examples/pom.xml                             |   3 +-
 juddi-gui/pom.xml                                  |   2 +-
 24 files changed, 1085 insertions(+), 18 deletions(-)

diff --git 
a/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClient.java 
b/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClient.java
index 62439c5..b326645 100644
--- 
a/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClient.java
+++ 
b/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClient.java
@@ -192,6 +192,8 @@ public class UDDIClient {
                         if (this.clientConfig.isRegisterOnStartup()) {
                                 Runnable runnable = new 
BackGroundRegistration(this);
                                 Thread thread = new Thread(runnable);
+                                thread.setName("juddi background 
registration");
+                                thread.setDaemon(true);
                                 thread.start();
                         }
                 }
diff --git 
a/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClientContainer.java
 
b/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClientContainer.java
index 4ffd763..bd2f441 100644
--- 
a/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClientContainer.java
+++ 
b/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClientContainer.java
@@ -54,6 +54,11 @@ public class UDDIClientContainer {
                } else throw new IllegalArgumentException("clientName is a 
required argument");
        }
        
+        /**
+         * adds the named client, but only if it isn't registered already
+         * @param manager
+         * @return true if successful
+         */
        public static boolean addClient(UDDIClient manager) {
                if 
(!clients.containsKey(manager.getClientConfig().getClientName())) {
                        clients.put(manager.getClientConfig().getClientName(), 
manager);
diff --git 
a/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDINode.java 
b/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDINode.java
index a28ec16..bc2a0d7 100644
--- a/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDINode.java
+++ b/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDINode.java
@@ -33,8 +33,8 @@ import 
org.apache.juddi.v3.client.transport.TransportException;
 public class UDDINode implements Serializable {
 
        private static final long serialVersionUID = 5721040459195558161L;
-       private Properties properties;
-       private transient Transport transport;
+       private Properties properties=new Properties();
+        private transient Transport transport;
        
        private boolean isHomeJUDDI;
        private String name;
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 de25edc..5886a5f 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
@@ -17,8 +17,6 @@
 package org.apache.juddi.api.impl;
 
 import java.util.Date;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import javax.annotation.Resource;
 
 import javax.persistence.EntityManager;
@@ -81,6 +79,17 @@ public abstract class AuthenticatedService {
                 }
                 init();
         }
+        
+        /**
+         * this method can be used to explicitly set a request context. this 
is useful
+         * in unit tests, embedded and in-vm scenarios only
+         * @param ctx 
+         * @since 3.3.8
+         */
+        public void setContext(WebServiceContext ctx) {
+                this.ctx = ctx;
+        }
+        
         private synchronized  void init() {
             try {
                 df = DatatypeFactory.newInstance();
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 83b7fab..4477e2d 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
@@ -135,7 +135,9 @@ import org.uddi.v3_service.UDDISubscriptionPortType;
  */
 @WebService(serviceName = "JUDDIApiService",
         endpointInterface = "org.apache.juddi.v3_service.JUDDIApiPortType",
-        targetNamespace = "urn:juddi-apache-org:v3_service", wsdlLocation = 
"classpath:/juddi_api_v1.wsdl")
+        targetNamespace = "urn:juddi-apache-org:v3_service"
+        //, wsdlLocation = "classpath:/juddi_api_v1.wsdl"
+)
 public class JUDDIApiImpl extends AuthenticatedService implements 
JUDDIApiPortType {
 
         private Log log = LogFactory.getLog(this.getClass());
diff --git 
a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISecurityImpl.java 
b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISecurityImpl.java
index 24077c5..c2bf48f 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISecurityImpl.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISecurityImpl.java
@@ -121,8 +121,7 @@ public class UDDISecurityImpl extends AuthenticatedService 
implements UDDISecuri
                return getAuthToken(publisherId);
        }
        
-       public AuthToken getAuthToken(String publisherId)
-       throws DispositionReportFaultMessage {
+       public AuthToken getAuthToken(String publisherId) throws 
DispositionReportFaultMessage {
                long startTime = System.currentTimeMillis();
 
                if (publisherId == null || publisherId.length() == 0)
diff --git 
a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIValueSetCachingImpl.java
 
b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIValueSetCachingImpl.java
index 9d7a788..4e6cc21 100644
--- 
a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIValueSetCachingImpl.java
+++ 
b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIValueSetCachingImpl.java
@@ -18,6 +18,7 @@ package org.apache.juddi.api.impl;
 
 import java.util.ArrayList;
 import java.util.List;
+import javax.jws.WebService;
 
 import javax.xml.ws.Holder;
 
@@ -29,9 +30,9 @@ import org.uddi.v3_service.DispositionReportFaultMessage;
 import org.uddi.v3_service.UDDIValueSetCachingPortType;
 import org.uddi.vscache_v3.ValidValue;
 
-//@WebService(serviceName="UDDIValueSetCachingService", 
-//                     
endpointInterface="org.uddi.v3_service.UDDIValueSetCachingPortType",
-//                     targetNamespace = "urn:uddi-org:v3_service")
+@WebService(serviceName="UDDIValueSetCachingService", 
+                       
endpointInterface="org.uddi.v3_service.UDDIValueSetCachingPortType",
+                       targetNamespace = "urn:uddi-org:v3_service")
 public class UDDIValueSetCachingImpl extends AuthenticatedService implements 
UDDIValueSetCachingPortType {
 
         private static Log logger = 
LogFactory.getLog(UDDIValueSetCachingImpl.class);
diff --git 
a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIValueSetValidationImpl.java
 
b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIValueSetValidationImpl.java
index 23971f4..59f2ebe 100644
--- 
a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIValueSetValidationImpl.java
+++ 
b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIValueSetValidationImpl.java
@@ -21,6 +21,7 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
+import javax.jws.WebService;
 import javax.persistence.EntityManager;
 import javax.persistence.EntityTransaction;
 import static org.apache.juddi.api.impl.AuthenticatedService.logger;
@@ -72,6 +73,8 @@ import org.uddi.vs_v3.ValidateValues;
  * @see AbstractSimpleValidator
  * @author <a href="mailto:[email protected]";>Alex O'Ree</a>
  */
+@WebService(serviceName="UDDIValueSetCachingService", endpointInterface = 
"org.uddi.v3_service.UDDIValueSetValidationPortType"
+       , targetNamespace = "urn:uddi-org:api_v3_portType")
 public class UDDIValueSetValidationImpl extends AuthenticatedService implements
      UDDIValueSetValidationPortType {
 
diff --git 
a/juddi-core/src/main/java/org/apache/juddi/v3/auth/HTTPContainerAuthenticator.java
 
b/juddi-core/src/main/java/org/apache/juddi/v3/auth/HTTPContainerAuthenticator.java
index 71b9454..5a7cfcb 100644
--- 
a/juddi-core/src/main/java/org/apache/juddi/v3/auth/HTTPContainerAuthenticator.java
+++ 
b/juddi-core/src/main/java/org/apache/juddi/v3/auth/HTTPContainerAuthenticator.java
@@ -92,8 +92,8 @@ public class HTTPContainerAuthenticator implements 
Authenticator {
                                 log.warn("Publisher \"" + user + "\" was not 
found in the database, adding the publisher in on the fly.");
                                 publisher = new Publisher();
                                 publisher.setAuthorizedName(user);
-                                publisher.setIsAdmin("false");
-                                publisher.setIsEnabled("true");
+                                publisher.setIsAdmin(false);
+                                publisher.setIsEnabled(true);
                                 
publisher.setMaxBindingsPerService(MaxBindingsPerService);
                                 publisher.setMaxBusinesses(MaxBusinesses);
                                 
publisher.setMaxServicesPerBusiness(MaxServicesPerBusiness);
diff --git 
a/juddi-examples/create-partition/src/main/java/org/apache/juddi/example/partition/SimpleCreateTmodelPartition.java
 
b/juddi-examples/create-partition/src/main/java/org/apache/juddi/example/partition/SimpleCreateTmodelPartition.java
index 24d8c9c..0bf40b9 100644
--- 
a/juddi-examples/create-partition/src/main/java/org/apache/juddi/example/partition/SimpleCreateTmodelPartition.java
+++ 
b/juddi-examples/create-partition/src/main/java/org/apache/juddi/example/partition/SimpleCreateTmodelPartition.java
@@ -16,16 +16,13 @@
  */
 package org.apache.juddi.example.partition;
 
-import java.util.Properties;
 import javax.xml.ws.BindingProvider;
 import org.apache.commons.configuration.ConfigurationException;
 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;
 import org.uddi.api_v3.AuthToken;
-import org.uddi.api_v3.BindingTemplates;
 import org.uddi.api_v3.CategoryBag;
 import org.uddi.api_v3.GetAuthToken;
 import org.uddi.api_v3.KeyedReference;
@@ -46,7 +43,6 @@ public class SimpleCreateTmodelPartition {
 
         private static UDDISecurityPortType security = null;
         private static UDDIPublicationPortType publish = null;
-
         private static UDDIClient uddiClient = null;
 
         /**
diff --git a/juddi-examples/juddi-embedded/juddi-server.xml 
b/juddi-examples/juddi-embedded/juddi-server.xml
new file mode 100644
index 0000000..f0af7cb
--- /dev/null
+++ b/juddi-examples/juddi-embedded/juddi-server.xml
@@ -0,0 +1,225 @@
+<?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.
+*
+*/ -->
+<!--
+################################################################
+#                 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 -->
+               <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:businesses-asf</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>[email protected]</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>100</maxBusinessesPerPublisher>
+               <maxServicesPerBusiness>100</maxServicesPerBusiness>
+               <maxBindingsPerService>100</maxBindingsPerService>
+               <maxTModelsPerPublisher>100</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.v3.client.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
+                                
+                                See also, the Jboss Authenticator
+                               -->
+                               
<class>org.apache.juddi.v3.auth.JUDDIAuthenticator</class>
+                               <!-- other settings (mostly used by Ldap based 
auth mods
+                               url
+                               initialcontext
+                               style
+                               ldapexp
+                               -->
+                       </authenticator>
+
+                       <token>
+                               <!-- Time in minutes to expire tokes after 
inactivity-->
+                               <Timeout>30</Timeout>
+                               <!-- As of 3.1.5 Duration of time for tokens to 
expire, regardless of inactivity -->
+                               <Expiration>30</Expiration>
+                               <!-- As of 3.2, when set to true, tokens can 
only be used from the same IP address they were issued to -->
+                               <enforceSameIPRule>true</enforceSameIPRule>
+                       </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">Test</trustStorePassword>
+
+                            <checkTimestamps>true</checkTimestamps>
+                            <checkTrust>true</checkTrust>
+                            <checkRevocationCRL>false</checkRevocationCRL>
+                        </rejectInvalidSignatures>
+               </validation>
+
+               <!--As of 3.1.5 Email delivery options for subscription API 
functions-->
+               <mail>
+                       <smtp>
+                               <!--The Operator’s Email address
+                               <from>[email protected]</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>
+       </juddi>
+</config>
\ No newline at end of file
diff --git a/juddi-examples/juddi-embedded/juddi-users.xml 
b/juddi-examples/juddi-embedded/juddi-users.xml
new file mode 100644
index 0000000..44c07be
--- /dev/null
+++ b/juddi-examples/juddi-embedded/juddi-users.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+* 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.
+*
+*/ -->
+<juddi-users>
+       <user userid="anou_mana" password="password" />
+       <user userid="bozo" password="clown" />
+       <user userid="sviens" password="password" />
+</juddi-users>
\ No newline at end of file
diff --git a/juddi-examples/juddi-embedded/pom.xml 
b/juddi-examples/juddi-embedded/pom.xml
new file mode 100644
index 0000000..7b11085
--- /dev/null
+++ b/juddi-examples/juddi-embedded/pom.xml
@@ -0,0 +1,35 @@
+<?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/xsd/maven-4.0.0.xsd";>
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.juddi.example</groupId>
+        <artifactId>juddi-examples</artifactId>
+        <version>3.3.8-SNAPSHOT</version>
+    </parent>
+    <artifactId>juddi-embedded</artifactId>
+    <packaging>jar</packaging>
+    <name>jUDDI Embedded Example</name>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.juddi</groupId>
+            <artifactId>juddi-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.derby</groupId>
+            <artifactId>derby</artifactId>
+        </dependency>
+    </dependencies>
+</project>
\ No newline at end of file
diff --git 
a/juddi-examples/juddi-embedded/src/main/java/org/apache/juddi/example/juddi/embedded/EmbeddedNoWeb.java
 
b/juddi-examples/juddi-embedded/src/main/java/org/apache/juddi/example/juddi/embedded/EmbeddedNoWeb.java
new file mode 100644
index 0000000..dfd52e8
--- /dev/null
+++ 
b/juddi-examples/juddi-embedded/src/main/java/org/apache/juddi/example/juddi/embedded/EmbeddedNoWeb.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright 2020 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.example.juddi.embedded;
+
+import java.io.File;
+import static 
org.apache.juddi.config.AppConfig.JUDDI_CONFIGURATION_FILE_SYSTEM_PROPERTY;
+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.Name;
+import org.uddi.v3_service.UDDIInquiryPortType;
+import org.uddi.v3_service.UDDISecurityPortType;
+
+/**
+ * This sample shows you how to interact with jUDDI without exposing any web
+ * services to the network. It's basically a standalone java process that can
+ * used for any purpose.
+ *
+ * @author Alex O'Ree
+ */
+public class EmbeddedNoWeb {
+
+    public static void main(String[] args) throws Exception {
+        
+
+        //access the client as normal using invm transports
+        File cfg = new File("juddi-server.xml").getCanonicalFile();
+        System.setProperty(JUDDI_CONFIGURATION_FILE_SYSTEM_PROPERTY, 
cfg.getCanonicalPath());
+        cfg = new File("uddi-invm.xml");
+        UDDIClient uddiClientEmdded = new UDDIClient(cfg.getCanonicalPath());
+        uddiClientEmdded.start();
+        Transport transport = uddiClientEmdded.getTransport("default");
+        UDDISecurityPortType clientSecurity = 
transport.getUDDISecurityService();
+        UDDIInquiryPortType clientInquiry = transport.getUDDIInquiryService();
+
+        System.out.println("started, verifying embedded access");
+        FindBusiness fb = new FindBusiness();
+        fb.setMaxRows(200);
+        fb.setListHead(0);
+        // fb.setAuthInfo(GetToken());
+        org.uddi.api_v3.FindQualifiers fq = new 
org.uddi.api_v3.FindQualifiers();
+        fq.getFindQualifier().add(UDDIConstants.CASE_INSENSITIVE_MATCH);
+        fq.getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+        fq.getFindQualifier().add(UDDIConstants.SORT_BY_NAME_ASC);
+        fb.setFindQualifiers(fq);
+        Name searchname = new Name();
+        searchname.setLang("%");
+        searchname.setValue("%");
+        fb.getName().add(searchname);
+
+        BusinessList result = clientInquiry.findBusiness(fb);
+        System.out.println(result.getBusinessInfos().getBusinessInfo().size() 
+ " businesses available");
+        uddiClientEmdded.stop();
+        
+        //this appears to hang, there's a background thread spawned somewhere 
that doesn't die
+
+    }
+}
diff --git 
a/juddi-examples/juddi-embedded/src/main/java/org/apache/juddi/example/juddi/embedded/EmbeddedNoWebNoClerk.java
 
b/juddi-examples/juddi-embedded/src/main/java/org/apache/juddi/example/juddi/embedded/EmbeddedNoWebNoClerk.java
new file mode 100644
index 0000000..69f5e07
--- /dev/null
+++ 
b/juddi-examples/juddi-embedded/src/main/java/org/apache/juddi/example/juddi/embedded/EmbeddedNoWebNoClerk.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2020 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.example.juddi.embedded;
+
+import java.io.File;
+import java.util.HashSet;
+import java.util.Set;
+import org.apache.juddi.Registry;
+import org.apache.juddi.api.impl.JUDDIApiImpl;
+import org.apache.juddi.api.impl.UDDICustodyTransferImpl;
+import org.apache.juddi.api.impl.UDDIInquiryImpl;
+import org.apache.juddi.api.impl.UDDIPublicationImpl;
+import org.apache.juddi.api.impl.UDDISecurityImpl;
+import org.apache.juddi.api.impl.UDDISubscriptionImpl;
+import org.apache.juddi.api.impl.UDDIValueSetCachingImpl;
+import org.apache.juddi.api.impl.UDDIValueSetValidationImpl;
+import static 
org.apache.juddi.config.AppConfig.JUDDI_CONFIGURATION_FILE_SYSTEM_PROPERTY;
+import org.apache.juddi.v3.client.UDDIConstants;
+import org.uddi.api_v3.BusinessList;
+import org.uddi.api_v3.FindBusiness;
+import org.uddi.api_v3.Name;
+
+/**
+ * In this case, we are not using juddi's client/clerk/transport apis, just
+ * using the instance classes directly
+ *
+ * @author Alex O'Ree
+ */
+public class EmbeddedNoWebNoClerk {
+
+    public static void main(String[] args) throws Exception {
+        //tell juddi to load this server configuration file from disk
+        File cfg = new File("juddi-server.xml").getCanonicalFile();
+        System.setProperty(JUDDI_CONFIGURATION_FILE_SYSTEM_PROPERTY, 
cfg.getCanonicalPath());
+
+        //start up the services
+        Registry.start();
+        //note these instance classes will be used to server web requests
+        //do not share embedded access with web access classes due to context
+        //sharing issues.
+        JUDDIApiImpl juddi = new JUDDIApiImpl();
+        UDDIPublicationImpl publish = new UDDIPublicationImpl();
+        UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
+        UDDISecurityImpl security = new UDDISecurityImpl();
+        UDDISubscriptionImpl subscription = new UDDISubscriptionImpl();
+        UDDICustodyTransferImpl custody = new UDDICustodyTransferImpl();
+        UDDIValueSetCachingImpl cache = new UDDIValueSetCachingImpl();
+        UDDIValueSetValidationImpl validation = new 
UDDIValueSetValidationImpl();
+
+        //clients within this process can use invm transport
+        {
+            System.out.println("started, verifying embedded access");
+            FindBusiness fb = new FindBusiness();
+            fb.setMaxRows(200);
+            fb.setListHead(0);
+            // fb.setAuthInfo(GetToken());
+            org.uddi.api_v3.FindQualifiers fq = new 
org.uddi.api_v3.FindQualifiers();
+            fq.getFindQualifier().add(UDDIConstants.CASE_INSENSITIVE_MATCH);
+            fq.getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+            fq.getFindQualifier().add(UDDIConstants.SORT_BY_NAME_ASC);
+            fb.setFindQualifiers(fq);
+            Name searchname = new Name();
+            searchname.setLang("%");
+            searchname.setValue("%");
+            fb.getName().add(searchname);
+
+            BusinessList result = inquiry.findBusiness(fb);
+            
System.out.println(result.getBusinessInfos().getBusinessInfo().size() + " 
businesses available");
+            //uddiClientHttp.stop();
+        }
+
+        //for cases that require authentication...
+        //the authenticator should work the same as it is in tomcat
+        //except if you use http style authentication. in this case, you'll 
have 
+        //to do this....
+        //Set<String> roles = new HashSet<String>();
+        //Note: juddi doesn't use servlet container roles
+        //publish.setContext(new MyWebContext("uddi", roles));
+
+        System.out.println("ready, press enter to stop");
+        //  System.console().readLine();
+
+        //shutdown
+        Registry.stop();
+    }
+}
diff --git 
a/juddi-examples/juddi-embedded/src/main/java/org/apache/juddi/example/juddi/embedded/EmbeddedWithWeb.java
 
b/juddi-examples/juddi-embedded/src/main/java/org/apache/juddi/example/juddi/embedded/EmbeddedWithWeb.java
new file mode 100644
index 0000000..6f2d719
--- /dev/null
+++ 
b/juddi-examples/juddi-embedded/src/main/java/org/apache/juddi/example/juddi/embedded/EmbeddedWithWeb.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright 2020 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.example.juddi.embedded;
+
+import com.sun.net.httpserver.HttpServer;
+import java.io.File;
+import java.net.InetAddress;
+import java.net.InetSocketAddress;
+import javax.xml.ws.Endpoint;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.juddi.Registry;
+import org.apache.juddi.api.impl.JUDDIApiImpl;
+import org.apache.juddi.api.impl.UDDICustodyTransferImpl;
+import org.apache.juddi.api.impl.UDDIInquiryImpl;
+import org.apache.juddi.api.impl.UDDIPublicationImpl;
+import org.apache.juddi.api.impl.UDDISecurityImpl;
+import org.apache.juddi.api.impl.UDDISubscriptionImpl;
+import org.apache.juddi.api.impl.UDDIValueSetCachingImpl;
+import org.apache.juddi.api.impl.UDDIValueSetValidationImpl;
+import static 
org.apache.juddi.config.AppConfig.JUDDI_CONFIGURATION_FILE_SYSTEM_PROPERTY;
+import org.apache.juddi.v3.client.UDDIConstants;
+import org.apache.juddi.v3.client.config.UDDIClient;
+import org.apache.juddi.v3.client.config.UDDIClientContainer;
+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.Name;
+import org.uddi.v3_service.UDDIInquiryPortType;
+import org.uddi.v3_service.UDDIPublicationPortType;
+import org.uddi.v3_service.UDDISecurityPortType;
+
+/**
+ * Another example using juddi as an embedded standalone process.
+ * <ul>
+ * <li>This will only use uddi style authentication (http auth not
+ * supported).</li>
+ * <li>juddi gui will not start embedded using this sample code.</li>
+ * <li>juddi rest services will not start with this sample code, only the soap
+ * services</li>
+ * </ul>
+ *
+ * @author Alex O'Ree
+ */
+public class EmbeddedWithWeb {
+    
+    public static void main(String[] args) throws Exception {
+
+        //tell juddi to load this server configuration file from disk
+        File cfg = new File("juddi-server.xml").getCanonicalFile();
+        System.setProperty(JUDDI_CONFIGURATION_FILE_SYSTEM_PROPERTY, 
cfg.getCanonicalPath());
+
+        //start up the services
+        Registry.start();
+        //note these instance classes will be used to server web requests
+        //do not share embedded access with web access classes due to context
+        //sharing issues.
+        JUDDIApiImpl juddi = new JUDDIApiImpl();
+        UDDIPublicationImpl publish = new UDDIPublicationImpl();
+        UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
+        UDDISecurityImpl security = new UDDISecurityImpl();
+        UDDISubscriptionImpl subscription = new UDDISubscriptionImpl();
+        UDDICustodyTransferImpl custody = new UDDICustodyTransferImpl();
+        UDDIValueSetCachingImpl cache = new UDDIValueSetCachingImpl();
+        UDDIValueSetValidationImpl validation = new 
UDDIValueSetValidationImpl();
+        
+        
+
+        final HttpServer httpServer = HttpServer.create(new 
InetSocketAddress(InetAddress.getByName("0.0.0.0"), 8080), 16);
+        //TODO tls setup
+        
+        Endpoint endpointJuddi = Endpoint.create(juddi);
+        Endpoint endpointPublish = Endpoint.create(publish);
+        Endpoint endpointInquiry = Endpoint.create(inquiry);
+        Endpoint endpointSecurity = Endpoint.create(security);
+        Endpoint endpointSubscription = Endpoint.create(subscription);
+        Endpoint endpointCustody = Endpoint.create(custody);
+        Endpoint endpointCache = Endpoint.create(cache);
+        Endpoint endpointValidation = Endpoint.create(validation);
+        
+        
endpointJuddi.publish(httpServer.createContext("/juddiv3/services/juddi"));
+        
endpointPublish.publish(httpServer.createContext("/juddiv3/services/publish"));
+        
endpointInquiry.publish(httpServer.createContext("/juddiv3/services/inquiry"));
+        
endpointSecurity.publish(httpServer.createContext("/juddiv3/services/security"));
+        
endpointSubscription.publish(httpServer.createContext("/juddiv3/services/subscription"));
+        
endpointCustody.publish(httpServer.createContext("/juddiv3/services/custody-transfer"));
+        
endpointCache.publish(httpServer.createContext("/juddiv3/services/valueset-caching"));
+        
endpointValidation.publish(httpServer.createContext("/juddiv3/services/valueset-validation"));
+        
+        httpServer.start();
+        System.out.println("started, verifying http access");
+
+        //clients can access the services via http
+        {
+            cfg = new File("uddi-http.xml");
+            UDDIClient uddiClientHttp = new UDDIClient(cfg.getCanonicalPath());
+            uddiClientHttp.start();
+            Transport transport = uddiClientHttp.getTransport("default");
+            UDDISecurityPortType clientSecurity = 
transport.getUDDISecurityService();
+            UDDIInquiryPortType clientInquiry = 
transport.getUDDIInquiryService();
+            
+            System.out.println("started, verifying embedded access");
+            FindBusiness fb = new FindBusiness();
+            fb.setMaxRows(200);
+            fb.setListHead(0);
+            // fb.setAuthInfo(GetToken());
+            org.uddi.api_v3.FindQualifiers fq = new 
org.uddi.api_v3.FindQualifiers();
+            fq.getFindQualifier().add(UDDIConstants.CASE_INSENSITIVE_MATCH);
+            fq.getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+            fq.getFindQualifier().add(UDDIConstants.SORT_BY_NAME_ASC);
+            fb.setFindQualifiers(fq);
+            Name searchname = new Name();
+            searchname.setLang("%");
+            searchname.setValue("%");
+            fb.getName().add(searchname);
+            
+            BusinessList result = clientInquiry.findBusiness(fb);
+            
System.out.println(result.getBusinessInfos().getBusinessInfo().size() + " 
businesses available");
+            uddiClientHttp.stop();
+        }
+
+        //clients within this process can use invm transport
+        {
+            
+            cfg = new File("uddi-invm.xml");
+            UDDIClient uddiClientHttp = new UDDIClient(cfg.getCanonicalPath());
+            uddiClientHttp.start();
+            Transport transport = uddiClientHttp.getTransport("default");
+            UDDISecurityPortType clientSecurity = 
transport.getUDDISecurityService();
+            UDDIInquiryPortType clientInquiry = 
transport.getUDDIInquiryService();
+            
+            System.out.println("started, verifying embedded access");
+            FindBusiness fb = new FindBusiness();
+            fb.setMaxRows(200);
+            fb.setListHead(0);
+            // fb.setAuthInfo(GetToken());
+            org.uddi.api_v3.FindQualifiers fq = new 
org.uddi.api_v3.FindQualifiers();
+            fq.getFindQualifier().add(UDDIConstants.CASE_INSENSITIVE_MATCH);
+            fq.getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+            fq.getFindQualifier().add(UDDIConstants.SORT_BY_NAME_ASC);
+            fb.setFindQualifiers(fq);
+            Name searchname = new Name();
+            searchname.setLang("%");
+            searchname.setValue("%");
+            fb.getName().add(searchname);
+            
+            BusinessList result = clientInquiry.findBusiness(fb);
+            
System.out.println(result.getBusinessInfos().getBusinessInfo().size() + " 
businesses available");
+            //uddiClientHttp.stop();
+        }
+        
+        System.out.println("ready, press enter to stop");
+      //  System.console().readLine();
+
+        //shutdown
+        endpointJuddi.stop();
+        endpointPublish.stop();
+        endpointInquiry.stop();
+        endpointSecurity.stop();
+        endpointSubscription.stop();
+        endpointCustody.stop();
+        endpointCache.stop();
+        endpointValidation.stop();
+        httpServer.stop(0);
+    }
+}
diff --git 
a/juddi-examples/juddi-embedded/src/main/java/org/apache/juddi/example/juddi/embedded/MyWebContext.java
 
b/juddi-examples/juddi-embedded/src/main/java/org/apache/juddi/example/juddi/embedded/MyWebContext.java
new file mode 100644
index 0000000..b597934
--- /dev/null
+++ 
b/juddi-examples/juddi-embedded/src/main/java/org/apache/juddi/example/juddi/embedded/MyWebContext.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2020 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.example.juddi.embedded;
+
+import java.security.Principal;
+import java.util.Set;
+import javax.xml.ws.EndpointReference;
+import javax.xml.ws.WebServiceContext;
+import javax.xml.ws.handler.MessageContext;
+import org.w3c.dom.Element;
+
+/**
+ *
+ * @author Alex
+ */
+public class MyWebContext implements WebServiceContext {
+
+    String user;
+    Set<String> roles;
+
+    public MyWebContext(String username, Set<String> roles) {
+        this.user = username;
+        this.roles = roles;
+    }
+
+    @Override
+    public MessageContext getMessageContext() {
+        return null;
+    }
+
+    @Override
+    public Principal getUserPrincipal() {
+        return new Principal() {
+            @Override
+            public String getName() {
+                return user;
+            }
+        };
+    }
+
+    @Override
+    public boolean isUserInRole(String arg0) {
+        return roles.contains(arg0);
+    }
+
+    @Override
+    public EndpointReference getEndpointReference(Element... arg0) {
+        return null;
+    }
+
+    @Override
+    public <T extends EndpointReference> T getEndpointReference(Class<T> arg0, 
Element... arg1) {
+        return null;
+    }
+
+}
diff --git 
a/juddi-examples/juddi-embedded/src/main/resources/META-INF/persistence.xml 
b/juddi-examples/juddi-embedded/src/main/resources/META-INF/persistence.xml
new file mode 100644
index 0000000..725e81e
--- /dev/null
+++ b/juddi-examples/juddi-embedded/src/main/resources/META-INF/persistence.xml
@@ -0,0 +1,118 @@
+<?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.hibernate.ejb.HibernatePersistence</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="hibernate.archive.autodetection" value="class"/>
+      <property name="hibernate.hbm2ddl.auto" value="update"/>
+      <property name="hibernate.show_sql" value="false"/>
+      <!-- derby connection properties -->
+      <property name="hibernate.dialect" 
value="org.hibernate.dialect.DerbyDialect"/>
+      <property name="hibernate.connection.driver_class" 
value="org.apache.derby.jdbc.EmbeddedDriver"/>
+      <property name="hibernate.connection.url" 
value="jdbc:derby:memory:juddi-derby-test-db;create=true"/>
+      <property name="hibernate.connection.username" value=""/>
+      <property name="hibernate.connection.password" value=""/>
+      <!--  mysql connection properties 
+
+      <property name="hibernate.dialect" 
value="org.hibernate.dialect.MySQLDialect" />
+      <property name="hibernate.connection.driver_class" 
value="com.mysql.jdbc.Driver" />
+      <property name="hibernate.connection.username" value="juddiv3" />
+      <property name="hibernate.connection.password" value="" />
+      <property name="hibernate.connection.url" 
value="jdbc:mysql://localhost:3306/juddiv3" />
+-->
+      <!-- connection pool properties -->
+      <!--<property name = "hibernate.show_sql" value = "true" />-->
+      <property name="hibernate.dbcp.maxActive" value="100"/>
+      <property name="hibernate.dbcp.maxIdle" value="30"/>
+      <property name="hibernate.dbcp.maxWait" value="10000"/>
+    </properties>
+  </persistence-unit>
+</persistence>
diff --git 
a/juddi-examples/juddi-embedded/src/main/resources/META-INF/uddi-client.xml 
b/juddi-examples/juddi-embedded/src/main/resources/META-INF/uddi-client.xml
new file mode 100644
index 0000000..e7455d2
--- /dev/null
+++ b/juddi-examples/juddi-embedded/src/main/resources/META-INF/uddi-client.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!--
+/*
+ * 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.
+ *
+ -->
+<uddi xmlns="urn:juddi-apache-org:v3_client" xsi:schemaLocation="uddi-client 
classpath:xsd/uddi-client.xsd"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; >
+        <reloadDelay>5000</reloadDelay>
+        <client name="example-client">
+                <nodes>
+                        <node>
+                                <!-- required 'default' node -->
+                                <name>default</name> 
+                                <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" />
+                                        <property 
name="basicAuthPasswordIsEncrypted" value="false" />
+                                        <property 
name="basicAuthPasswordCryptoProvider" 
value="org.apache.juddi.v3.client.crypto.AES128Cryptor (an example)" />-->
+                                </properties>
+                                <description>Main jUDDI node</description>
+                                <!-- JAX-WS Transport -->
+                                
<proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport</proxyTransport>
+                                
<custodyTransferUrl>http://${serverName}:${serverPort}/juddiv3/services/custody-transfer</custodyTransferUrl>
+                                
<inquiryUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiry</inquiryUrl>
+                                
<inquiryRESTUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiryRest</inquiryRESTUrl>
+                                
<publishUrl>http://${serverName}:${serverPort}/juddiv3/services/publish</publishUrl>
+                                
<securityUrl>http://${serverName}:${serverPort}/juddiv3/services/security</securityUrl>
+                                
<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>
+                        </node>
+                </nodes>
+                <clerks>
+                        <clerk node="default" name="defaultClerk" password="" 
publisher="username"></clerk>
+                        
+                </clerks>
+        </client>
+</uddi>
diff --git a/juddi-examples/juddi-embedded/truststore.jks 
b/juddi-examples/juddi-embedded/truststore.jks
new file mode 100644
index 0000000..e751384
Binary files /dev/null and b/juddi-examples/juddi-embedded/truststore.jks differ
diff --git a/juddi-examples/juddi-embedded/uddi-http.xml 
b/juddi-examples/juddi-embedded/uddi-http.xml
new file mode 100644
index 0000000..67ce554
--- /dev/null
+++ b/juddi-examples/juddi-embedded/uddi-http.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!--
+/*
+ * 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.
+ *
+ -->
+<uddi xmlns="urn:juddi-apache-org:v3_client" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd">
+    <reloadDelay>5000</reloadDelay>
+    <client name="example-client">
+               <nodes>
+                       <node>
+                           <!-- required 'default' node -->
+                               <name>default</name> 
+                <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" />
+                                       <property 
name="basicAuthPasswordIsEncrypted" value="false" />
+                                       <property 
name="basicAuthPasswordCryptoProvider" 
value="org.apache.juddi.v3.client.crypto.AES128Cryptor (an example)" />-->
+                </properties>
+                               <description>Main jUDDI node</description>
+                               <!-- JAX-WS Transport -->
+                               
<proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport</proxyTransport>
+                               
<custodyTransferUrl>http://${serverName}:${serverPort}/juddiv3/services/custody-transfer?wsdl</custodyTransferUrl>
+                               
<inquiryUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiry?wsdl</inquiryUrl>
+                               
<inquiryRESTUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiryRest</inquiryRESTUrl>
+                       
<publishUrl>http://${serverName}:${serverPort}/juddiv3/services/publish?wsdl</publishUrl>
+                       
<securityUrl>http://${serverName}:${serverPort}/juddiv3/services/security?wsdl</securityUrl>
+                               
<subscriptionUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription?wsdl</subscriptionUrl>
+                               
<subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener?wsdl</subscriptionListenerUrl>
+                               
<juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api</juddiApiUrl>
+                       </node>
+               </nodes>
+               <signature>
+                       <!-- signing stuff -->
+                       <signingKeyStorePath>keystore.jks</signingKeyStorePath>
+                       <signingKeyStoreType>JKS</signingKeyStoreType>
+                       <signingKeyStoreFilePassword 
+                               isPasswordEncrypted="false" 
+                               
cryptoProvider="org.apache.juddi.v3.client.crypto.AES128Cryptor">password</signingKeyStoreFilePassword>
+                       <signingKeyPassword
+                               isPasswordEncrypted="false" 
+                               
cryptoProvider="org.apache.juddi.v3.client.crypto.AES128Cryptor">password</signingKeyPassword>
+                       <signingKeyAlias>my special key</signingKeyAlias>
+                        
+                       
<canonicalizationMethod>http://www.w3.org/2001/10/xml-exc-c14n#</canonicalizationMethod>
+                       
<signatureMethod>http://www.w3.org/2000/09/xmldsig#rsa-sha1</signatureMethod>
+                       
<XML_DIGSIG_NS>http://www.w3.org/2000/09/xmldsig#</XML_DIGSIG_NS>
+
+                       <!-- validation stuff 
+                       Used whenever someone views an entity that is signed 
and validation is required -->
+                       <!-- if this doesn't exist or is incorrect, the client 
will atempt to load the standard jdk trust store-->
+                       <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>
+                       
<keyInfoInclusionSubjectDN>false</keyInfoInclusionSubjectDN>
+                       <keyInfoInclusionSerial>false</keyInfoInclusionSerial>
+                       
<keyInfoInclusionBase64PublicKey>true</keyInfoInclusionBase64PublicKey>
+                       
<digestMethod>http://www.w3.org/2000/09/xmldsig#sha1</digestMethod>
+               </signature>
+               <subscriptionCallbacks>
+                       <keyDomain>uddi:somebusiness</keyDomain>
+                       <listenUrl>http://MyHostname:4444/callback</listenUrl>
+                       
<autoRegisterBindingTemplate>false</autoRegisterBindingTemplate>
+                       
<autoRegisterBusinessServiceKey>uddi:somebusiness:someservicekey</autoRegisterBusinessServiceKey>
+                       <signatureBehavior>DoNothing</signatureBehavior>
+                       <!--valid values are 
AbortIfSigned,Sign,DoNothing,SignOnlyIfParentIsntSigned, default is DoNothing-->
+               </subscriptionCallbacks>
+               <XtoWsdl>
+                       <IgnoreSSLErrors>false</IgnoreSSLErrors>
+               </XtoWsdl>
+       </client>
+</uddi>
diff --git a/juddi-examples/juddi-embedded/uddi-invm.xml 
b/juddi-examples/juddi-embedded/uddi-invm.xml
new file mode 100644
index 0000000..71365c5
--- /dev/null
+++ b/juddi-examples/juddi-embedded/uddi-invm.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!--
+/*
+ * 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.
+ *
+ -->
+<uddi xmlns="urn:juddi-apache-org:v3_client" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd">
+    <reloadDelay>5000</reloadDelay>
+    <client name="example-client">
+               <nodes>
+                       <node>
+                           <!-- required 'default' node -->
+                               <name>default</name> 
+                <!-- In VM Transport Settings -->
+                
<proxyTransport>org.apache.juddi.v3.client.transport.InVMTransport</proxyTransport>
+                
<custodyTransferUrl>org.apache.juddi.api.impl.UDDICustodyTransferImpl</custodyTransferUrl>
+                
<inquiryUrl>org.apache.juddi.api.impl.UDDIInquiryImpl</inquiryUrl>
+                               
<publishUrl>org.apache.juddi.api.impl.UDDIPublicationImpl</publishUrl>
+                               
<securityUrl>org.apache.juddi.api.impl.UDDISecurityImpl</securityUrl>
+                
<subscriptionUrl>org.apache.juddi.api.impl.UDDISubscriptionImpl</subscriptionUrl>
+                
<subscriptionListenerUrl>org.apache.juddi.api.impl.UDDISubscriptionListenerImpl</subscriptionListenerUrl>
+                
<juddiApiUrl>org.apache.juddi.api.impl.JUDDIApiImpl</juddiApiUrl>
+                
+                       </node>
+               </nodes>
+               <signature>
+                       <!-- signing stuff -->
+                       <signingKeyStorePath>keystore.jks</signingKeyStorePath>
+                       <signingKeyStoreType>JKS</signingKeyStoreType>
+                       <signingKeyStoreFilePassword 
+                               isPasswordEncrypted="false" 
+                               
cryptoProvider="org.apache.juddi.v3.client.crypto.AES128Cryptor">password</signingKeyStoreFilePassword>
+                       <signingKeyPassword
+                               isPasswordEncrypted="false" 
+                               
cryptoProvider="org.apache.juddi.v3.client.crypto.AES128Cryptor">password</signingKeyPassword>
+                       <signingKeyAlias>my special key</signingKeyAlias>
+                        
+                       
<canonicalizationMethod>http://www.w3.org/2001/10/xml-exc-c14n#</canonicalizationMethod>
+                       
<signatureMethod>http://www.w3.org/2000/09/xmldsig#rsa-sha1</signatureMethod>
+                       
<XML_DIGSIG_NS>http://www.w3.org/2000/09/xmldsig#</XML_DIGSIG_NS>
+
+                       <!-- validation stuff 
+                       Used whenever someone views an entity that is signed 
and validation is required -->
+                       <!-- if this doesn't exist or is incorrect, the client 
will atempt to load the standard jdk trust store-->
+                       <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>
+                       
<keyInfoInclusionSubjectDN>false</keyInfoInclusionSubjectDN>
+                       <keyInfoInclusionSerial>false</keyInfoInclusionSerial>
+                       
<keyInfoInclusionBase64PublicKey>true</keyInfoInclusionBase64PublicKey>
+                       
<digestMethod>http://www.w3.org/2000/09/xmldsig#sha1</digestMethod>
+               </signature>
+               <subscriptionCallbacks>
+                       <keyDomain>uddi:somebusiness</keyDomain>
+                       <listenUrl>http://MyHostname:4444/callback</listenUrl>
+                       
<autoRegisterBindingTemplate>false</autoRegisterBindingTemplate>
+                       
<autoRegisterBusinessServiceKey>uddi:somebusiness:someservicekey</autoRegisterBusinessServiceKey>
+                       <signatureBehavior>DoNothing</signatureBehavior>
+                       <!--valid values are 
AbortIfSigned,Sign,DoNothing,SignOnlyIfParentIsntSigned, default is DoNothing-->
+               </subscriptionCallbacks>
+               <XtoWsdl>
+                       <IgnoreSSLErrors>false</IgnoreSSLErrors>
+               </XtoWsdl>
+       </client>
+</uddi>
diff --git a/juddi-examples/pom.xml b/juddi-examples/pom.xml
index 794a3a6..6b93f73 100644
--- a/juddi-examples/pom.xml
+++ b/juddi-examples/pom.xml
@@ -40,5 +40,6 @@
                <module>service-version</module>
     <module>uddiv2-api-bridge-example</module>
     <module>ValueSetValidator</module>
-  </modules>
+        <module>juddi-embedded</module>
+       </modules>
 </project>
\ No newline at end of file
diff --git a/juddi-gui/pom.xml b/juddi-gui/pom.xml
index a1e4716..18d0dee 100644
--- a/juddi-gui/pom.xml
+++ b/juddi-gui/pom.xml
@@ -16,7 +16,7 @@ language governing permissions and * limitations under the 
License. * */ -->
     </parent>
     <artifactId>juddi-gui-war</artifactId>
     <packaging>war</packaging>
-    <name>jUDDI GUI WAR construction</name>
+    <name>jUDDI GUI WAR</name>
     <url>http://juddi.apache.org</url>
     <dependencies>
         <dependency>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to