| <%-- |
| Document : importFromWadl |
| Created on : July 11, 2013, 3:26:42 PM |
| Author : Alex O'Ree |
| --%> |
| <%@page import="org.apache.juddi.jaxb.PrintUDDI"%> |
| <%@page import="org.uddi.api_v3.BusinessService"%> |
| <%@page import="org.apache.juddi.v3.client.mappings.wadl.Application"%> |
| <%@page import="org.apache.juddi.v3.client.mapping.WADL2UDDI"%> |
| <%@page import="java.io.File"%> |
| <%@page import="org.apache.juddi.v3.client.config.TokenResolver"%> |
| <%@page import="org.uddi.api_v3.Name"%> |
| <%@page import="org.uddi.api_v3.BusinessEntity"%> |
| <%@page import="java.util.ArrayList"%> |
| <%@page import="java.util.List"%> |
| <%@page import="org.apache.juddi.webconsole.hub.builders.Printers"%> |
| <%@page import="org.apache.commons.lang.StringEscapeUtils"%> |
| <%@page import="java.util.Set"%> |
| <%@page import="javax.xml.namespace.QName"%> |
| <%@page import="javax.wsdl.PortType"%> |
| <%@page import="java.util.Map"%> |
| <%@page import="org.uddi.api_v3.BusinessServices"%> |
| <%@page import="org.apache.juddi.v3.client.mapping.WSDL2UDDI"%> |
| <%@page import="org.apache.juddi.v3.client.mapping.URLLocalizerDefaultImpl"%> |
| <%@page import="java.util.Properties"%> |
| <%@page import="javax.wsdl.Definition"%> |
| <%@page import="org.apache.juddi.v3.client.mapping.ReadWSDL"%> |
| <%@page import="org.apache.juddi.v3.client.config.UDDIClerk"%> |
| <%@page import="org.uddi.api_v3.TModel"%> |
| <%@page import="java.net.URL"%> |
| <%@include file="../csrf.jsp" %> |
| <% |
| if (request.getMethod().equalsIgnoreCase("POST")) { |
| String method = request.getParameter("formaction"); |
| if (method != null && method.length() > 0) { |
| |
| if (method.equalsIgnoreCase("preview") || method.equalsIgnoreCase("save")) { |
| UddiHub x = UddiHub.getInstance(application, session); |
| //Fetch the WSDL w/wo credentials |
| String uri = request.getParameter("wsdlurl"); |
| String username = request.getParameter("wsdlusername"); |
| String password = request.getParameter("wsdlpassword"); |
| String keydomain = request.getParameter("keydomain"); |
| String businessname = request.getParameter("businessname"); |
| boolean ignoreSSL = false; |
| try { |
| ignoreSSL = Boolean.parseBoolean(request.getParameter("ignoressl")); |
| } catch (Exception ex) { |
| } |
| try { |
| URL url = new URL(uri); |
| //"http://graphical.weather.gov/xml/SOAP_server/ndfdXMLserver.php?wsdl"); |
| //String domain = url.getHost(); |
| //TModel keygen = UDDIClerk.createKeyGenator("uddi:" + domain + ":keygenerator", domain, "en"); |
| |
| Application app = WADL2UDDI.parseWadl(url, username, password, ignoreSSL); |
| |
| List<URL> urls = WADL2UDDI.getBaseAddresses(app); |
| URL baseurl = urls.get(0); |
| |
| //TModel keygen = UDDIClerk.createKeyGenator("uddi:" + domain + ":keygenerator", domain, "en"); |
| Properties properties = new Properties(); |
| properties.put("keyDomain", keydomain); |
| properties.put("businessName", businessname); |
| properties.put("serverName", url.getHost()); |
| properties.put("serverPort", url.getPort()); |
| //wsdlURL = wsdlDefinition.getDocumentBaseURI(); |
| WADL2UDDI wadl2UDDI = new WADL2UDDI(null, new URLLocalizerDefaultImpl(), properties); |
| |
| BusinessService businessServices = wadl2UDDI.createBusinessService(new QName(url.getHost(), "Servicename"), app); |
| |
| |
| Set<TModel> portTypeTModels = wadl2UDDI.createWADLPortTypeTModels(uri, app); |
| List<TModel> tmodels = new ArrayList<TModel>(); |
| tmodels.addAll(portTypeTModels); |
| Set<TModel> bindings = wadl2UDDI.createWADLTModels(uri, app); |
| |
| tmodels.addAll(bindings); |
| boolean createKeyGen = false; |
| TModel keygen = UDDIClerk.createKeyGenator("uddi:" + keydomain + ":keygenerator", |
| keydomain + " Key Generator Partition", (String) session.getAttribute("locale")); |
| if (x.getTmodelDetails(keygen.getTModelKey()) == null) { |
| createKeyGen = true; |
| } |
| out.write("<i class=\"icon-thumbs-up icon-large\"></i> WADL successfully parsed! This will create " |
| + portTypeTModels.size() |
| + " Port tModels, " |
| + bindings.size() |
| + " Binding tModels, " |
| + ((createKeyGen == true) ? "one tModel Key Generator, " : "") |
| + "1 binding, and 1 service(s) attached to the business with " |
| + "the key " + StringEscapeUtils.escapeHtml(businessname) + " .<br>"); |
| out.write("Services:<br><ul>"); |
| |
| out.write("<li>Key: " |
| + StringEscapeUtils.escapeHtml(businessServices.getServiceKey()) |
| + " <br>Name: " |
| + StringEscapeUtils.escapeHtml(Printers.ListNamesToString(businessServices.getName()))); |
| if (businessServices.getBindingTemplates() != null) { |
| out.write("<br>Binding Templates:<ul>"); |
| for (int k = 0; k < businessServices.getBindingTemplates().getBindingTemplate().size(); k++) { |
| out.write("<li>Key: " + StringEscapeUtils.escapeHtml(businessServices.getBindingTemplates().getBindingTemplate().get(k).getBindingKey()) |
| + "<br>Access Point: "); |
| if (businessServices.getBindingTemplates().getBindingTemplate().get(k).getAccessPoint() != null) { |
| out.write(StringEscapeUtils.escapeHtml( |
| businessServices.getBindingTemplates().getBindingTemplate().get(k).getAccessPoint().getValue())); |
| } |
| out.write("</li>"); |
| } |
| out.write("</ul>"); |
| } |
| out.write("</li>"); |
| |
| out.write("</ul>"); |
| |
| out.write("tModels<br><ul>"); |
| for (int i = 0; i < tmodels.size(); i++) { |
| out.write("<li>Key:" |
| + StringEscapeUtils.escapeHtml(tmodels.get(i).getTModelKey()) |
| + " Name: " |
| + StringEscapeUtils.escapeHtml(tmodels.get(i).getName().getValue()) |
| + "</li>"); |
| } |
| out.write("</ul>"); |
| |
| |
| if (method.equalsIgnoreCase("save")) { |
| |
| //forgot the key generator |
| |
| StringBuilder result = new StringBuilder(); |
| if (createKeyGen) { |
| result.append("Saving tModel " + StringEscapeUtils.escapeHtml(keygen.getName().getValue()) + "..." + x.SaveTModel(keygen)).append("<br>"); |
| } |
| for (int i = 0; i < tmodels.size(); i++) { |
| result.append("Saving tModel " + StringEscapeUtils.escapeHtml(tmodels.get(i).getName().getValue()) + "..." + x.SaveTModel(tmodels.get(i))).append("<br>"); |
| } |
| |
| //this needs work |
| BusinessEntity biz = x.GetBusinessDetails(businessname); |
| if (biz != null) { |
| if (biz.getBusinessServices() == null) { |
| biz.setBusinessServices(new BusinessServices()); |
| } |
| |
| } else { |
| biz = new BusinessEntity(); |
| biz.setBusinessKey(TokenResolver.replaceTokens("uddi:${keyDomain}:business_${businessName}", properties).toLowerCase()); |
| biz.getName().add(new Name(businessname, "en")); |
| } |
| if (biz.getBusinessServices() == null) { |
| biz.setBusinessServices(new BusinessServices()); |
| } |
| |
| biz.getBusinessServices().getBusinessService().add(businessServices); |
| |
| for (int i = 0; i < biz.getBusinessServices().getBusinessService().size(); i++) { |
| biz.getBusinessServices().getBusinessService().get(i).setBusinessKey(biz.getBusinessKey()); |
| } |
| // PrintUDDI<BusinessEntity> sbp = new PrintUDDI<BusinessEntity>(); |
| // result.append("<br>" + sbp.print(biz) + "<br>"); |
| |
| result.append("Saving business " + StringEscapeUtils.escapeHtml(biz.getName().get(0).getValue()) + "..." + x.SaveBusinessDetails(biz)); |
| out.write(result.toString()); |
| } |
| |
| } catch (Exception ex) { |
| out.write("<i class=\"icon-thumbs-down icon-large\"></i> Error! " + ex.getClass().getCanonicalName() + " " + ex.getMessage()); |
| } |
| } else { |
| out.write("bad request"); |
| } |
| } else { |
| out.write("bad request"); |
| } |
| } else { |
| out.write("bad request"); |
| } |
| |
| |
| |
| %> |