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]
