JUDDI-890 fixed, hopefully all content is preserved while saving, minus xml 
comments


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

Branch: refs/heads/master
Commit: 1a894c8926a84314305b3e3727486545f1025a20
Parents: bd0b53f
Author: alexoree <[email protected]>
Authored: Wed Nov 12 19:54:54 2014 -0500
Committer: alexoree <[email protected]>
Committed: Wed Nov 12 19:54:54 2014 -0500

----------------------------------------------------------------------
 .../juddi/v3/client/config/ClientConfig.java    | 1084 ++++++++++++------
 .../juddi/v3/client/config/UDDIClient.java      |    2 +-
 .../juddi/v3/client/cryptor/DigSigUtil.java     |   13 +
 .../v3/client/config/MisconfigurationTests.java |   44 -
 .../src/test/resources/META-INF/configtests.xml |    2 +-
 .../test/resources/META-INF/subscription.xml    |    2 +-
 .../resources/META-INF/uddi-subcallback1.xml    |    2 +-
 .../resources/META-INF/uddi-subcallback2.xml    |    2 +-
 .../resources/META-INF/uddi-subcallback3.xml    |    2 +-
 .../src/test/resources/META-INF/uddi.xml        |    4 +-
 .../src/test/resources/META-INF/uddi2.xml       |    2 +-
 .../resources/META-INF/uddi3-enc-aes128.xml     |    2 +-
 .../src/test/resources/META-INF/uddiv2.xml      |    2 +-
 .../src/test/resources/META-INF/uddi.xml        |    2 +-
 juddi-core/src/test/resources/META-INF/uddi.xml |    2 +-
 .../src/main/resources/META-INF/uddi.xml        |    2 +-
 .../main/resources/META-INF/partition-uddi.xml  |    2 +-
 .../resources/META-INF/simple-publish-uddi.xml  |    2 +-
 .../src/main/resources/META-INF/uddi.xml        |    2 +-
 .../src/main/resources/META-INF/uddi.xml        |    2 +-
 .../src/main/resources/META-INF/sales-uddi.xml  |    2 +-
 .../resources/META-INF/uddi-annotations.xml     |    2 +-
 .../main/resources/META-INF/wsdl2uddi-uddi.xml  |    2 +-
 .../main/resources/META-INF/wsdl2uddi-uddi.xml  |    2 +-
 24 files changed, 760 insertions(+), 425 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/juddi/blob/1a894c89/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
----------------------------------------------------------------------
diff --git 
a/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
 
b/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
index 54249a5..bb8d6f9 100644
--- 
a/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
+++ 
b/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
@@ -24,6 +24,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 import javax.xml.crypto.dsig.CanonicalizationMethod;
 
@@ -38,420 +40,784 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.juddi.api_v3.Node;
 import org.apache.juddi.v3.client.cryptor.CryptorFactory;
 import org.apache.juddi.v3.client.cryptor.DigSigUtil;
+import org.apache.juddi.v3.client.subscription.SubscriptionCallbackListener;
 
 /**
  * Handles the client configuration of the uddi-client. By default it first
- * looks at system properties. Then loads from the config file from the system 
property
- * "uddi.client.xml", next the user specified file, finally, 
"META-INF/uddi.xml"
- * 
+ * looks at system properties. Then loads from the config file from the system
+ * property "uddi.client.xml", next the user specified file, finally,
+ * "META-INF/uddi.xml"
+ *
  * @author <a href="mailto:[email protected]";>Kurt T Stam</a>
+ * @author <a href="mailto:[email protected]";>Alex O'Ree</a>
  */
-public class ClientConfig 
-{
-       public final static String UDDI_CONFIG_FILENAME_PROPERTY = 
"uddi.client.xml";
-       public final static String DEFAULT_UDDI_CONFIG = "META-INF/uddi.xml";
-       private Log log = LogFactory.getLog(ClientConfig.class);
-       private Configuration config = null;;
-       private Map<String,UDDINode> uddiNodes = null;
-       private Map<String,UDDIClerk> uddiClerks = null;
-       private Set<XRegistration> xBusinessRegistrations = null;
-       private Set<XRegistration> xServiceBindingRegistrations = null;
-       private String clientName = null;
-       private String clientCallbackUrl = null;
-       private String configurationFile=null;
-       
-       /**
-        * Constructor (note Singleton pattern).
-        * @throws ConfigurationException
-        */
-       public ClientConfig(String configurationFile) throws 
ConfigurationException 
-       {
-                loadConfiguration(configurationFile, null);
-       }
-       /**
-        * Constructor (note Singleton pattern).
-        * @throws ConfigurationException
-        */
-       public ClientConfig(String configurationFile, Properties properties) 
throws ConfigurationException 
-       {
-               loadConfiguration(configurationFile, properties);
-       }
+public class ClientConfig {
+
+        public final static String UDDI_CONFIG_FILENAME_PROPERTY = 
"uddi.client.xml";
+        public final static String DEFAULT_UDDI_CONFIG = "META-INF/uddi.xml";
+        private Log log = LogFactory.getLog(ClientConfig.class);
+        private Configuration config = null;
         
+       private Map<String, UDDINode> uddiNodes = null;
+        private Map<String, UDDIClerk> uddiClerks = null;
+        private Set<XRegistration> xBusinessRegistrations = null;
+        private Set<XRegistration> xServiceBindingRegistrations = null;
+        private String clientName = null;
+        private String clientCallbackUrl = null;
+        private String configurationFile = null;
+
+        /**
+         * Constructor (note Singleton pattern).
+         *
+         * @throws ConfigurationException
+         */
+        public ClientConfig(String configurationFile) throws 
ConfigurationException {
+                loadConfiguration(configurationFile, null);
+        }
+
+        /**
+         * Constructor (note Singleton pattern).
+         *
+         * @throws ConfigurationException
+         */
+        public ClientConfig(String configurationFile, Properties properties) 
throws ConfigurationException {
+                loadConfiguration(configurationFile, properties);
+        }
+
         /**
          * Attempts to save any changes made to the configuration back to disk
-         * @throws ConfigurationException 
+         *
+         * @throws ConfigurationException
          */
-        public void saveConfig() throws ConfigurationException
-        {
-            
-            XMLConfiguration saveConfiguration = new 
XMLConfiguration(configurationFile);
-            Configuration cc = new CompositeConfiguration(saveConfiguration);
-            Iterator<String> keys = this.config.getKeys();
-            while (keys.hasNext()){
-                String key = keys.next();
-                if (key.startsWith("client") || key.startsWith("config"))
+        public void saveConfig() throws ConfigurationException {
+
+                /*System.out.println("DEBUG dumping current cfg");
+                Iterator<String> keys = config.getKeys();
+                while(keys.hasNext())
                 {
-                    cc.setProperty(key, config.getProperty(key));
+                        String k=keys.next();
+                        System.out.println(k +" = " + config.getProperty(k));
+                }*/
+                XMLConfiguration saveConfiguration = new XMLConfiguration();
+                Configuration cc = new 
CompositeConfiguration(saveConfiguration);
+
+                saveConfiguration.setRootElementName("uddi");
+
+                cc.addProperty("reloadDelay", 
config.getProperty("reloadDelay"));
+                addCurrentNodeConfig(cc);
+                addCurrentClerks(cc);
+                try {
+                        addDigitalSubscription(cc);
+                } catch (Exception ex) {
+                        throw new ConfigurationException("error", ex);
                 }
-            }
-            saveConfiguration.save();
+                addSubscriptionCallback(cc);
+                
+                /*log.de("DEBUG dumping NEW cfg");
+              keys=  cc.getKeys();
+                 
+                while(keys.hasNext())
+                {
+                        String k=keys.next();
+                        System.out.println(k +" = " + config.getProperty(k));
+                }*/
+                addXRegistration(cc);
+
+                saveConfiguration.save(configurationFile);
         }
-        
-       protected void readConfig(Properties properties) throws 
ConfigurationException {
-               uddiNodes = readNodeConfig(config, properties);
-               uddiClerks = readClerkConfig(config, uddiNodes);
-               xServiceBindingRegistrations = 
readXServiceBindingRegConfig(config,uddiClerks);
-               xBusinessRegistrations = readXBusinessRegConfig(config, 
uddiClerks);
-       }
-       /**
-        * Does the actual work of reading the configuration from System
-        * Properties and/or uddi.xml file. When the uddi.xml
-        * file is updated the file will be reloaded. By default the 
reloadDelay is
-        * set to 1 second to prevent excessive date stamp checking.
-        */
-       private void loadConfiguration(String configurationFile, Properties 
properties) throws ConfigurationException {
-               //Properties from system properties
-               CompositeConfiguration compositeConfig = new 
CompositeConfiguration();
-               compositeConfig.addConfiguration(new SystemConfiguration());
-               //Properties from XML file
-                if (System.getProperty(UDDI_CONFIG_FILENAME_PROPERTY)!=null){
+
+        protected void readConfig(Properties properties) throws 
ConfigurationException {
+                uddiNodes = readNodeConfig(config, properties);
+                uddiClerks = readClerkConfig(config, uddiNodes);
+                xServiceBindingRegistrations = 
readXServiceBindingRegConfig(config, uddiClerks);
+                xBusinessRegistrations = readXBusinessRegConfig(config, 
uddiClerks);
+        }
+
+        /**
+         * Does the actual work of reading the configuration from System
+         * Properties and/or uddi.xml file. When the uddi.xml file is updated
+         * the file will be reloaded. By default the reloadDelay is set to 1
+         * second to prevent excessive date stamp checking.
+         */
+        private void loadConfiguration(String configurationFile, Properties 
properties) throws ConfigurationException {
+                //Properties from system properties
+                CompositeConfiguration compositeConfig = new 
CompositeConfiguration();
+                compositeConfig.addConfiguration(new SystemConfiguration());
+                //Properties from XML file
+                if (System.getProperty(UDDI_CONFIG_FILENAME_PROPERTY) != null) 
{
                         log.info("Using system property config override");
                         configurationFile = 
System.getProperty(UDDI_CONFIG_FILENAME_PROPERTY);
                 }
-               XMLConfiguration xmlConfig = null;
-               if (configurationFile!=null) {
-                       xmlConfig = new XMLConfiguration(configurationFile);
-               } else {
-                       final String filename = 
System.getProperty(UDDI_CONFIG_FILENAME_PROPERTY);
-                       if (filename != null) {
-                               xmlConfig = new XMLConfiguration(filename);
-                       } else { 
-                               xmlConfig = new 
XMLConfiguration(DEFAULT_UDDI_CONFIG);  
-                       }
-               }
-               log.info("Reading UDDI Client properties file " + 
xmlConfig.getBasePath() + " use -D"+UDDI_CONFIG_FILENAME_PROPERTY+ " to 
override");
-               this.configurationFile = xmlConfig.getBasePath();
-               long refreshDelay = 
xmlConfig.getLong(Property.UDDI_RELOAD_DELAY, 1000l);
-               log.debug("Setting refreshDelay to " + refreshDelay);
-               FileChangedReloadingStrategy fileChangedReloadingStrategy = new 
FileChangedReloadingStrategy();
-               fileChangedReloadingStrategy.setRefreshDelay(refreshDelay);
-               xmlConfig.setReloadingStrategy(fileChangedReloadingStrategy);
-               compositeConfig.addConfiguration(xmlConfig);
-               //Making the new configuration globally accessible.
-               config = compositeConfig;
-               readConfig(properties);
-       }
-
-       private Map<String,UDDIClerk> readClerkConfig(Configuration config, 
Map<String,UDDINode> uddiNodes) 
-       throws ConfigurationException {
-               clientName = config.getString("client[@name]");
-               clientCallbackUrl = config.getString("client[@callbackUrl]");
-               Map<String,UDDIClerk> clerks = new HashMap<String,UDDIClerk>();
-               if (config.containsKey("client.clerks.clerk[@name]")) {
-                       String[] names = 
config.getStringArray("client.clerks.clerk[@name]");
-                       
-                       log.debug("clerk names=" + names.length);
-                       for (int i=0; i<names.length; i++) {
-                               UDDIClerk uddiClerk = new UDDIClerk();
-                               uddiClerk.setManagerName(clientName);
-                               uddiClerk.setName(     
config.getString("client.clerks.clerk(" + i + ")[@name]"));
-                               String nodeRef = 
config.getString("client.clerks.clerk(" + i + ")[@node]");
-                               if (!uddiNodes.containsKey(nodeRef)) throw new 
ConfigurationException("Could not find Node with name=" + nodeRef);
-                               UDDINode uddiNode = uddiNodes.get(nodeRef);
-                               uddiClerk.setUDDINode(uddiNode);
-                               
uddiClerk.setPublisher(config.getString("client.clerks.clerk(" + i + 
")[@publisher]"));
-                               uddiClerk.setPassword( 
config.getString("client.clerks.clerk(" + i + ")[@password]"));
-                                
uddiClerk.setIsPasswordEncrypted(config.getBoolean("client.clerks.clerk(" + i + 
")[@isPasswordEncrypted]",false) );
+                XMLConfiguration xmlConfig = null;
+                if (configurationFile != null) {
+                        xmlConfig = new XMLConfiguration(configurationFile);
+                } else {
+                        final String filename = 
System.getProperty(UDDI_CONFIG_FILENAME_PROPERTY);
+                        if (filename != null) {
+                                xmlConfig = new XMLConfiguration(filename);
+                        } else {
+                                xmlConfig = new 
XMLConfiguration(DEFAULT_UDDI_CONFIG);
+                        }
+                }
+                log.info("Reading UDDI Client properties file " + 
xmlConfig.getBasePath() + " use -D" + UDDI_CONFIG_FILENAME_PROPERTY + " to 
override");
+                this.configurationFile = xmlConfig.getBasePath();
+                long refreshDelay = 
xmlConfig.getLong(Property.UDDI_RELOAD_DELAY, 1000l);
+                log.debug("Setting refreshDelay to " + refreshDelay);
+                FileChangedReloadingStrategy fileChangedReloadingStrategy = 
new FileChangedReloadingStrategy();
+                fileChangedReloadingStrategy.setRefreshDelay(refreshDelay);
+                xmlConfig.setReloadingStrategy(fileChangedReloadingStrategy);
+                compositeConfig.addConfiguration(xmlConfig);
+                //Making the new configuration globally accessible.
+                config = compositeConfig;
+                readConfig(properties);
+
+                validateConfig();
+        }
+
+        private Map<String, UDDIClerk> readClerkConfig(Configuration config, 
Map<String, UDDINode> uddiNodes)
+             throws ConfigurationException {
+                clientName = config.getString("client[@name]");
+                clientCallbackUrl = config.getString("client[@callbackUrl]");
+                Map<String, UDDIClerk> clerks = new HashMap<String, 
UDDIClerk>();
+                if (config.containsKey("client.clerks.clerk[@name]")) {
+                        String[] names = 
config.getStringArray("client.clerks.clerk[@name]");
+
+                        log.debug("clerk names=" + names.length);
+                        for (int i = 0; i < names.length; i++) {
+                                UDDIClerk uddiClerk = new UDDIClerk();
+                                uddiClerk.setManagerName(clientName);
+                                
uddiClerk.setName(config.getString("client.clerks.clerk(" + i + ")[@name]"));
+                                String nodeRef = 
config.getString("client.clerks.clerk(" + i + ")[@node]");
+                                if (!uddiNodes.containsKey(nodeRef)) {
+                                        throw new 
ConfigurationException("Could not find Node with name=" + nodeRef);
+                                }
+                                UDDINode uddiNode = uddiNodes.get(nodeRef);
+                                uddiClerk.setUDDINode(uddiNode);
+                                
uddiClerk.setPublisher(config.getString("client.clerks.clerk(" + i + 
")[@publisher]"));
+                                
uddiClerk.setPassword(config.getString("client.clerks.clerk(" + i + 
")[@password]"));
+                                
uddiClerk.setIsPasswordEncrypted(config.getBoolean("client.clerks.clerk(" + i + 
")[@isPasswordEncrypted]", false));
                                 
uddiClerk.setCryptoProvider(config.getString("client.clerks.clerk(" + i + 
")[@cryptoProvider]"));
-                               
-                               String clerkBusinessKey = 
config.getString("client.clerks.clerk(" + i + ")[@businessKey]");
-                               String clerkBusinessName = 
config.getString("client.clerks.clerk(" + i + ")[@businessName]");
-                               String clerkKeyDomain = 
config.getString("client.clerks.clerk(" + i + ")[@keyDomain]");
-                               
-                               String[] classes = 
config.getStringArray("client.clerks.clerk(" + i + ").class");
-                               uddiClerk.setClassWithAnnotations(classes);
-                               
-                               int numberOfWslds = 
config.getStringArray("client.clerks.clerk(" + i + ").wsdl").length;
-                               if (numberOfWslds > 0) {
-                                       UDDIClerk.WSDL[] wsdls = new 
UDDIClerk.WSDL[numberOfWslds];
-                                       for (int w=0; w<wsdls.length; w++) {
-                                               UDDIClerk.WSDL wsdl = 
uddiClerk.new WSDL();
-                                               String fileName = 
config.getString("client.clerks.clerk(" + i + ").wsdl(" + w + ")");
-                                               wsdl.setFileName(fileName);
-                                               String businessKey = 
config.getString("client.clerks.clerk(" + i + ").wsdl(" + w + 
")[@businessKey]");
-                                               String businessName = 
config.getString("client.clerks.clerk(" + i + ").wsdl(" + w + 
")[@businessName]");
-                                               String keyDomain = 
config.getString("client.clerks.clerk(" + i + ").wsdl(" + w + ")[@keyDomain]");
-                                               if (businessKey==null) 
businessKey = clerkBusinessKey;
-                                               if (businessKey==null) 
businessKey = 
uddiClerk.getUDDINode().getProperties().getProperty("businessKey");
-                                               if (businessKey==null) {
-                                                       //use key convention to 
build the businessKey
-                                                       if (businessName==null) 
businessName = clerkBusinessName;
-                                                       if (keyDomain==null) 
keyDomain = clerkKeyDomain;
-                                                       if (keyDomain==null) 
keyDomain = uddiClerk.getUDDINode().getProperties().getProperty("keyDomain");
-                                                       if ((businessName==null 
&& ! uddiClerk.getUDDINode().getProperties().containsKey("businessName"))
-                                                               || 
keyDomain==null && ! 
uddiClerk.getUDDINode().getProperties().containsKey("keyDomain")) throw new 
ConfigurationException("Either the wsdl(" + wsdls[w] 
-                                                                       + ") or 
clerk (" + uddiClerk.name + ") elements require a businessKey, or businessName 
& keyDomain attributes");
-                                                       else {
-                                                               Properties 
properties = new Properties(uddiClerk.getUDDINode().getProperties());
-                                                               if 
(businessName!=null) properties.put("businessName", businessName);
-                                                               if 
(keyDomain!=null) properties.put("keyDomain", keyDomain);
-                                                               businessKey = 
UDDIKeyConvention.getBusinessKey(properties);
-                                                       }
-                                               }
-                                               if (! 
businessKey.toLowerCase().startsWith("uddi:") || ! 
businessKey.substring(5).contains(":")) {
-                                                       throw new 
ConfigurationException("The businessKey " + businessKey + " does not implement 
a valid UDDI v3 key format.");
-                                               }
-                                               
wsdl.setBusinessKey(businessKey);
-                                               if (keyDomain==null) {
-                                                       keyDomain = 
businessKey.split(":")[1];
-                                               }
-                                               wsdl.setKeyDomain(keyDomain);
-                                               wsdls[w]=wsdl;
-                                       }
-                                       uddiClerk.setWsdls(wsdls);
-                               }
-                               
-                               clerks.put(names[i],uddiClerk);
-                       }
-               }
-               return clerks;
-       }
-       
+
+                                String clerkBusinessKey = 
config.getString("client.clerks.clerk(" + i + ")[@businessKey]");
+                                String clerkBusinessName = 
config.getString("client.clerks.clerk(" + i + ")[@businessName]");
+                                String clerkKeyDomain = 
config.getString("client.clerks.clerk(" + i + ")[@keyDomain]");
+
+                                String[] classes = 
config.getStringArray("client.clerks.clerk(" + i + ").class");
+                                uddiClerk.setClassWithAnnotations(classes);
+
+                                int numberOfWslds = 
config.getStringArray("client.clerks.clerk(" + i + ").wsdl").length;
+                                if (numberOfWslds > 0) {
+                                        UDDIClerk.WSDL[] wsdls = new 
UDDIClerk.WSDL[numberOfWslds];
+                                        for (int w = 0; w < wsdls.length; w++) 
{
+                                                UDDIClerk.WSDL wsdl = 
uddiClerk.new WSDL();
+                                                String fileName = 
config.getString("client.clerks.clerk(" + i + ").wsdl(" + w + ")");
+                                                wsdl.setFileName(fileName);
+                                                String businessKey = 
config.getString("client.clerks.clerk(" + i + ").wsdl(" + w + 
")[@businessKey]");
+                                                String businessName = 
config.getString("client.clerks.clerk(" + i + ").wsdl(" + w + 
")[@businessName]");
+                                                String keyDomain = 
config.getString("client.clerks.clerk(" + i + ").wsdl(" + w + ")[@keyDomain]");
+                                                if (businessKey == null) {
+                                                        businessKey = 
clerkBusinessKey;
+                                                }
+                                                if (businessKey == null) {
+                                                        businessKey = 
uddiClerk.getUDDINode().getProperties().getProperty("businessKey");
+                                                }
+                                                if (businessKey == null) {
+                                                        //use key convention 
to build the businessKey
+                                                        if (businessName == 
null) {
+                                                                businessName = 
clerkBusinessName;
+                                                        }
+                                                        if (keyDomain == null) 
{
+                                                                keyDomain = 
clerkKeyDomain;
+                                                        }
+                                                        if (keyDomain == null) 
{
+                                                                keyDomain = 
uddiClerk.getUDDINode().getProperties().getProperty("keyDomain");
+                                                        }
+                                                        if ((businessName == 
null && !uddiClerk.getUDDINode().getProperties().containsKey("businessName"))
+                                                             || keyDomain == 
null && !uddiClerk.getUDDINode().getProperties().containsKey("keyDomain")) {
+                                                                throw new 
ConfigurationException("Either the wsdl(" + wsdls[w]
+                                                                     + ") or 
clerk (" + uddiClerk.name + ") elements require a businessKey, or businessName 
& keyDomain attributes");
+                                                        } else {
+                                                                Properties 
properties = new Properties(uddiClerk.getUDDINode().getProperties());
+                                                                if 
(businessName != null) {
+                                                                        
properties.put("businessName", businessName);
+                                                                }
+                                                                if (keyDomain 
!= null) {
+                                                                        
properties.put("keyDomain", keyDomain);
+                                                                }
+                                                                businessKey = 
UDDIKeyConvention.getBusinessKey(properties);
+                                                        }
+                                                }
+                                                if 
(!businessKey.toLowerCase().startsWith("uddi:") || 
!businessKey.substring(5).contains(":")) {
+                                                        throw new 
ConfigurationException("The businessKey " + businessKey + " does not implement 
a valid UDDI v3 key format.");
+                                                }
+                                                
wsdl.setBusinessKey(businessKey);
+                                                if (keyDomain == null) {
+                                                        keyDomain = 
businessKey.split(":")[1];
+                                                }
+                                                wsdl.setKeyDomain(keyDomain);
+                                                wsdls[w] = wsdl;
+                                        }
+                                        uddiClerk.setWsdls(wsdls);
+                                }
+
+                                clerks.put(names[i], uddiClerk);
+                        }
+                }
+                return clerks;
+        }
+
         /**
-         * signals that the specified classes/wsdls are registered with the 
UDDI server
-         * when UDDIClient.start() is called
+         * signals that the specified classes/wsdls are registered with the 
UDDI
+         * server when UDDIClient.start() is called
          * client.clerks[@registerOnStartup]
+         *
          * @return true/false
          */
-       public boolean isRegisterOnStartup() {
-               boolean isRegisterOnStartup = false;
-               if (config.containsKey("client.clerks[@registerOnStartup]")) {
-                       isRegisterOnStartup = 
config.getBoolean("client.clerks[@registerOnStartup]");
-               }
-               return isRegisterOnStartup;
-       }
-
-       private Map<String,UDDINode> readNodeConfig(Configuration config, 
Properties properties) 
-       throws ConfigurationException {
-               String[] names = 
config.getStringArray("client.nodes.node.name");
-               Map<String,UDDINode> nodes = new HashMap<String,UDDINode>();
-               log.debug("node names=" + names.length);
-               for (int i=0; i<names.length; i++) {
-                       UDDINode uddiNode = new UDDINode();
-                       String nodeName = config.getString("client.nodes.node(" 
+ i +").name");
-                       String[] propertyKeys = 
config.getStringArray("client.nodes.node(" + i +").properties.property[@name]");
-                       
-                       if (propertyKeys!=null && propertyKeys.length>0) {
-                               if (properties==null) properties = new 
Properties();
-                               for (int p=0; p<propertyKeys.length; p++) {
-                                       String 
name=config.getString("client.nodes.node(" + i +").properties.property(" + p + 
")[@name]");
-                                       String 
value=config.getString("client.nodes.node(" + i +").properties.property(" + p + 
")[@value]");
-                                       log.debug("Property: name=" + name + " 
value=" + value);
-                                       properties.put(name, value);
-                               }
-                               uddiNode.setProperties(properties);
-                       }
-
-                       uddiNode.setHomeJUDDI(              
config.getBoolean("client.nodes.node(" + i +")[@isHomeJUDDI]",false));
-                       uddiNode.setName(                   
TokenResolver.replaceTokens(config.getString("client.nodes.node(" + i 
+").name"),properties));
-                       uddiNode.setClientName(             
TokenResolver.replaceTokens(config.getString("client[@name]"),properties));
-                       uddiNode.setDescription(            
TokenResolver.replaceTokens(config.getString("client.nodes.node(" + i 
+").description"),properties));
-                       uddiNode.setProxyTransport(         
TokenResolver.replaceTokens(config.getString("client.nodes.node(" + i 
+").proxyTransport"),properties));
-                       uddiNode.setInquiryUrl(             
TokenResolver.replaceTokens(config.getString("client.nodes.node(" + i 
+").inquiryUrl"),properties));
-                        uddiNode.setInquiryRESTUrl(             
TokenResolver.replaceTokens(config.getString("client.nodes.node(" + i 
+").inquiryRESTUrl"),properties));
-                       uddiNode.setPublishUrl(             
TokenResolver.replaceTokens(config.getString("client.nodes.node(" + i 
+").publishUrl"),properties));
-                       uddiNode.setCustodyTransferUrl(     
TokenResolver.replaceTokens(config.getString("client.nodes.node(" + i 
+").custodyTransferUrl"),properties));
-                       uddiNode.setSecurityUrl(            
TokenResolver.replaceTokens(config.getString("client.nodes.node(" + i 
+").securityUrl"),properties));
-                        uddiNode.setReplicationUrl(         
TokenResolver.replaceTokens(config.getString("client.nodes.node(" + i 
+").replicationUrl"),properties));
-                       uddiNode.setSubscriptionUrl(        
TokenResolver.replaceTokens(config.getString("client.nodes.node(" + i 
+").subscriptionUrl"),properties));
-                       
uddiNode.setSubscriptionListenerUrl(TokenResolver.replaceTokens(config.getString("client.nodes.node("
 + i +").subscriptionListenerUrl"),properties));
-                       uddiNode.setJuddiApiUrl(            
TokenResolver.replaceTokens(config.getString("client.nodes.node(" + i 
+").juddiApiUrl"),properties));
-                       uddiNode.setFactoryInitial(         
TokenResolver.replaceTokens(config.getString("client.nodes.node(" + i 
+").javaNamingFactoryInitial"),properties));
-                       uddiNode.setFactoryURLPkgs(         
TokenResolver.replaceTokens(config.getString("client.nodes.node(" + i 
+").javaNamingFactoryUrlPkgs"),properties));
-                       uddiNode.setFactoryNamingProvider(  
TokenResolver.replaceTokens(config.getString("client.nodes.node(" + i 
+").javaNamingProviderUrl"),properties));
-                       nodes.put(nodeName,uddiNode);
-               }
-               return nodes;
-       }
-       
-       private Set<XRegistration> readXBusinessRegConfig(Configuration config, 
Map<String,UDDIClerk> clerks) 
-       throws ConfigurationException {
-               return readXRegConfig(config, clerks, "business");
-       }
-       
-       private Set<XRegistration> readXServiceBindingRegConfig(Configuration 
config, Map<String,UDDIClerk> clerks) 
-       throws ConfigurationException {
-               return readXRegConfig(config, clerks, "servicebinding");
-       }
-       
-       private Set<XRegistration> readXRegConfig(Configuration config, 
Map<String,UDDIClerk> clerks, String entityType) 
-       throws ConfigurationException {
-               String[] entityKeys = 
config.getStringArray("client.clerks.xregister." + entityType + "[@entityKey]");
-               Set<XRegistration> xRegistrations = new 
HashSet<XRegistration>();
-               if (entityKeys.length > 0) log.info("XRegistration " + 
entityKeys.length + " " + entityType + "Keys");
-               for (int i=0; i<entityKeys.length; i++) {
-                       XRegistration xRegistration = new XRegistration();
-                       
xRegistration.setEntityKey(config.getString("client.clerks.xregister." + 
entityType + "(" + i + ")[@entityKey]"));
-                       
-                       String fromClerkRef = 
config.getString("client.clerks.xregister." + entityType + "(" + i + 
")[@fromClerk]");
-                       if (!clerks.containsKey(fromClerkRef)) throw new 
ConfigurationException("Could not find fromClerk with name=" + fromClerkRef);
-                       UDDIClerk fromClerk = clerks.get(fromClerkRef);
-                       xRegistration.setFromClerk(fromClerk);
-                       
-                       String toClerkRef = 
config.getString("client.clerks.xregister." + entityType + "(" + i + 
")[@toClerk]");
-                       if (!clerks.containsKey(toClerkRef)) throw new 
ConfigurationException("Could not find toClerk with name=" + toClerkRef);
-                       UDDIClerk toClerk = clerks.get(toClerkRef);
-                       xRegistration.setToClerk(toClerk);
-                       log.debug(xRegistration);
-                       
-                       xRegistrations.add(xRegistration);
-               }
-               return xRegistrations;
-       }
-       
-       protected Map<String, UDDINode> getUDDINodes() {
-               return uddiNodes;
-       }
+        public boolean isRegisterOnStartup() {
+                boolean isRegisterOnStartup = false;
+                if (config.containsKey("client.clerks[@registerOnStartup]")) {
+                        isRegisterOnStartup = 
config.getBoolean("client.clerks[@registerOnStartup]");
+                }
+                return isRegisterOnStartup;
+        }
+
+        private Map<String, UDDINode> readNodeConfig(Configuration config, 
Properties properties)
+             throws ConfigurationException {
+                String[] names = 
config.getStringArray("client.nodes.node.name");
+                Map<String, UDDINode> nodes = new HashMap<String, UDDINode>();
+                log.debug("node names=" + names.length);
+                for (int i = 0; i < names.length; i++) {
+                        UDDINode uddiNode = new UDDINode();
+                        String nodeName = 
config.getString("client.nodes.node(" + i + ").name");
+                        String[] propertyKeys = 
config.getStringArray("client.nodes.node(" + i + 
").properties.property[@name]");
+
+                        if (propertyKeys != null && propertyKeys.length > 0) {
+                                if (properties == null) {
+                                        properties = new Properties();
+                                }
+                                for (int p = 0; p < propertyKeys.length; p++) {
+                                        String name = 
config.getString("client.nodes.node(" + i + ").properties.property(" + p + 
")[@name]");
+                                        String value = 
config.getString("client.nodes.node(" + i + ").properties.property(" + p + 
")[@value]");
+                                        log.debug("Property: name=" + name + " 
value=" + value);
+                                        properties.put(name, value);
+                                }
+                                uddiNode.setProperties(properties);
+                        }
+
+                        
uddiNode.setHomeJUDDI(config.getBoolean("client.nodes.node(" + i + 
")[@isHomeJUDDI]", false));
+                        
uddiNode.setName(TokenResolver.replaceTokens(config.getString("client.nodes.node("
 + i + ").name"), properties));
+                        
uddiNode.setClientName(TokenResolver.replaceTokens(config.getString("client[@name]"),
 properties));
+                        
uddiNode.setDescription(TokenResolver.replaceTokens(config.getString("client.nodes.node("
 + i + ").description"), properties));
+                        
uddiNode.setProxyTransport(TokenResolver.replaceTokens(config.getString("client.nodes.node("
 + i + ").proxyTransport"), properties));
+                        
uddiNode.setInquiryUrl(TokenResolver.replaceTokens(config.getString("client.nodes.node("
 + i + ").inquiryUrl"), properties));
+                        
uddiNode.setInquiryRESTUrl(TokenResolver.replaceTokens(config.getString("client.nodes.node("
 + i + ").inquiryRESTUrl"), properties));
+                        
uddiNode.setPublishUrl(TokenResolver.replaceTokens(config.getString("client.nodes.node("
 + i + ").publishUrl"), properties));
+                        
uddiNode.setCustodyTransferUrl(TokenResolver.replaceTokens(config.getString("client.nodes.node("
 + i + ").custodyTransferUrl"), properties));
+                        
uddiNode.setSecurityUrl(TokenResolver.replaceTokens(config.getString("client.nodes.node("
 + i + ").securityUrl"), properties));
+                        
uddiNode.setReplicationUrl(TokenResolver.replaceTokens(config.getString("client.nodes.node("
 + i + ").replicationUrl"), properties));
+                        
uddiNode.setSubscriptionUrl(TokenResolver.replaceTokens(config.getString("client.nodes.node("
 + i + ").subscriptionUrl"), properties));
+                        
uddiNode.setSubscriptionListenerUrl(TokenResolver.replaceTokens(config.getString("client.nodes.node("
 + i + ").subscriptionListenerUrl"), properties));
+                        
uddiNode.setJuddiApiUrl(TokenResolver.replaceTokens(config.getString("client.nodes.node("
 + i + ").juddiApiUrl"), properties));
+                        
uddiNode.setFactoryInitial(TokenResolver.replaceTokens(config.getString("client.nodes.node("
 + i + ").javaNamingFactoryInitial"), properties));
+                        
uddiNode.setFactoryURLPkgs(TokenResolver.replaceTokens(config.getString("client.nodes.node("
 + i + ").javaNamingFactoryUrlPkgs"), properties));
+                        
uddiNode.setFactoryNamingProvider(TokenResolver.replaceTokens(config.getString("client.nodes.node("
 + i + ").javaNamingProviderUrl"), properties));
+                        nodes.put(nodeName, uddiNode);
+                }
+                return nodes;
+        }
+
+        private Set<XRegistration> readXBusinessRegConfig(Configuration 
config, Map<String, UDDIClerk> clerks)
+             throws ConfigurationException {
+                return readXRegConfig(config, clerks, "business");
+        }
+
+        private Set<XRegistration> readXServiceBindingRegConfig(Configuration 
config, Map<String, UDDIClerk> clerks)
+             throws ConfigurationException {
+                return readXRegConfig(config, clerks, "servicebinding");
+        }
+
+        private Set<XRegistration> readXRegConfig(Configuration config, 
Map<String, UDDIClerk> clerks, String entityType)
+             throws ConfigurationException {
+                String[] entityKeys = 
config.getStringArray("client.clerks.xregister." + entityType + "[@entityKey]");
+                Set<XRegistration> xRegistrations = new 
HashSet<XRegistration>();
+                if (entityKeys.length > 0) {
+                        log.info("XRegistration " + entityKeys.length + " " + 
entityType + "Keys");
+                }
+                for (int i = 0; i < entityKeys.length; i++) {
+                        XRegistration xRegistration = new XRegistration();
+                        
xRegistration.setEntityKey(config.getString("client.clerks.xregister." + 
entityType + "(" + i + ")[@entityKey]"));
+
+                        String fromClerkRef = 
config.getString("client.clerks.xregister." + entityType + "(" + i + 
")[@fromClerk]");
+                        if (!clerks.containsKey(fromClerkRef)) {
+                                throw new ConfigurationException("Could not 
find fromClerk with name=" + fromClerkRef);
+                        }
+                        UDDIClerk fromClerk = clerks.get(fromClerkRef);
+                        xRegistration.setFromClerk(fromClerk);
+
+                        String toClerkRef = 
config.getString("client.clerks.xregister." + entityType + "(" + i + 
")[@toClerk]");
+                        if (!clerks.containsKey(toClerkRef)) {
+                                throw new ConfigurationException("Could not 
find toClerk with name=" + toClerkRef);
+                        }
+                        UDDIClerk toClerk = clerks.get(toClerkRef);
+                        xRegistration.setToClerk(toClerk);
+                        log.debug(xRegistration);
+
+                        xRegistrations.add(xRegistration);
+                }
+                return xRegistrations;
+        }
+
+        protected Map<String, UDDINode> getUDDINodes() {
+                return uddiNodes;
+        }
 
         /**
-         * gets the current configuration's node list
-         * only the node name, client name, descriptions and transport class 
are returned, everything else is nulled out for
-         * security reasons. Only a copy of these values are returned
+         * gets the current configuration's node list Only a copy of these
+         * values are returned
+         *
          * @return a list of nodes representing the config file as described
+         * @since 3.3 updated to return all fields
+         * @since 3.2
          */
-        public List<Node> getUDDINodeList(){
+        public List<Node> getUDDINodeList() {
                 List<Node> ret = new ArrayList<Node>();
                 Iterator<UDDINode> it = uddiNodes.values().iterator();
-                while (it.hasNext()){
+                while (it.hasNext()) {
                         UDDINode next = it.next();
                         Node n = new Node();
                         n.setClientName(next.getClientName());
                         n.setDescription(next.getDescription());
                         n.setName(next.getName());
                         n.setProxyTransport(next.getProxyTransport());
+                        n.setCustodyTransferUrl(next.getCustodyTransferUrl());
+                        n.setFactoryInitial(next.getFactoryInitial());
+                        
n.setFactoryNamingProvider(next.getFactoryNamingProvider());
+                        n.setFactoryURLPkgs(next.getFactoryURLPkgs());
+                        n.setInquiryUrl(next.getInquiryUrl());
+                        n.setJuddiApiUrl(next.getJuddiApiUrl());
+                        n.setPublishUrl(next.getPublishUrl());
+                        n.setReplicationUrl(next.getReplicationUrl());
+                        n.setSecurityUrl(next.getSecurityUrl());
+                        
n.setSubscriptionListenerUrl(next.getSubscriptionListenerUrl());
+                        n.setSubscriptionUrl(next.getSubscriptionUrl());
                         ret.add(n);
                 }
                 return ret;
         }
-       
-       public UDDINode getHomeNode() throws ConfigurationException {
-               if (uddiNodes==null) throw new ConfigurationException("The 
juddi client configuration " +
-                               "must contain at least one node element.");
-               if (uddiNodes.values().size()==1) return 
uddiNodes.values().iterator().next();
-               for (UDDINode uddiNode : uddiNodes.values()) {
-                       if (uddiNode.isHomeJUDDI()) {
-                               return uddiNode;
-                       }
-               }
-               throw new ConfigurationException("One of the node elements in 
the client configuration needs to a 'isHomeJUDDI=\"true\"' attribute.");
-       }
-       
-       public UDDINode getUDDINode(String nodeName) throws 
ConfigurationException {
-               if (! uddiNodes.containsKey(nodeName)) {
-                       throw new ConfigurationException("Node '" + nodeName 
-                                       + "' cannot be found in the config '"+  
getClientName() + "'" );
-               }
-               return uddiNodes.get(nodeName);
-       }
-       
-       public Map<String,UDDIClerk> getUDDIClerks() {
-               return uddiClerks;
-       }
-       
-       public Set<XRegistration> getXServiceBindingRegistrations() {
-               return xServiceBindingRegistrations;
-       }
-       
-       public Set<XRegistration> getXBusinessRegistrations() {
-               return xBusinessRegistrations;
-       }
-    
+
+        public UDDINode getHomeNode() throws ConfigurationException {
+                if (uddiNodes == null) {
+                        throw new ConfigurationException("The juddi client 
configuration "
+                             + "must contain at least one node element.");
+                }
+                if (uddiNodes.values().size() == 1) {
+                        return uddiNodes.values().iterator().next();
+                }
+                UDDINode ret=null;
+                for (UDDINode uddiNode : uddiNodes.values()) {
+                        if (uddiNode.isHomeJUDDI()) {
+                                if (ret!=null){
+                                        throw new ConfigurationException("Only 
one of the node elements in the client configuration needs to a 
'isHomeJUDDI=\"true\"' attribute.");
+                                }
+                                ret= uddiNode;
+                        }
+                }
+                throw new ConfigurationException("One of the node elements in 
the client configuration needs to a 'isHomeJUDDI=\"true\"' attribute.");
+        }
+
+        public UDDINode getUDDINode(String nodeName) throws 
ConfigurationException {
+                if (!uddiNodes.containsKey(nodeName)) {
+                        throw new ConfigurationException("Node '" + nodeName
+                             + "' cannot be found in the config '" + 
getClientName() + "'");
+                }
+                return uddiNodes.get(nodeName);
+        }
+
+        public Map<String, UDDIClerk> getUDDIClerks() {
+                return uddiClerks;
+        }
+
+        public Set<XRegistration> getXServiceBindingRegistrations() {
+                return xServiceBindingRegistrations;
+        }
+
+        public Set<XRegistration> getXBusinessRegistrations() {
+                return xBusinessRegistrations;
+        }
+
         public Configuration getConfiguration() {
-            return config;
+                return config;
         }
 
         public String getClientName() {
-            return clientName;
+                return clientName;
         }
-        
+
         @Deprecated
         public String getClientCallbackUrl() {
-               return clientCallbackUrl;
+                return clientCallbackUrl;
         }
 
-        
         public String getConfigurationFile() {
-            return configurationFile;
+                return configurationFile;
         }
-        
+
         /**
          * Used for WADL/WSDL to WSDL
+         *
          * @return true/false
          */
-        public boolean isX_To_Wsdl_Ignore_SSL_Errors()
-        {
-            return this.config.getBoolean("client.XtoWsdl.IgnoreSSLErrors", 
false);
+        public boolean isX_To_Wsdl_Ignore_SSL_Errors() {
+                return 
this.config.getBoolean("client.XtoWsdl.IgnoreSSLErrors", false);
         }
 
-        
-        
         /**
-         * Fetches all digital signature related properties for the digital 
signature utility.
-         * warning, this will decrypt all passwords
+         * Fetches all digital signature related properties for the digital
+         * signature utility. warning, this will decrypt all passwords
+         *
          * @return a properties object
-         * @throws Exception 
+         * @throws Exception
          * @see DigSigUtil
          * @see Properties
          */
-    public Properties getDigitalSignatureConfiguration() throws Exception {
-        Properties p = new Properties();
-        p.setProperty(DigSigUtil.CANONICALIZATIONMETHOD, 
this.config.getString("client.signature.canonicalizationMethod", 
CanonicalizationMethod.EXCLUSIVE));
-        p.setProperty(DigSigUtil.CHECK_TIMESTAMPS, ((Boolean) 
(this.config.getBoolean("client.signature.checkTimestamps", true))).toString());
-        p.setProperty(DigSigUtil.CHECK_REVOCATION_STATUS_CRL, ((Boolean) 
(this.config.getBoolean("client.signature.checkRevocationCRL", 
true))).toString());
-        p.setProperty(DigSigUtil.CHECK_REVOCATION_STATUS_OCSP, ((Boolean) 
(this.config.getBoolean("client.signature.checkRevocationOCSP", 
true))).toString());
-        p.setProperty(DigSigUtil.CHECK_TRUST_CHAIN, ((Boolean) 
(this.config.getBoolean("client.signature.checkTrust", true))).toString());
-
-        p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_FILE, 
this.config.getString("client.signature.signingKeyStorePath",""));
-        p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_FILETYPE, 
this.config.getString("client.signature.signingKeyStoreType",""));
-    
-        if 
(this.config.getBoolean("client.signature.signingKeyPassword[@isPasswordEncrypted]",
 false)) {
-            String enc = 
this.config.getString("client.signature.signingKeyPassword","");
-            String prov = 
this.config.getString("client.signature.signingKeyPassword[@cryptoProvider]","");
-            p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_KEY_PASSWORD, 
CryptorFactory.getCryptor(prov).decrypt(enc));
-        } else {
-            log.warn("Hey, you should consider encrypting your key password!");
-            p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_KEY_PASSWORD, 
this.config.getString("client.signature.signingKeyPassword",""));
-        }
-        if 
(this.config.getBoolean("client.signature.signingKeyStoreFilePassword[@isPasswordEncrypted]",
 false)) {
-            String enc = 
this.config.getString("client.signature.signingKeyStoreFilePassword","");
-            String prov = 
this.config.getString("client.signature.signingKeyStoreFilePassword[@cryptoProvider]","");
-            p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_FILE_PASSWORD, 
CryptorFactory.getCryptor(prov).decrypt(enc));
-        } else {
-            log.warn("Hey, you should consider encrypting your keystore 
password!");
-            p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_FILE_PASSWORD, 
this.config.getString("client.signature.signingKeyStoreFilePassword",""));
-        }
-
-        p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_KEY_ALIAS, 
this.config.getString("client.signature.signingKeyAlias",""));
-        p.setProperty(DigSigUtil.SIGNATURE_METHOD, 
this.config.getString("client.signature.signatureMethod", 
"http://www.w3.org/2000/09/xmldsig#rsa-sha1";));
-        p.setProperty(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_SUBJECTDN, 
this.config.getString("client.signature.keyInfoInclusionSubjectDN","true"));
-        p.setProperty(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_BASE64, 
this.config.getString("client.signature.keyInfoInclusionBase64PublicKey","true"));
-        p.setProperty(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_SERIAL, 
this.config.getString("client.signature.keyInfoInclusionSerial","true"));
-        
-        p.setProperty(DigSigUtil.SIGNATURE_OPTION_DIGEST_METHOD, 
this.config.getString("client.signature.digestMethod", 
"http://www.w3.org/2000/09/xmldsig#sha1";));
-        
-        p.setProperty(DigSigUtil.TRUSTSTORE_FILE, 
this.config.getString("client.signature.trustStorePath",""));
-        p.setProperty(DigSigUtil.TRUSTSTORE_FILETYPE, 
this.config.getString("client.signature.trustStoreType",""));
-      
-
-        if 
(this.config.getBoolean("client.signature.trustStorePassword[@isPasswordEncrypted]",
 false)) {
-            String enc = 
this.config.getString("client.signature.trustStorePassword","");
-            String prov = 
this.config.getString("client.signature.trustStorePassword[@cryptoProvider]","");
-            p.setProperty(DigSigUtil.TRUSTSTORE_FILE_PASSWORD, 
CryptorFactory.getCryptor(prov).decrypt(enc));
-        } else {
-            log.warn("Hey, you should consider encrypting your trust store 
password!");
-            p.setProperty(DigSigUtil.TRUSTSTORE_FILE_PASSWORD, 
this.config.getString("client.signature.trustStorePassword",""));
-        }
-
-        return p;
-    }
-}
\ No newline at end of file
+        public Properties getDigitalSignatureConfiguration() throws Exception {
+                Properties p = new Properties();
+                p.setProperty(DigSigUtil.CANONICALIZATIONMETHOD, 
this.config.getString("client.signature.canonicalizationMethod", 
CanonicalizationMethod.EXCLUSIVE));
+                p.setProperty(DigSigUtil.CHECK_TIMESTAMPS, ((Boolean) 
(this.config.getBoolean("client.signature.checkTimestamps", true))).toString());
+                p.setProperty(DigSigUtil.CHECK_REVOCATION_STATUS_CRL, 
((Boolean) (this.config.getBoolean("client.signature.checkRevocationCRL", 
true))).toString());
+                p.setProperty(DigSigUtil.CHECK_REVOCATION_STATUS_OCSP, 
((Boolean) (this.config.getBoolean("client.signature.checkRevocationOCSP", 
true))).toString());
+                p.setProperty(DigSigUtil.CHECK_TRUST_CHAIN, ((Boolean) 
(this.config.getBoolean("client.signature.checkTrust", true))).toString());
+
+                p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_FILE, 
this.config.getString("client.signature.signingKeyStorePath", ""));
+                p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_FILETYPE, 
this.config.getString("client.signature.signingKeyStoreType", ""));
+
+                if 
(this.config.getBoolean("client.signature.signingKeyPassword[@isPasswordEncrypted]",
 false)) {
+                        String enc = 
this.config.getString("client.signature.signingKeyPassword", "");
+                        String prov = 
this.config.getString("client.signature.signingKeyPassword[@cryptoProvider]", 
"");
+                        
p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_KEY_PASSWORD, 
CryptorFactory.getCryptor(prov).decrypt(enc));
+                        
p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_KEY_PASSWORD_WAS_ENC, "true");
+                        
p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_KEY_PASSWORD_PROVIDER, prov);
+                        
p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_KEY_PASSWORD_CIPHER, enc);
+                } else {
+                        log.warn("Hey, you should consider encrypting your key 
password!");
+                        
p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_KEY_PASSWORD, 
this.config.getString("client.signature.signingKeyPassword", ""));
+                        
p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_KEY_PASSWORD_WAS_ENC, "false");
+                }
+                if 
(this.config.getBoolean("client.signature.signingKeyStoreFilePassword[@isPasswordEncrypted]",
 false)) {
+                        String enc = 
this.config.getString("client.signature.signingKeyStoreFilePassword", "");
+                        String prov = 
this.config.getString("client.signature.signingKeyStoreFilePassword[@cryptoProvider]",
 "");
+                        
p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_FILE_PASSWORD, 
CryptorFactory.getCryptor(prov).decrypt(enc));
+                        
p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_FILE_PASSWORD_PROVIDER, (prov));
+                        
p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_FILE_PASSWORD_CIPHER, (enc));
+                } else {
+                        log.warn("Hey, you should consider encrypting your 
keystore password!");
+                        
p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_FILE_PASSWORD, 
this.config.getString("client.signature.signingKeyStoreFilePassword", ""));
+                }
+
+                p.setProperty(DigSigUtil.SIGNATURE_KEYSTORE_KEY_ALIAS, 
this.config.getString("client.signature.signingKeyAlias", ""));
+                p.setProperty(DigSigUtil.SIGNATURE_METHOD, 
this.config.getString("client.signature.signatureMethod", 
"http://www.w3.org/2000/09/xmldsig#rsa-sha1";));
+                
p.setProperty(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_SUBJECTDN, 
this.config.getString("client.signature.keyInfoInclusionSubjectDN", "true"));
+                
p.setProperty(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_BASE64, 
this.config.getString("client.signature.keyInfoInclusionBase64PublicKey", 
"true"));
+                
p.setProperty(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_SERIAL, 
this.config.getString("client.signature.keyInfoInclusionSerial", "true"));
+
+                p.setProperty(DigSigUtil.SIGNATURE_OPTION_DIGEST_METHOD, 
this.config.getString("client.signature.digestMethod", 
"http://www.w3.org/2000/09/xmldsig#sha1";));
+
+                p.setProperty(DigSigUtil.TRUSTSTORE_FILE, 
this.config.getString("client.signature.trustStorePath", ""));
+                p.setProperty(DigSigUtil.TRUSTSTORE_FILETYPE, 
this.config.getString("client.signature.trustStoreType", ""));
+
+                if 
(this.config.getBoolean("client.signature.trustStorePassword[@isPasswordEncrypted]",
 false)) {
+                        String enc = 
this.config.getString("client.signature.trustStorePassword", "");
+                        String prov = 
this.config.getString("client.signature.trustStorePassword[@cryptoProvider]", 
"");
+                        p.setProperty(DigSigUtil.TRUSTSTORE_FILE_PASSWORD, 
CryptorFactory.getCryptor(prov).decrypt(enc));
+                        
p.setProperty(DigSigUtil.TRUSTSTORE_FILE_PASSWORD_PROVIDER, (prov));
+                        
p.setProperty(DigSigUtil.TRUSTSTORE_FILE_PASSWORD_CIPHER, (enc));
+                } else {
+                        log.warn("Hey, you should consider encrypting your 
trust store password!");
+                        p.setProperty(DigSigUtil.TRUSTSTORE_FILE_PASSWORD, 
this.config.getString("client.signature.trustStorePassword", ""));
+                }
+
+                return p;
+        }
+
+        /**
+         * adds a new node to the client configuration section. Don't forget to
+         * call save to persist the changes
+         *
+         * @param n
+         * @since 3.3
+         */
+        public void addUDDINode(UDDINode node) throws ConfigurationException {
+                if (node == null) {
+                        throw new ConfigurationException("The new node is 
null");
+                }
+                if (this.uddiNodes.containsKey(node.getName())) {
+                        throw new ConfigurationException("Node '" + 
node.getName() + "' already existings in the collection!");
+                }
+                if (node.getClientName() == null || 
"".equalsIgnoreCase(node.getClientName())) {
+                        log.info("ClientName wasn't specified, I'll configure 
it with the defaults");
+                        node.setClientName(this.clientName);
+                }
+                this.uddiNodes.put(node.getClientName(), node);
+                
+
+        }
+
+        /**
+         * removes the named node from the client configuration section. don't
+         * forget to save to persist the changes
+         *
+         * @param name expecting the Node name, not the "clientName"
+         * @throws ConfigurationException
+         */
+        public void removeUDDINode(String name) throws ConfigurationException {
+                if (this.uddiNodes.containsKey(name)) {
+                        this.uddiNodes.remove(name);
+                }
+
+                //TODO to configuration xml structure
+        }
+
+        /**
+         * performs some basic validation tests on the config setting that was
+         * read from file
+         */
+        private void validateConfig() throws ConfigurationException {
+                if (config == null) {
+                        throw new ConfigurationException("config is null!");
+                }
+                if (uddiNodes == null) {
+                        throw new ConfigurationException("nodes is null!");
+                }
+                if (uddiClerks == null) {
+                        throw new ConfigurationException("clerks is null!");
+                }
+                Iterator<Map.Entry<String, UDDIClerk>> it = 
uddiClerks.entrySet().iterator();
+                while (it.hasNext()) {
+                        Map.Entry<String, UDDIClerk> next = it.next();
+                        if (next.getValue().uddiNode == null) {
+                                throw new ConfigurationException("clerk " + 
next.getValue().name + " references a node that doesn't exist!");
+                        }
+                }
+        }
+
+        private void addCurrentNodeConfig(Configuration cc) {
+
+                cc.addProperty("client(0)[@name]",clientName);
+                Iterator<Map.Entry<String, UDDINode>> iterator = 
uddiNodes.entrySet().iterator();
+                int i = 0;
+                while (iterator.hasNext()) {
+                        log.debug("node names=" + uddiNodes.size());
+
+                        UDDINode uddiNode = iterator.next().getValue();
+                        
+                        Properties properties = uddiNode.getProperties();
+
+                        if (properties == null) {
+                                properties = new Properties();
+                        }
+                        Iterator<Map.Entry<Object, Object>> iterator1 = 
properties.entrySet().iterator();
+                        int x = 0;
+                        while (iterator1.hasNext()) {
+                                Map.Entry<Object, Object> next = 
iterator1.next();
+                                cc.addProperty("client(0).nodes.node(" + i + 
").properties.property(" + x + ")[@name]", next.getKey());
+                                cc.addProperty("client(0).nodes.node(" + i + 
").properties.property(" + x + ")[@value]", next.getValue());
+
+                                log.debug("Property: name=" + next.getKey() + 
" value=" + next.getValue());
+
+                                x++;
+                        }
+
+                        
+                        cc.addProperty("client(0).nodes.node(" + i + 
")[@isHomeJUDDI]", uddiNode.isHomeJUDDI());
+                        cc.addProperty("client(0).nodes.node(" + i + ").name", 
uddiNode.getName());
+                        cc.addProperty("client(0).nodes.node(" + i + 
").description", uddiNode.getDescription());
+                        cc.addProperty("client(0).nodes.node(" + i + 
").proxyTransport", uddiNode.getProxyTransport());
+                        cc.addProperty("client(0).nodes.node(" + i + 
").inquiryUrl", uddiNode.getInquiryUrl());
+                        cc.addProperty("client(0).nodes.node(" + i + 
").inquiryRESTUrl", uddiNode.getInquiry_REST_Url());
+                        cc.addProperty("client(0).nodes.node(" + i + 
").publishUrl", uddiNode.getPublishUrl());
+                        cc.addProperty("client(0).nodes.node(" + i + 
").custodyTransferUrl", uddiNode.getCustodyTransferUrl());
+                        cc.addProperty("client(0).nodes.node(" + i + 
").securityUrl", uddiNode.getSecurityUrl());
+                        cc.addProperty("client(0).nodes.node(" + i + 
").replicationUrl", uddiNode.getReplicationUrl());
+                        cc.addProperty("client(0).nodes.node(" + i + 
").subscriptionUrl", uddiNode.getSubscriptionUrl());
+                        cc.addProperty("client(0).nodes.node(" + i + 
").juddiApiUrl", uddiNode.getJuddiApiUrl());
+                        cc.addProperty("client(0).nodes.node(" + i + 
").subscriptionListenerUrl", uddiNode.getSubscriptionListenerUrl());
+                        cc.addProperty("client(0).nodes.node(" + i + 
").javaNamingFactoryInitial", uddiNode.getFactoryInitial());
+                        cc.addProperty("client(0).nodes.node(" + i + 
").javaNamingFactoryUrlPkgs", uddiNode.getFactoryURLPkgs());
+                        cc.addProperty("client(0).nodes.node(" + i + 
").javaNamingProviderUrl", uddiNode.getFactoryNamingProvider());
+
+                        i++;
+                }
+
+        }
+
+        private void addCurrentClerks(Configuration cc) {
+
+                Iterator<Map.Entry<String, UDDIClerk>> iterator = 
uddiClerks.entrySet().iterator();
+                clientName = config.getString("client[@name]");
+                clientCallbackUrl = 
config.getString("client(0)[@callbackUrl]");
+
+                cc.addProperty("client(0).clerks[@registerOnStartup", 
isRegisterOnStartup()) ;
+                int i = 0;
+                while (iterator.hasNext()) {
+
+                        UDDIClerk uddiClerk = iterator.next().getValue();
+                        cc.addProperty("client(0).clerks.clerk(" + i + 
")[@name]", uddiClerk.getName());
+                        //registerOnStartup
+                        cc.addProperty("client(0).clerks.clerk(" + i + 
")[@node]", uddiClerk.getUDDINode().getName());
+
+                        cc.addProperty("client(0).clerks.clerk(" + i + 
")[@publisher]", uddiClerk.getPublisher());
+                        cc.addProperty("client(0).clerks.clerk(" + i + 
")[@password]", uddiClerk.getRawPassword());
+
+                        cc.addProperty("client(0).clerks.clerk(" + i + 
")[@isPasswordEncrypted]", uddiClerk.getIsPasswordEncrypted());
+
+                        cc.addProperty("client(0).clerks.clerk(" + i + 
")[@cryptoProvider]", uddiClerk.getCryptoProvider());
+
+                        String[] classes = uddiClerk.getClassWithAnnotations();
+                        if (classes != null) {
+                                for (int x = 0; x < classes.length; x++) {
+                                        
cc.addProperty("client(0).clerks.clerk(" + i + ").class(" + x + ")", 
classes[x]);
+                                }
+                        }
+
+                        UDDIClerk.WSDL[] wsdls = uddiClerk.getWsdls();
+                        if (wsdls != null) {
+                                for (int w = 0; w < wsdls.length; w++) {
+                                        
cc.addProperty("client(0).clerks.clerk(" + i + ").wsdl(" + w + ")", 
wsdls[w].getFileName());
+                                        
cc.addProperty("client(0).clerks.clerk(" + i + ").wsdl(" + w + 
")[@businessKey]", wsdls[w].getBusinessKey());
+                                        
cc.addProperty("client(0).clerks.clerk(" + i + ").wsdl(" + w + ")[@keyDomain]", 
wsdls[w].getKeyDomain());
+                                }
+                        }
+                        i++;
+                }
+                
+                if (xBusinessRegistrations!=null){
+                        Iterator<XRegistration> iterator1 = 
xBusinessRegistrations.iterator();
+                        int x=0;
+                        while (iterator1.hasNext()){
+                                XRegistration next = iterator1.next();
+                                
cc.addProperty("client(0).clerks.business("+x+")[@fromClerk]" 
,next.getFromClerk().name );
+                                
cc.addProperty("client(0).clerks.business("+x+")[@toClerk]" 
,next.getToClerk().name );
+                                
cc.addProperty("client(0).clerks.business("+x+")[@entityKey]" 
,next.getEntityKey() );
+                                x++;
+                        }
+                }
+                 if (xServiceBindingRegistrations!=null){
+                        Iterator<XRegistration> iterator1 = 
xServiceBindingRegistrations.iterator();
+                        int x=0;
+                        while (iterator1.hasNext()){
+                                XRegistration next = iterator1.next();
+                                
cc.addProperty("client(0).clerks.servicebinding("+x+")[@fromClerk]" 
,next.getFromClerk().name );
+                                
cc.addProperty("client(0).clerks.servicebinding("+x+")[@toClerk]" 
,next.getToClerk().name );
+                                
cc.addProperty("client(0).clerks.servicebinding("+x+")[@entityKey]" 
,next.getEntityKey() );
+                                x++;
+                        }
+                }
+        }
+
+        private void addSubscriptionCallback(Configuration cc) {
+                if 
(this.config.containsKey(SubscriptionCallbackListener.PROPERTY_AUTOREG_BT)) {
+                        
cc.addProperty(SubscriptionCallbackListener.PROPERTY_AUTOREG_BT, 
this.config.getProperty(SubscriptionCallbackListener.PROPERTY_AUTOREG_BT));
+                }
+                if 
(this.config.containsKey(SubscriptionCallbackListener.PROPERTY_AUTOREG_SERVICE_KEY))
 {
+                        
cc.addProperty(SubscriptionCallbackListener.PROPERTY_AUTOREG_SERVICE_KEY, 
this.config.getProperty(SubscriptionCallbackListener.PROPERTY_AUTOREG_SERVICE_KEY));
+                }
+                if 
(this.config.containsKey(SubscriptionCallbackListener.PROPERTY_KEYDOMAIN)) {
+                        
cc.addProperty(SubscriptionCallbackListener.PROPERTY_KEYDOMAIN, 
this.config.getProperty(SubscriptionCallbackListener.PROPERTY_KEYDOMAIN));
+                }
+                if 
(this.config.containsKey(SubscriptionCallbackListener.PROPERTY_LISTENURL)) {
+                        
cc.addProperty(SubscriptionCallbackListener.PROPERTY_LISTENURL, 
this.config.getProperty(SubscriptionCallbackListener.PROPERTY_LISTENURL));
+                }
+                if 
(this.config.containsKey(SubscriptionCallbackListener.PROPERTY_NODE)) {
+                        
cc.addProperty(SubscriptionCallbackListener.PROPERTY_NODE, 
this.config.getProperty(SubscriptionCallbackListener.PROPERTY_NODE));
+                }
+                if 
(this.config.containsKey(SubscriptionCallbackListener.PROPERTY_SIGNATURE_BEHAVIOR))
 {
+                        
cc.addProperty(SubscriptionCallbackListener.PROPERTY_SIGNATURE_BEHAVIOR, 
this.config.getProperty(SubscriptionCallbackListener.PROPERTY_SIGNATURE_BEHAVIOR));
+                }
+        }
+
+        private void addDigitalSubscription(Configuration cc) throws Exception 
{
+                Properties p = this.getDigitalSignatureConfiguration();
+                Iterator<Map.Entry<Object, Object>> it = 
p.entrySet().iterator();
+                while (it.hasNext()) {
+                        Map.Entry<Object, Object> next = it.next();
+                        String key = (String) next.getKey();
+                        Object val = next.getValue();
+                        if (val==null)
+                                continue;
+                        if 
(key.equalsIgnoreCase(DigSigUtil.CANONICALIZATIONMETHOD)) {
+                                
cc.addProperty("client(0).signature.canonicalizationMethod", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.CHECK_TIMESTAMPS)) {
+                                
cc.addProperty("client(0).signature.checkTimestamps", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.CHECK_REVOCATION_STATUS_CRL)) {
+                                
cc.addProperty("client(0).signature.checkRevocationCRL", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.CHECK_REVOCATION_STATUS_OCSP)) {
+                                
cc.addProperty("client(0).signature.checkRevocationOCSP", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.CHECK_TRUST_CHAIN)) {
+                                
cc.addProperty("client(0).signature.checkTrust", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.SIGNATURE_KEYSTORE_FILE)) {
+                                
cc.addProperty("client(0).signature.signingKeyStorePath", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.SIGNATURE_KEYSTORE_FILETYPE)) {
+                                
cc.addProperty("client(0).signature.signingKeyStoreType", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.SIGNATURE_KEYSTORE_KEY_PASSWORD)) {
+                                
cc.addProperty("client(0).signature.signingKeyPassword", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.SIGNATURE_KEYSTORE_KEY_PASSWORD_WAS_ENC)) {
+                                
cc.addProperty("client(0).signature.signingKeyPassword[@isPasswordEncrypted]", 
val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.SIGNATURE_KEYSTORE_KEY_PASSWORD_PROVIDER)) {
+                                
cc.addProperty("client(0).signature.signingKeyPassword[@cryptoProvider]", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.SIGNATURE_KEYSTORE_KEY_PASSWORD_CIPHER)) {
+                                
cc.addProperty("client(0).signature.signingKeyPassword", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.SIGNATURE_KEYSTORE_KEY_ALIAS)) {
+                                
cc.addProperty("client(0).signature.signingKeyAlias", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.SIGNATURE_METHOD)) {
+                                
cc.addProperty("client(0).signature.signatureMethod", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_SUBJECTDN)) {
+                                
cc.addProperty("client(0).signature.keyInfoInclusionSubjectDN", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_BASE64)) {
+                                
cc.addProperty("client(0).signature.keyInfoInclusionBase64PublicKey", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.SIGNATURE_OPTION_CERT_INCLUSION_SERIAL)) {
+                                
cc.addProperty("client(0).signature.keyInfoInclusionSerial", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.SIGNATURE_OPTION_DIGEST_METHOD)) {
+                                
cc.addProperty("client(0).signature.digestMethod", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.TRUSTSTORE_FILE)) {
+                                
cc.addProperty("client(0).signature.trustStorePath", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.TRUSTSTORE_FILETYPE)) {
+                                
cc.addProperty("client(0).signature.trustStoreType", val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.SIGNATURE_KEYSTORE_FILE_PASSWORD_WASENC)) {
+                                
cc.addProperty("client(0).signature.signingKeyStoreFilePassword[@isPasswordEncrypted]",
 val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.SIGNATURE_KEYSTORE_FILE_PASSWORD_PROVIDER)) {
+                                
cc.addProperty("client(0).signature.signingKeyStoreFilePassword[@cryptoProvider]",
 val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.TRUSTSTORE_FILE_PASSWORD_WASENC)) {
+                                
cc.addProperty("client(0).signature.trustStorePassword[@isPasswordEncrypted]", 
val);
+                        } else if 
(key.equalsIgnoreCase(DigSigUtil.TRUSTSTORE_FILE_PASSWORD_PROVIDER)) {
+                                
cc.addProperty("client(0).signature.trustStorePassword[@cryptoProvider]", val);
+                        }
+
+                }
+
+                
+                if 
(p.getProperty(DigSigUtil.SIGNATURE_KEYSTORE_FILE_PASSWORD_WASENC, 
"false").equalsIgnoreCase("true")) {
+                        
cc.addProperty("client(0).signature.signingKeyStoreFilePassword", 
p.getProperty(DigSigUtil.SIGNATURE_KEYSTORE_FILE_PASSWORD_CIPHER));
+                } else {
+                        
cc.addProperty("client(0).signature.signingKeyStoreFilePassword", 
p.getProperty(DigSigUtil.SIGNATURE_KEYSTORE_FILE_PASSWORD));
+                }
+
+                if (p.getProperty(DigSigUtil.TRUSTSTORE_FILE_PASSWORD_WASENC, 
"false").equalsIgnoreCase("true")) {
+                        
cc.addProperty("client(0).signature.trustStorePassword", 
p.getProperty(DigSigUtil.TRUSTSTORE_FILE_PASSWORD_CIPHER));
+                } else {
+                        
cc.addProperty("client(0).signature.trustStorePassword", 
p.getProperty(DigSigUtil.TRUSTSTORE_FILE_PASSWORD));
+                }
+
+                if 
(p.getProperty(DigSigUtil.SIGNATURE_KEYSTORE_KEY_PASSWORD_WAS_ENC, 
"false").equalsIgnoreCase("true")) {
+                        
cc.addProperty("client(0).signature.signingKeyPassword", 
p.getProperty(DigSigUtil.SIGNATURE_KEYSTORE_KEY_PASSWORD_CIPHER));
+                } else {
+                        
cc.addProperty("client(0).signature.signingKeyPassword", 
p.getProperty(DigSigUtil.SIGNATURE_KEYSTORE_KEY_PASSWORD));
+                }
+
+        }
+
+        private void addXRegistration(Configuration cc) {
+
+                cc.addProperty("client.XtoWsdl.IgnoreSSLErrors",               
  isX_To_Wsdl_Ignore_SSL_Errors());
+        }
+
+}

http://git-wip-us.apache.org/repos/asf/juddi/blob/1a894c89/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClient.java
----------------------------------------------------------------------
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 eaac696..0c9e7d7 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
@@ -22,10 +22,10 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
-
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.api_v3.Node;
 import org.apache.juddi.v3.annotations.AnnotationProcessor;
 import org.apache.juddi.v3.client.ClassUtil;
 import org.apache.juddi.v3.client.Release;

http://git-wip-us.apache.org/repos/asf/juddi/blob/1a894c89/juddi-client/src/main/java/org/apache/juddi/v3/client/cryptor/DigSigUtil.java
----------------------------------------------------------------------
diff --git 
a/juddi-client/src/main/java/org/apache/juddi/v3/client/cryptor/DigSigUtil.java 
b/juddi-client/src/main/java/org/apache/juddi/v3/client/cryptor/DigSigUtil.java
index 263a80a..d58bcd7 100644
--- 
a/juddi-client/src/main/java/org/apache/juddi/v3/client/cryptor/DigSigUtil.java
+++ 
b/juddi-client/src/main/java/org/apache/juddi/v3/client/cryptor/DigSigUtil.java
@@ -88,6 +88,16 @@ import sun.security.provider.certpath.OCSP.RevocationStatus;
  * @author <a href="mailto:[email protected]";>Alex O'Ree </a>
  */
 public class DigSigUtil {
+        public final static String 
SIGNATURE_KEYSTORE_KEY_PASSWORD_PROVIDER="signatureKeystoreKeyPassENCProvider";
+        public final static String 
SIGNATURE_KEYSTORE_KEY_PASSWORD_WAS_ENC="signatureKeystoreKeyPassENC";
+        public final static String 
SIGNATURE_KEYSTORE_KEY_PASSWORD_CIPHER="signatureKeyStoreCipherPass";
+        
+        public final static String 
SIGNATURE_KEYSTORE_FILE_PASSWORD_WASENC="signatureKeystoreFilePassENC";
+        public final static String 
SIGNATURE_KEYSTORE_FILE_PASSWORD_PROVIDER="signatureKeystoreFileENCProvider";
+        public final static String 
TRUSTSTORE_FILE_PASSWORD_WASENC="truststoreFilePassENC";
+        public final static String 
TRUSTSTORE_FILE_PASSWORD_PROVIDER="truststoreFilePassENCProvider";
+        public final static String 
SIGNATURE_KEYSTORE_FILE_PASSWORD_CIPHER="signatureKeystoreFileKeyPass";
+        public final static String 
TRUSTSTORE_FILE_PASSWORD_CIPHER="truststoreFilePass";
 
         /**
          * Expects a properties object containing the desired configuration
@@ -116,6 +126,9 @@ public class DigSigUtil {
                 map.clear();
         }
         private Properties map = new Properties();
+        
+        
+        
         /**
          * This is the location of the keystore
          *

http://git-wip-us.apache.org/repos/asf/juddi/blob/1a894c89/juddi-client/src/test/java/org/apache/juddi/v3/client/config/MisconfigurationTests.java
----------------------------------------------------------------------
diff --git 
a/juddi-client/src/test/java/org/apache/juddi/v3/client/config/MisconfigurationTests.java
 
b/juddi-client/src/test/java/org/apache/juddi/v3/client/config/MisconfigurationTests.java
deleted file mode 100644
index 5b41f3c..0000000
--- 
a/juddi-client/src/test/java/org/apache/juddi/v3/client/config/MisconfigurationTests.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright 2014 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.config;
-
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.juddi.v3.client.transport.Transport;
-import org.junit.Assert;
-import org.junit.Test;
-
-/**
- *
- * @author Alex O'Ree
- */
-public class MisconfigurationTests {
-
-        @Test(expected = ConfigurationException.class)
-        public void TestMissingClerk() throws ConfigurationException{
-                UDDIClient client = new UDDIClient("META-INF/configtests.xml");
-                UDDIClerk clerk = client.getClerk("missingClerk");
-                Assert.fail("this should have thrown an exception");
-        }
-        
-        @Test(expected = ConfigurationException.class)
-        public void TestMissingTransportClass() throws ConfigurationException{
-                UDDIClient client = new UDDIClient("META-INF/configtests.xml");
-                UDDIClerk clerk = client.getClerk("missingTransport");
-                Transport transport = client.getTransport("missingTransport");
-                Assert.fail("this should have thrown an exception");
-        }
-}

http://git-wip-us.apache.org/repos/asf/juddi/blob/1a894c89/juddi-client/src/test/resources/META-INF/configtests.xml
----------------------------------------------------------------------
diff --git a/juddi-client/src/test/resources/META-INF/configtests.xml 
b/juddi-client/src/test/resources/META-INF/configtests.xml
index 6e7dd3a..de58a62 100644
--- a/juddi-client/src/test/resources/META-INF/configtests.xml
+++ b/juddi-client/src/test/resources/META-INF/configtests.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
-<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd">
+<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema";>
         <reloadDelay>5000</reloadDelay>
         <client name="test-client">
                 <nodes>

http://git-wip-us.apache.org/repos/asf/juddi/blob/1a894c89/juddi-client/src/test/resources/META-INF/subscription.xml
----------------------------------------------------------------------
diff --git a/juddi-client/src/test/resources/META-INF/subscription.xml 
b/juddi-client/src/test/resources/META-INF/subscription.xml
index 6be8c74..4e8c356 100644
--- a/juddi-client/src/test/resources/META-INF/subscription.xml
+++ b/juddi-client/src/test/resources/META-INF/subscription.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
-<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd">
+<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema";>
     <reloadDelay>5000</reloadDelay>
     <client name="test-client">
                <nodes>

http://git-wip-us.apache.org/repos/asf/juddi/blob/1a894c89/juddi-client/src/test/resources/META-INF/uddi-subcallback1.xml
----------------------------------------------------------------------
diff --git a/juddi-client/src/test/resources/META-INF/uddi-subcallback1.xml 
b/juddi-client/src/test/resources/META-INF/uddi-subcallback1.xml
index 2c72bff..d4d09c5 100644
--- a/juddi-client/src/test/resources/META-INF/uddi-subcallback1.xml
+++ b/juddi-client/src/test/resources/META-INF/uddi-subcallback1.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
-<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd">
+<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema";>
     <reloadDelay>5000</reloadDelay>
     <client name="test-client">
         <nodes>

http://git-wip-us.apache.org/repos/asf/juddi/blob/1a894c89/juddi-client/src/test/resources/META-INF/uddi-subcallback2.xml
----------------------------------------------------------------------
diff --git a/juddi-client/src/test/resources/META-INF/uddi-subcallback2.xml 
b/juddi-client/src/test/resources/META-INF/uddi-subcallback2.xml
index 7664eb5..83709d7 100644
--- a/juddi-client/src/test/resources/META-INF/uddi-subcallback2.xml
+++ b/juddi-client/src/test/resources/META-INF/uddi-subcallback2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
-<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd">
+<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema";>
     <reloadDelay>5000</reloadDelay>
     <client name="test-client">
         <nodes>

http://git-wip-us.apache.org/repos/asf/juddi/blob/1a894c89/juddi-client/src/test/resources/META-INF/uddi-subcallback3.xml
----------------------------------------------------------------------
diff --git a/juddi-client/src/test/resources/META-INF/uddi-subcallback3.xml 
b/juddi-client/src/test/resources/META-INF/uddi-subcallback3.xml
index a6de1ec..0f8126d 100644
--- a/juddi-client/src/test/resources/META-INF/uddi-subcallback3.xml
+++ b/juddi-client/src/test/resources/META-INF/uddi-subcallback3.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
-<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd">
+<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema";>
     <reloadDelay>5000</reloadDelay>
     <client name="test-client">
         <nodes>

http://git-wip-us.apache.org/repos/asf/juddi/blob/1a894c89/juddi-client/src/test/resources/META-INF/uddi.xml
----------------------------------------------------------------------
diff --git a/juddi-client/src/test/resources/META-INF/uddi.xml 
b/juddi-client/src/test/resources/META-INF/uddi.xml
index b183187..f038891 100644
--- a/juddi-client/src/test/resources/META-INF/uddi.xml
+++ b/juddi-client/src/test/resources/META-INF/uddi.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
-<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd">
+<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema";>
     <reloadDelay>5000</reloadDelay>
     <client name="test-client">
         <nodes>
@@ -71,7 +71,7 @@
             </clerk>
             <clerk name="medroot" node="med"     publisher="root" 
password="root"/> 
             <xregister>
-                <service 
bindingKey="uddi:juddi.apache.org:servicebindings-subscriptionlistener-ws" 
fromClerk="default" toClerk="medroot"/>
+                <service 
entityKey="uddi:juddi.apache.org:servicebindings-subscriptionlistener-ws" 
fromClerk="default" toClerk="medroot"/>
             </xregister>
         </clerks>
         <signature>

http://git-wip-us.apache.org/repos/asf/juddi/blob/1a894c89/juddi-client/src/test/resources/META-INF/uddi2.xml
----------------------------------------------------------------------
diff --git a/juddi-client/src/test/resources/META-INF/uddi2.xml 
b/juddi-client/src/test/resources/META-INF/uddi2.xml
index bf3f555..84e46fe 100644
--- a/juddi-client/src/test/resources/META-INF/uddi2.xml
+++ b/juddi-client/src/test/resources/META-INF/uddi2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
-<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd">
+<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema";>
     <reloadDelay>5000</reloadDelay>
     <client name="second-client">
                <nodes>

http://git-wip-us.apache.org/repos/asf/juddi/blob/1a894c89/juddi-client/src/test/resources/META-INF/uddi3-enc-aes128.xml
----------------------------------------------------------------------
diff --git a/juddi-client/src/test/resources/META-INF/uddi3-enc-aes128.xml 
b/juddi-client/src/test/resources/META-INF/uddi3-enc-aes128.xml
index b5320f4..947903a 100644
--- a/juddi-client/src/test/resources/META-INF/uddi3-enc-aes128.xml
+++ b/juddi-client/src/test/resources/META-INF/uddi3-enc-aes128.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
-<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd">
+<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema";>
         <reloadDelay>5000</reloadDelay>
         <client name="second-client">
                 <nodes>

http://git-wip-us.apache.org/repos/asf/juddi/blob/1a894c89/juddi-client/src/test/resources/META-INF/uddiv2.xml
----------------------------------------------------------------------
diff --git a/juddi-client/src/test/resources/META-INF/uddiv2.xml 
b/juddi-client/src/test/resources/META-INF/uddiv2.xml
index 85cf260..331f0a8 100644
--- a/juddi-client/src/test/resources/META-INF/uddiv2.xml
+++ b/juddi-client/src/test/resources/META-INF/uddiv2.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
 <!-- This is how to use the UDDI v2 interfaces from the jUDDI Client-->
-<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd">
+<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema";>
     <reloadDelay>5000</reloadDelay>
     <client name="default">
         <nodes>

http://git-wip-us.apache.org/repos/asf/juddi/blob/1a894c89/juddi-core-openjpa/src/test/resources/META-INF/uddi.xml
----------------------------------------------------------------------
diff --git a/juddi-core-openjpa/src/test/resources/META-INF/uddi.xml 
b/juddi-core-openjpa/src/test/resources/META-INF/uddi.xml
index 704bc04..f8a6129 100644
--- a/juddi-core-openjpa/src/test/resources/META-INF/uddi.xml
+++ b/juddi-core-openjpa/src/test/resources/META-INF/uddi.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>
-<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd">
+<uddi xmlns="urn:juddi-apache-org:v3_client" 
xsi:schemaLocation="classpath:/xsd/uddi-client.xsd"  
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; >
     <reloadDelay>5000</reloadDelay>
     <client name="juddi-core-unittest-client">
                <nodes>


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

Reply via email to