public UddiCategoryBag(categoryBag bag) { this.bag = bag; keyedReferenceBag = new Dictionary <string, keyedReference>(); keyedReferenceGroupBag = new Dictionary <string, keyedReferenceGroup>(); if (bag.Items == null) { return; } foreach (object category in bag.Items) { //if the category is a keyed reference group ignore it. if (category is keyedReference) { keyedReference keyRef = (keyedReference)category; keyedReferenceBag[keyRef.tModelKey.ToLower()] = keyRef; } if (category is keyedReferenceGroup) { keyedReferenceGroup keyRefGroup = (keyedReferenceGroup)category; keyedReferenceGroupBag[keyRefGroup.tModelKey.ToLower()] = keyRefGroup; } } }
public bool TryGetKeyedReference(string tModelKey, out keyedReference keyedRef) { if (string.IsNullOrEmpty(tModelKey)) { throw new ArgumentException("tModelKey"); } return(keyedReferenceBag.TryGetValue(tModelKey.ToLower(), out keyedRef)); }
private categoryBag parseCategoryBag(string categoryBagStr) { categoryBag cb = new categoryBag(); log.debug("CategoryBag Annotation=" + cb); if (!"".Equals(categoryBagStr)) { List <keyedReference> cbs = new List <keyedReference>(); String[] sections = categoryBagStr.Split(','); foreach (String section in sections) { if (section.StartsWith(KEYED_REFERENCE)) { String keyedReferenceStr = section.Substring(KEYED_REFERENCE.Length, section.Length); log.debug("Found KeyedReference=" + keyedReferenceStr); String[] keyedReferences = keyedReferenceStr.Split(';'); keyedReference keyedReference = new keyedReference(); foreach (String key in keyedReferences) { if (key.StartsWith(KEY_NAME)) { keyedReference.keyName = (key.Substring(KEY_NAME.Length, key.Length)); } if (key.StartsWith(KEY_VALUE)) { keyedReference.keyValue = (key.Substring(KEY_VALUE.Length, key.Length)); } if (key.StartsWith(TMODEL_KEY)) { keyedReference.tModelKey = (key.Substring(TMODEL_KEY.Length, key.Length)); } } log.debug("KeyedReference = " + KEY_NAME + keyedReference.keyName + " " + KEY_VALUE + keyedReference.keyValue + " " + TMODEL_KEY + keyedReference.tModelKey); cbs.Add(keyedReference); } else { log.warn("Ignoring " + section); //TODO add support for KeyedReferenceGroups? } } cb.Items = cbs.ToArray(); } return(cb); }
public static keyedReference[] MapIdentifierBag(uddi.apiv2.keyedReference[] keyedReference) { if (keyedReference == null) { return(null); } List <keyedReference> r = new List <keyedReference>(); for (int i = 0; i < keyedReference.Length; i++) { keyedReference x = new keyedReference(); x.tModelKey = keyedReference[i].tModelKey; x.keyValue = keyedReference[i].keyValue; x.keyName = keyedReference[i].keyName; r.Add(x); } return(r.ToArray()); }
/** * Creates a UDDI Business Service. * * @param serviceQName This must be specified to identify the namespace of * the service, which is used to set the service uddi key * @param waldDefinition * @return */ public businessService createBusinessService(QName serviceQName, application wadlDefinition) { log.debug("Constructing Service UDDI Information for " + serviceQName); businessService service = new businessService(); // BusinessKey service.businessKey = (businessKey); // ServiceKey service.serviceKey = (UDDIKeyConvention.getServiceKey(properties, serviceQName.getLocalPart())); // Description String serviceDescription = properties.getProperty(Property.SERVICE_DESCRIPTION, Property.DEFAULT_SERVICE_DESCRIPTION); // Override with the service description from the WSDL if present bool lengthwarn = false; List <description> ds = new List <description>(); if (wadlDefinition.doc != null) { for (int i = 0; i < wadlDefinition.doc.Length; i++) { String locallang = lang; description description = new description(); if (wadlDefinition.doc[i].lang != null) { locallang = (wadlDefinition.doc[i].lang); } if (locallang.Length > UDDIConstants.MAX_xml_lang_length) { lengthwarn = true; locallang = (locallang.Substring(0, UDDIConstants.MAX_xml_lang_length - 1)); } StringBuilder sb = new StringBuilder(); sb.Append(wadlDefinition.doc[i].title).Append(" "); sb.Append(ContentToString(wadlDefinition.doc[i].Any)); ds.AddRange(Common2UDDI.mapdescription(sb.ToString(), locallang)); } } else { ds.AddRange(Common2UDDI.mapdescription(serviceDescription, lang)); } service.description = ds.ToArray(); // Service name name sName = new name(); sName.lang = (lang); if (wadlDefinition.doc != null && wadlDefinition.doc.Length > 0) { sName.Value = (wadlDefinition.doc[0].title); } if (sName.Value == null) { sName.Value = (serviceQName.getLocalPart()); } service.name = new name[] { sName }; categoryBag cb = new categoryBag(); List <keyedReference> krs = new List <keyedReference>(); String ns = serviceQName.getNamespaceURI(); if (ns != null && ns != "") { keyedReference namespaceReference = new keyedReference( "uddi:uddi.org:xml:namespace", "uddi-org:xml:namespace", ns); krs.Add(namespaceReference); } keyedReference serviceReference = new keyedReference( "uddi:uddi.org:wadl:types", "uddi-org:wadl:types", "service"); krs.Add(serviceReference); keyedReference localNameReference = new keyedReference( "uddi:uddi.org:xml:localname", "uddi-org:xml:localName", serviceQName.getLocalPart()); krs.Add(localNameReference); cb.Items = krs.ToArray(); service.categoryBag = (cb); if (wadlDefinition.resources != null) { for (int i = 0; i < wadlDefinition.resources.Length; i++) { bindingTemplate bindingTemplate = createWADLBinding(serviceQName, getDocTitle(wadlDefinition.resources[i].doc), new Uri(wadlDefinition.resources[i].@base), wadlDefinition.resources[i]); service.bindingTemplates = new bindingTemplate[] { bindingTemplate }; } } if (lengthwarn) { log.warn("Some object descriptions are longer than the maximum allowed by UDDI and have been truncated."); } return(service); }
private IList <UddiService> GetUddiServices(Identifier organizationIdentifier, UddiId serviceUddiId, string profileConformanceClaim) { keyedReference profileConformanceClaimKeyReference = new keyedReference(); profileConformanceClaimKeyReference.tModelKey = "uddi:cc5f1df6-ae0a-4781-b24a-f30315893af7"; profileConformanceClaimKeyReference.keyName = "http://oio.dk/profiles/OWSA/modelT/1.0/UDDI/Categories/profileConformanceClaim/"; profileConformanceClaimKeyReference.keyValue = profileConformanceClaim; keyedReference registrationConformanceClaim = new keyedReference(); registrationConformanceClaim.tModelKey = "uddi:80496ef5-4d24-4788-a3f8-12fb54a75106"; registrationConformanceClaim.keyName = "http://oio.dk/profiles/OWSA/modelT/1.0/UDDI/Categories/registrationConformanceClaim/"; registrationConformanceClaim.keyValue = RASPREGISTRATIONCONFORMANCECLAIM; keyedReference endpointKeyType = new keyedReference(); endpointKeyType.tModelKey = "uddi:182a4a2b-3717-4283-b97c-55cc3b684dae"; endpointKeyType.keyName = "http://oio.dk/profiles/OIOSI/1.0/UDDI/Categories/endpointKeyType/"; endpointKeyType.keyValue = organizationIdentifier.KeyTypeCode; keyedReference endpointKey = new keyedReference(); endpointKey.tModelKey = "uddi:e733684d-9f40-40ff-8807-1d80abc7c665"; endpointKey.keyName = "http://oio.dk/profiles/OIOSI/1.0/UDDI/Categories/endpointKey/"; endpointKey.keyValue = organizationIdentifier.GetAsString(); keyedReference[] categories = new[] { profileConformanceClaimKeyReference, registrationConformanceClaim, endpointKeyType, endpointKey }; categoryBag serviceCategories = new categoryBag { Items = categories }; find_service findService = new find_service(); findService.findQualifiers = new string[] { FindQualifers.andAllKeys.ToString() }; if (serviceUddiId != null) { findService.tModelBag = new string[] { serviceUddiId.ID }; } findService.categoryBag = serviceCategories; serviceList listOfServices = this.uddiProxy.find_service(findService); List <string> endPointUddiIds = new List <string>(); if (listOfServices.serviceInfos == null) { return(new List <UddiService>()); } foreach (serviceInfo service in listOfServices.serviceInfos) { endPointUddiIds.Add(service.serviceKey); } // Har uddi-ID på service endpoint, skal finde endpoint uri get_serviceDetail getServiceDetail = new get_serviceDetail(); getServiceDetail.serviceKey = endPointUddiIds.ToArray(); serviceDetail detail = this.uddiProxy.get_serviceDetail(getServiceDetail); if (detail.businessService == null) { return(new List <UddiService>()); } IList <UddiService> uddiServices = new List <UddiService>(); foreach (businessService businessServiceItem in detail.businessService) { List <UddiBinding> uddiBindings = new List <UddiBinding>(); foreach (bindingTemplate bindingTemplate in businessServiceItem.bindingTemplates) { List <string> tModelKeys = new List <string>(); foreach (tModelInstanceInfo tModel in bindingTemplate.tModelInstanceDetails) { tModelKeys.Add(tModel.tModelKey); } // Get the tModel details: get_tModelDetail tModelDetail = new get_tModelDetail(); tModelDetail.tModelKey = tModelKeys.ToArray(); tModelDetail modelDetail = this.uddiProxy.get_tModelDetail(tModelDetail); List <tModel> uddiTModels = new List <tModel>(); foreach (tModel tModelItem in modelDetail.tModel) { uddiTModels.Add(tModelItem); } UddiBinding uddiBinding = new UddiBinding(bindingTemplate, uddiTModels); uddiBindings.Add(uddiBinding); } UddiService uddiService = new UddiService(businessServiceItem, uddiBindings); uddiServices.Add(uddiService); } return(uddiServices); }
/** * adds the typical SOAP tmodel references, but only if they aren't already present * @param bt * @return */ public static bindingTemplate addSOAPtModels(bindingTemplate bt) { bool found = false; List <object> cbags = new List <object>(); if (bt.categoryBag != null) { cbags.AddRange(bt.categoryBag.Items); } for (int i = 0; i < cbags.Count; i++) { if (cbags[i] is keyedReference) { keyedReference kr = (keyedReference)cbags[i]; if (kr.tModelKey != null && kr.tModelKey.Equals("uddi:uddi.org:categorization:types", StringComparison.CurrentCultureIgnoreCase)) { if (kr.keyName != null && kr.keyName.Equals("uddi-org:types:wsdl", StringComparison.CurrentCultureIgnoreCase)) { found = true; } } } } if (!found) { cbags.Add(new keyedReference("uddi:uddi.org:categorization:types", "uddi-org:types:wsdl", "wsdlDeployment")); } if (cbags.Count > 0) { if (bt.categoryBag == null) { bt.categoryBag = new categoryBag(); } bt.categoryBag.Items = cbags.ToArray(); } List <tModelInstanceInfo> data = new List <tModelInstanceInfo>(); if (bt.tModelInstanceDetails != null) { data.AddRange(bt.tModelInstanceDetails); } accessPoint ap = null; if (bt.Item is accessPoint) { ap = (accessPoint)bt.Item; } tModelInstanceInfo tModelInstanceInfo; if (!Exists(data, UDDIConstants.PROTOCOL_SOAP)) { tModelInstanceInfo = new tModelInstanceInfo(); tModelInstanceInfo.tModelKey = (UDDIConstants.PROTOCOL_SOAP); data.Add(tModelInstanceInfo); } if (ap != null && ap.Value != null && ap.Value.StartsWith("http:")) { if (!Exists(data, UDDIConstants.TRANSPORT_HTTP)) { tModelInstanceInfo = new tModelInstanceInfo(); tModelInstanceInfo.tModelKey = (UDDIConstants.TRANSPORT_HTTP); data.Add(tModelInstanceInfo); } } if (ap != null && ap.Value != null && ap.Value.StartsWith("jms:")) { if (!Exists(data, UDDIConstants.TRANSPORT_JMS)) { tModelInstanceInfo = new tModelInstanceInfo(); tModelInstanceInfo.tModelKey = (UDDIConstants.TRANSPORT_JMS); data.Add(tModelInstanceInfo); } } if (ap != null && ap.Value != null && ap.Value.StartsWith("rmi:")) { if (!Exists(data, UDDIConstants.TRANSPORT_RMI)) { tModelInstanceInfo = new tModelInstanceInfo(); tModelInstanceInfo.tModelKey = (UDDIConstants.TRANSPORT_RMI); data.Add(tModelInstanceInfo); } } if (ap != null && ap.Value != null && ap.Value.StartsWith("udp:")) { if (!Exists(data, UDDIConstants.TRANSPORT_UDP)) { tModelInstanceInfo = new tModelInstanceInfo(); tModelInstanceInfo.tModelKey = (UDDIConstants.TRANSPORT_UDP); data.Add(tModelInstanceInfo); } } if (ap != null && ap.Value != null && ap.Value.StartsWith("amqp:")) { if (!Exists(data, UDDIConstants.TRANSPORT_AMQP)) { tModelInstanceInfo = new tModelInstanceInfo(); tModelInstanceInfo.tModelKey = (UDDIConstants.TRANSPORT_AMQP); data.Add(tModelInstanceInfo); } } if (ap != null && ap.Value != null && ap.Value.StartsWith("mailto:")) { if (!Exists(data, UDDIConstants.TRANSPORT_EMAIL)) { tModelInstanceInfo = new tModelInstanceInfo(); tModelInstanceInfo.tModelKey = (UDDIConstants.TRANSPORT_EMAIL); data.Add(tModelInstanceInfo); } } if (ap != null && ap.Value != null && ap.Value.StartsWith("ftp:")) { if (!Exists(data, UDDIConstants.TRANSPORT_FTP)) { tModelInstanceInfo = new tModelInstanceInfo(); tModelInstanceInfo.tModelKey = (UDDIConstants.TRANSPORT_FTP); data.Add(tModelInstanceInfo); } } if (ap != null && ap.Value != null && ap.Value.StartsWith("https:")) { if (!Exists(data, UDDIConstants.PROTOCOL_SSLv3)) { tModelInstanceInfo = new tModelInstanceInfo(); tModelInstanceInfo.tModelKey = (UDDIConstants.PROTOCOL_SSLv3); data.Add(tModelInstanceInfo); } } if (ap != null && ap.Value != null && ap.Value.StartsWith("ftps:")) { if (!Exists(data, UDDIConstants.PROTOCOL_SSLv3)) { tModelInstanceInfo = new tModelInstanceInfo(); tModelInstanceInfo.tModelKey = (UDDIConstants.PROTOCOL_SSLv3); data.Add(tModelInstanceInfo); } } if (ap != null && ap.Value != null && ap.Value.StartsWith("jndi:")) { if (!Exists(data, UDDIConstants.TRANSPORT_JNDI_RMI)) { tModelInstanceInfo = new tModelInstanceInfo(); tModelInstanceInfo.tModelKey = (UDDIConstants.TRANSPORT_JNDI_RMI); data.Add(tModelInstanceInfo); } } bt.tModelInstanceDetails = data.ToArray(); return(bt); }