blob: deff6991a48b89142fe62cc0de096d11dfb29b99 [file] [log] [blame]
<%--
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");
}
%>