Ejemplo n.º 1
0
        private Dictionary <String, UDDINode> readNodeConfig(uddi config, Properties properties)
        {
            //String[] names = config.getStringArray("client.nodes.node.name");
            Dictionary <String, UDDINode> nodes = new Dictionary <String, UDDINode>();

            log.debug("node count=" + config.client.nodes.Length);

            for (int i = 0; i < config.client.nodes.Length; i++)
            {
                UDDINode uddiNode = new UDDINode();

                uddiNode.setClientName(config.client.nodes[i].name);
                uddiNode.setProperties(config.client.nodes[i].properties);
                uddiNode.setHomeJUDDI(config.client.nodes[i].isHomeJUDDI);
                uddiNode.setName(config.client.nodes[i].name);
                uddiNode.setClientName(config.client.nodes[i].name);
                uddiNode.setDescription(config.client.nodes[i].description);
                uddiNode.setProxyTransport(config.client.nodes[i].proxyTransport);

                uddiNode.setInquiryUrl(TokenResolver.replaceTokens(config.client.nodes[i].inquiryUrl, config.client.nodes[i].properties));
                uddiNode.setPublishUrl(TokenResolver.replaceTokens(config.client.nodes[i].publishUrl, config.client.nodes[i].properties));
                uddiNode.setCustodyTransferUrl(TokenResolver.replaceTokens(config.client.nodes[i].custodyTransferUrl, config.client.nodes[i].properties));
                uddiNode.setSecurityUrl(TokenResolver.replaceTokens(config.client.nodes[i].securityUrl, config.client.nodes[i].properties));
                uddiNode.setSubscriptionUrl(TokenResolver.replaceTokens(config.client.nodes[i].subscriptionUrl, config.client.nodes[i].properties));
                uddiNode.setSubscriptionListenerUrl(TokenResolver.replaceTokens(config.client.nodes[i].subscriptionListenerUrl, config.client.nodes[i].properties));
                uddiNode.setJuddiApiUrl(TokenResolver.replaceTokens(config.client.nodes[i].juddiApiUrl, config.client.nodes[i].properties));
                uddiNode.setFactoryInitial(config.client.nodes[i].factoryInitial);
                uddiNode.setFactoryURLPkgs(config.client.nodes[i].factoryURLPkgs);
                uddiNode.setFactoryNamingProvider(config.client.nodes[i].factoryNamingProvider);
                nodes.Add(uddiNode.getName(), uddiNode);
            }
            return(nodes);
        }
Ejemplo n.º 2
0
 public static void SaveXmlConfiguration(string filename, uddi config)
 {
     using (StringWriter sr = new StringWriter())
     {
         try
         {
             XmlSerializer xs = new XmlSerializer(typeof(uddi));
             xs.Serialize(sr, config);
             File.WriteAllText(filename, sr.ToString());
         }
         catch (Exception ex)
         {
             LogFactory.getLog(typeof(XmlConfiguration)).error("Error saving config file from " + filename + " ", ex);
             throw ex;
         }
     }
 }
Ejemplo n.º 3
0
 public static void SaveXmlConfiguration(string filename, uddi config)
 {
     using (StringWriter sr = new StringWriter())
     {
         try
         {
             XmlSerializer xs = new XmlSerializer(typeof(uddi));
             xs.Serialize(sr, config);
             File.WriteAllText(filename, sr.ToString());
         }
         catch (Exception ex)
         {
             LogFactory.getLog(typeof(XmlConfiguration)).error("Error saving config file from " + filename + " ", ex);
             throw ex;
         }
     }
 }
Ejemplo n.º 4
0
        /**
         * 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)
        {
            if (config != null)
            {
                return;
            }
            String filename = null;



            //Properties from XML file


            if (!String.IsNullOrEmpty(configurationFile))
            {
                filename = configurationFile;
            }
            else
            {
                String prop = System.Environment.GetEnvironmentVariable(ClientConfig.UDDI_CONFIG_FILENAME_PROPERTY);
                if (!String.IsNullOrEmpty(prop))
                {
                    filename = prop;
                }
                else
                {
                    filename = UDDI_CONFIG_FILENAME_PROPERTY;
                }
            }

            log.info("Reading UDDI Client properties file " + filename);
            config = XmlConfiguration.LoadXmlConfiguration(filename);
            this.configurationFile = filename;

            //Properties from system properties

            IDictionaryEnumerator it = Environment.GetEnvironmentVariables().GetEnumerator();

            while (it.MoveNext())
            {
                config.getProperties().setProperty(it.Key.ToString(), it.Value.ToString());
            }
            readConfig(properties);
        }
Ejemplo n.º 5
0
        private HashSet <XRegistration> readXServiceBindingRegConfig(uddi config, Dictionary <String, UDDIClerk> clerks)
        {
            HashSet <XRegistration> xRegistrations = new HashSet <XRegistration>();

            if (config.client.clerks == null)
            {
                log.warn("XRegistration cannot continue, no clerks are defined!");
                return(xRegistrations);
            }
            if (config.client.clerks.xregister == null || config.client.clerks.xregister.servicebinding == null)
            {
                return(xRegistrations);
            }
            if (config.client.clerks.xregister.servicebinding.Length > 0)
            {
                log.info("XRegistration " + config.client.clerks.xregister.servicebinding.Length + " serviceBinding Keys");
            }
            for (int i = 0; i < config.client.clerks.xregister.servicebinding.Length; i++)
            {
                XRegistration xRegistration = new XRegistration();
                xRegistration.setEntityKey(config.client.clerks.xregister.servicebinding[i].bindingKey);

                String fromClerkRef = config.client.clerks.xregister.servicebinding[i].fromClerk;
                if (!clerks.ContainsKey(fromClerkRef))
                {
                    throw new ConfigurationErrorsException("Could not find fromClerk with name=" + fromClerkRef);
                }
                UDDIClerk fromClerk = clerks[(fromClerkRef)];
                xRegistration.setFromClerk(fromClerk);

                String toClerkRef = config.client.clerks.xregister.servicebinding[i].toClerk;
                if (!clerks.ContainsKey(toClerkRef))
                {
                    throw new ConfigurationErrorsException("Could not find toClerk with name=" + toClerkRef);
                }
                UDDIClerk toClerk = clerks[(toClerkRef)];
                xRegistration.setToClerk(toClerk);
                log.debug(xRegistration);

                xRegistrations.Add(xRegistration);
            }
            return(xRegistrations);
        }
Ejemplo n.º 6
0
        private Dictionary <String, UDDIClerk> readClerkConfig(uddi config, Dictionary <String, UDDINode> uddiNodes)
        {
            clientName = config.client.name;
            Dictionary <String, UDDIClerk> clerks = new Dictionary <String, UDDIClerk>();

            if (config.client.clerks != null && config.client.clerks.clerk != null && config.client.clerks.clerk.Length > 0)//.ContainsKey("client.clerks.clerk[@name]"))
            {
                log.debug("clerk names=" + config.client.clerks.clerk.Length);
                for (int i = 0; i < config.client.clerks.clerk.Length; i++)
                {
                    UDDIClerk uddiClerk = new UDDIClerk();
                    uddiClerk.setManagerName(clientName);
                    uddiClerk.setName(config.client.clerks.clerk[i].name);
                    String nodeRef = config.client.clerks.clerk[i].node;
                    if (!uddiNodes.ContainsKey(nodeRef))
                    {
                        throw new ConfigurationErrorsException("Could not find Node with name=" + nodeRef);
                    }
                    UDDINode uddiNode = uddiNodes[nodeRef];
                    uddiClerk.setUDDInode(uddiNode);
                    uddiClerk.setPublisher(config.client.clerks.clerk[i].publisher);
                    uddiClerk.setPassword(config.client.clerks.clerk[i].password);
                    uddiClerk.setPasswordEncrypted(config.client.clerks.clerk[i].isPasswordEncrypted);
                    uddiClerk.setCryptoProvider(config.client.clerks.clerk[i].cryptoProvider);

                    String clerkBusinessKey  = config.client.clerks.clerk[i].businessKey;
                    String clerkBusinessName = config.client.clerks.clerk[i].businessName;
                    String clerkKeyDomain    = config.client.clerks.clerk[i].keyDomain;

                    String[] classes = config.client.clerks.clerk[i].@class;
                    uddiClerk.setClassWithAnnotations(classes);

                    int numberOfWslds = 0;
                    if (config.client.clerks.clerk[i].wsdl != null)
                    {
                        numberOfWslds = config.client.clerks.clerk[i].wsdl.Length;// 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     = new UDDIClerk.WSDL();
                            String         fileName = config.client.clerks.clerk[i].wsdl[w].Value;
                            wsdl.setFileName(null);
                            String businessKey  = config.client.clerks.clerk[i].wsdl[w].businessKey;
                            String businessName = config.client.clerks.clerk[i].wsdl[w].businessName;
                            String keyDomain    = config.client.clerks.clerk[i].wsdl[w].keyDomain;
                            if (businessKey == null)
                            {
                                businessKey = clerkBusinessKey;
                            }
                            if (businessKey == null)
                            {
                                businessKey = uddiClerk.getUDDINode().getProperties().getString("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().getString("keyDomain");
                                }
                                if ((businessName == null && !uddiClerk.getUDDINode().getProperties().containsKey("businessName")) ||
                                    keyDomain == null && !uddiClerk.getUDDINode().getProperties().containsKey("keyDomain"))
                                {
                                    throw new ConfigurationErrorsException("Either the wsdl(" + wsdls[w]
                                                                           + ") or clerk (" + uddiClerk.getName() + ") elements require a businessKey, or businessName & keyDomain attributes");
                                }
                                else
                                {
                                    Properties properties = (uddiClerk.getUDDINode().getProperties());
                                    if (businessName != null)
                                    {
                                        properties.setProperty("businessName", businessName);
                                    }
                                    if (keyDomain != null)
                                    {
                                        properties.setProperty("keyDomain", keyDomain);
                                    }
                                    businessKey = UDDIKeyConvention.getBusinessKey(properties);
                                }
                            }
                            if (!businessKey.ToLower().StartsWith("uddi:") || !businessKey.Substring(5).Contains(":"))
                            {
                                throw new ConfigurationErrorsException("The businessKey " + businessKey + " does not implement a valid UDDI v3 key format.");
                            }
                            wsdl.setBusinessKey(businessKey);
                            if (keyDomain == null)
                            {
                                keyDomain = businessKey.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries)[1];
                            }
                            wsdl.setKeyDomain(keyDomain);
                            wsdls[w] = wsdl;
                        }
                        uddiClerk.setWsdls(wsdls);
                    }

                    clerks.Add(uddiClerk.getName(), uddiClerk);
                }
            }
            else
            {
                log.warn("No clerks are defined!");
            }
            return(clerks);
        }
Ejemplo n.º 7
0
        private HashSet<XRegistration> readXServiceBindingRegConfig(uddi config, Dictionary<String, UDDIClerk> clerks)
        {
            HashSet<XRegistration> xRegistrations = new HashSet<XRegistration>();
            if (config.client.clerks == null)
            {
                log.warn("XRegistration cannot continue, no clerks are defined!");
                return xRegistrations;
            }
            if (config.client.clerks.xregister == null || config.client.clerks.xregister.servicebinding == null)
                return xRegistrations;
            if (config.client.clerks.xregister.servicebinding.Length > 0)
                log.info("XRegistration " + config.client.clerks.xregister.servicebinding.Length + " serviceBinding Keys");
            for (int i = 0; i < config.client.clerks.xregister.servicebinding.Length; i++)
            {
                XRegistration xRegistration = new XRegistration();
                xRegistration.setEntityKey(config.client.clerks.xregister.servicebinding[i].bindingKey);

                String fromClerkRef = config.client.clerks.xregister.servicebinding[i].fromClerk;
                if (!clerks.ContainsKey(fromClerkRef)) throw new ConfigurationErrorsException("Could not find fromClerk with name=" + fromClerkRef);
                UDDIClerk fromClerk = clerks[(fromClerkRef)];
                xRegistration.setFromClerk(fromClerk);

                String toClerkRef = config.client.clerks.xregister.servicebinding[i].toClerk;
                if (!clerks.ContainsKey(toClerkRef)) throw new ConfigurationErrorsException("Could not find toClerk with name=" + toClerkRef);
                UDDIClerk toClerk = clerks[(toClerkRef)];
                xRegistration.setToClerk(toClerk);
                log.debug(xRegistration);

                xRegistrations.Add(xRegistration);
            }
            return xRegistrations;
        }
Ejemplo n.º 8
0
        private Dictionary<String, UDDINode> readNodeConfig(uddi config, Properties properties)
        {
            //String[] names = config.getStringArray("client.nodes.node.name");
            Dictionary<String, UDDINode> nodes = new Dictionary<String, UDDINode>();
            log.debug("node count=" + config.client.nodes.Length);

            for (int i = 0; i < config.client.nodes.Length; i++)
            {
                UDDINode uddiNode = new UDDINode();

                uddiNode.setClientName(config.client.nodes[i].name);
                uddiNode.setProperties(config.client.nodes[i].properties);
                uddiNode.setHomeJUDDI(config.client.nodes[i].isHomeJUDDI);
                uddiNode.setName(config.client.nodes[i].name);
                uddiNode.setClientName(config.client.nodes[i].name);
                uddiNode.setDescription(config.client.nodes[i].description);
                uddiNode.setProxyTransport(config.client.nodes[i].proxyTransport);

                uddiNode.setInquiryUrl(TokenResolver.replaceTokens(config.client.nodes[i].inquiryUrl, config.client.nodes[i].properties));
                uddiNode.setPublishUrl(TokenResolver.replaceTokens(config.client.nodes[i].publishUrl, config.client.nodes[i].properties));
                uddiNode.setCustodyTransferUrl(TokenResolver.replaceTokens(config.client.nodes[i].custodyTransferUrl, config.client.nodes[i].properties));
                uddiNode.setSecurityUrl(TokenResolver.replaceTokens(config.client.nodes[i].securityUrl, config.client.nodes[i].properties));
                uddiNode.setSubscriptionUrl(TokenResolver.replaceTokens(config.client.nodes[i].subscriptionUrl, config.client.nodes[i].properties));
                uddiNode.setSubscriptionListenerUrl(TokenResolver.replaceTokens(config.client.nodes[i].subscriptionListenerUrl, config.client.nodes[i].properties));
                uddiNode.setJuddiApiUrl(TokenResolver.replaceTokens(config.client.nodes[i].juddiApiUrl, config.client.nodes[i].properties));
                uddiNode.setFactoryInitial(config.client.nodes[i].factoryInitial);
                uddiNode.setFactoryURLPkgs(config.client.nodes[i].factoryURLPkgs);
                uddiNode.setFactoryNamingProvider(config.client.nodes[i].factoryNamingProvider);
                nodes.Add(uddiNode.getName(), uddiNode);
            }
            return nodes;
        }
Ejemplo n.º 9
0
        private Dictionary<String, UDDIClerk> readClerkConfig(uddi config, Dictionary<String, UDDINode> uddiNodes)
        {
            clientName = config.client.name;
            Dictionary<String, UDDIClerk> clerks = new Dictionary<String, UDDIClerk>();
            if (config.client.clerks != null && config.client.clerks.clerk != null && config.client.clerks.clerk.Length > 0)//.ContainsKey("client.clerks.clerk[@name]"))
            {

                log.debug("clerk names=" + config.client.clerks.clerk.Length);
                for (int i = 0; i < config.client.clerks.clerk.Length; i++)
                {
                    UDDIClerk uddiClerk = new UDDIClerk();
                    uddiClerk.setManagerName(clientName);
                    uddiClerk.setName(config.client.clerks.clerk[i].name);
                    String nodeRef = config.client.clerks.clerk[i].node;
                    if (!uddiNodes.ContainsKey(nodeRef)) throw new ConfigurationErrorsException("Could not find Node with name=" + nodeRef);
                    UDDINode uddiNode = uddiNodes[nodeRef];
                    uddiClerk.setUDDInode(uddiNode);
                    uddiClerk.setPublisher(config.client.clerks.clerk[i].publisher);
                    uddiClerk.setPassword(config.client.clerks.clerk[i].password);
                    uddiClerk.setPasswordEncrypted(config.client.clerks.clerk[i].isPasswordEncrypted);
                    uddiClerk.setCryptoProvider(config.client.clerks.clerk[i].cryptoProvider);

                    String clerkBusinessKey = config.client.clerks.clerk[i].businessKey;
                    String clerkBusinessName = config.client.clerks.clerk[i].businessName;
                    String clerkKeyDomain = config.client.clerks.clerk[i].keyDomain;

                    String[] classes = config.client.clerks.clerk[i].@class;
                    uddiClerk.setClassWithAnnotations(classes);

                    int numberOfWslds = 0;
                    if (config.client.clerks.clerk[i].wsdl != null)
                        numberOfWslds = config.client.clerks.clerk[i].wsdl.Length;// 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 = new UDDIClerk.WSDL();
                            String fileName = config.client.clerks.clerk[i].wsdl[w].Value;
                            wsdl.setFileName(null);
                            String businessKey = config.client.clerks.clerk[i].wsdl[w].businessKey;
                            String businessName = config.client.clerks.clerk[i].wsdl[w].businessName;
                            String keyDomain = config.client.clerks.clerk[i].wsdl[w].keyDomain;
                            if (businessKey == null) businessKey = clerkBusinessKey;
                            if (businessKey == null) businessKey = uddiClerk.getUDDINode().getProperties().getString("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().getString("keyDomain");
                                if ((businessName == null && !uddiClerk.getUDDINode().getProperties().containsKey("businessName"))
                                    || keyDomain == null && !uddiClerk.getUDDINode().getProperties().containsKey("keyDomain")) throw new ConfigurationErrorsException("Either the wsdl(" + wsdls[w]
                                         + ") or clerk (" + uddiClerk.getName() + ") elements require a businessKey, or businessName & keyDomain attributes");
                                else
                                {
                                    Properties properties = (uddiClerk.getUDDINode().getProperties());
                                    if (businessName != null) properties.setProperty("businessName", businessName);
                                    if (keyDomain != null) properties.setProperty("keyDomain", keyDomain);
                                    businessKey = UDDIKeyConvention.getBusinessKey(properties);
                                }
                            }
                            if (!businessKey.ToLower().StartsWith("uddi:") || !businessKey.Substring(5).Contains(":"))
                            {
                                throw new ConfigurationErrorsException("The businessKey " + businessKey + " does not implement a valid UDDI v3 key format.");
                            }
                            wsdl.setBusinessKey(businessKey);
                            if (keyDomain == null)
                            {
                                keyDomain = businessKey.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries)[1];
                            }
                            wsdl.setKeyDomain(keyDomain);
                            wsdls[w] = wsdl;
                        }
                        uddiClerk.setWsdls(wsdls);
                    }

                    clerks.Add(uddiClerk.getName(), uddiClerk);
                }
            }
            else
                log.warn("No clerks are defined!");
            return clerks;
        }
Ejemplo n.º 10
0
        /**
         * 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)
        {
            if (config != null)
                return;
            String filename = null;

            //Properties from XML file

            if (!String.IsNullOrEmpty(configurationFile))
            {
                filename = configurationFile;
            }
            else
            {
                String prop = System.Environment.GetEnvironmentVariable(ClientConfig.UDDI_CONFIG_FILENAME_PROPERTY);
                if (!String.IsNullOrEmpty(prop))
                    filename = prop;
                else
                    filename = UDDI_CONFIG_FILENAME_PROPERTY;
            }

            log.info("Reading UDDI Client properties file " + filename);
            config = XmlConfiguration.LoadXmlConfiguration(filename);
            this.configurationFile = filename;

            //Properties from system properties

            IDictionaryEnumerator it = Environment.GetEnvironmentVariables().GetEnumerator();
            while (it.MoveNext())
            {
                config.getProperties().setProperty(it.Key.ToString(), it.Value.ToString());
            }
            readConfig(properties);
        }
 public uddi.apiv3.dispositionReport notify_subscriptionListener(uddi.apiv3.notify_subscriptionListener body)
 {
     for (int i = 0; i < callbacks.Count; i++)
     {
         try
         {
             callbacks[i].HandleCallback(body.subscriptionResultsList);
         }
         catch (Exception ex)
         {
             log.warn("Your implementation on ISubscriptionCallback is faulty and threw an error, contact the developer", ex);
         }
     }
     dispositionReport r = new dispositionReport();
     r.result = new result[] { new result() };
     return r;
 }
 public void HandleCallback(uddi.apiv3.subscriptionResultsList body)
 {
     Console.Out.WriteLine("HandleCallback received " + body.Item);
 }