org.wso2.carbon.tryit.WADLTryItRequestProcessor.java Source code

Java tutorial

Introduction

Here is the source code for org.wso2.carbon.tryit.WADLTryItRequestProcessor.java

Source

/*
*  Copyright (c) 2005-2013, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
*  WSO2 Inc. licenses this file to you 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.wso2.carbon.tryit;

import org.apache.axis2.context.ConfigurationContext;
import org.apache.http.protocol.HTTP;
import org.wso2.carbon.core.transports.CarbonHttpRequest;
import org.wso2.carbon.core.transports.CarbonHttpResponse;
import org.wso2.carbon.core.transports.HttpGetRequestProcessor;
import org.wso2.carbon.tryit.wadl.generator.WADLReader;
import org.wso2.carbon.utils.CarbonUtils;
import org.wso2.carbon.wsdl2form.WSDL2FormGenerator;

import javax.xml.transform.Result;
import javax.xml.transform.stream.StreamResult;
import java.io.OutputStream;
import java.net.URLEncoder;

public class WADLTryItRequestProcessor implements HttpGetRequestProcessor {
    @Override
    public void process(CarbonHttpRequest request, CarbonHttpResponse response,
            ConfigurationContext configurationContext) throws Exception {
        OutputStream outputStream = response.getOutputStream();
        response.addHeader(HTTP.CONTENT_TYPE, "text/html; charset=utf-8");
        response.addHeader("Access-Control-Allow-Origin", "*");

        Result result = new StreamResult(outputStream);
        String url = request.getParameter("resourceurl");
        url = URLEncoder.encode(url.toString(), "UTF-8");
        String contextRoot = CarbonUtils.getServerConfiguration().getFirstProperty("WebContextRoot");

        outputStream.write(("<meta content=\"text/html;charset=utf-8\" http-equiv=\"Content-Type\">\n"
                + "<meta content=\"utf-8\" http-equiv=\"encoding\">").getBytes());
        outputStream.write(
                ("<script type='text/javascript' src='?wadl2form&contentType=text/javascript&resource=js/jquery-1.8.0.min.js'></script>")
                        .getBytes());
        outputStream.write(
                ("<script type='text/javascript' src='?wadl2form&contentType=text/javascript&resource=js/jquery.slideto.min.js'></script>")
                        .getBytes());
        outputStream.write(
                ("<script type='text/javascript' src='?wadl2form&contentType=text/javascript&resource=js/jquery.wiggle.min.js'></script>")
                        .getBytes());
        outputStream.write(
                ("<script type='text/javascript' src='?wadl2form&contentType=text/javascript&resource=js/jquery.ba-bbq.min.js'></script>")
                        .getBytes());
        outputStream.write(
                ("<script type='text/javascript' src='?wadl2form&contentType=text/javascript&resource=js/handlebars-1.0.rc.1.js'></script>")
                        .getBytes());
        outputStream.write(
                ("<script type='text/javascript' src='?wadl2form&contentType=text/javascript&resource=js/underscore-min.js'></script>")
                        .getBytes());
        outputStream.write(
                ("<script type='text/javascript' src='?wadl2form&contentType=text/javascript&resource=js/backbone-min.js'></script>")
                        .getBytes());
        outputStream.write(
                ("<script type='text/javascript' src='?wadl2form&contentType=text/javascript&resource=js/swagger.js'></script>")
                        .getBytes());
        outputStream.write(
                ("<script type='text/javascript' src='?wadl2form&contentType=text/javascript&resource=js/swagger-ui.js'></script>")
                        .getBytes());
        outputStream.write(
                ("<script type='text/javascript' src='?wadl2form&contentType=text/javascript&resource=js/jquery.base64.js'></script>")
                        .getBytes());
        outputStream.write(
                ("<link rel='stylesheet' type='text/css' href='?wadl2form&contentType=text/css&resource=css/screen.css'/>")
                        .getBytes());

        outputStream.write(("\n" + "<style type='text/css'>\n" + "    .swagger-ui-wrap {\n"
                + "        max-width: 960px;\n" + "        margin-left: auto;\n" + "        margin-right: auto;\n"
                + "    }\n" + "\n" + "    .icon-btn {\n" + "        cursor: pointer;\n" + "    }\n" + "\n"
                + "    #message-bar {\n" + "        min-height: 30px;\n" + "        text-align: center;\n"
                + "        padding-top: 10px;\n" + "    }\n" + "\n" + "    .message-success {\n"
                + "        color: #89BF04;\n" + "    }\n" + "\n" + "    .message-fail {\n"
                + "        color: #cc0000;\n" + "    }\n" + "</style>\n" + "\n"
                + "<script type='text/javascript'>\n" + "    $(function () {\n"
                + "        window.swaggerUi = new SwaggerUi({\n"
                + "            discoveryUrl: '?wadl2form&contentType=application/json&resource=swaggerurl&wadldocurl="
                + url + "',\n" + "            dom_id: 'swagger-ui-container',\n"
                + "            apiKeyName: 'authorization',\n" + "            supportHeaderParams: true,\n"
                + "            supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'options'],\n"
                + "            onComplete: function (swaggerApi, swaggerUi) {\n"
                + "                if (console) {\n" + "                    console.log('Loaded SwaggerUI');\n"
                + "                    console.log(swaggerApi);\n" + "                    console.log(swaggerUi);\n"
                + "                }\n" + "                $('ul.endpoints').show();\n" + "            },\n"
                + "            onFailure: function (data) {\n" + "                if (console) {\n"
                + "                    console.log('Unable to Load SwaggerUI');\n"
                + "                    console.log(data);\n" + "                }\n" + "            },\n"
                + "            docExpansion: 'none'\n" + "        });\n" + "        window.swaggerUi.load();\n"
                + "    });\n" + "</script>\n"
                + "<div id='swagger-ui-container'>Please wait while loading try it page....</div>\n" + "<style>\n"
                + "    html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {\n"
                + "        font-family: Arial, Helvetica, Verdana, monospace, san-serif;\n"
                + "        font-size: 12px;\n" + "        line-height: 20px;\n" + "    }\n" + "\n"
                + "    div#overview ul {\n" + "        list-style: disc;\n" + "        margin: 5px 5px 5px 18px;\n"
                + "    }\n" + "\n" + "    div#overview li {\n" + "        padding-bottom: 5px;\n" + "    }\n" + "\n"
                + "    h2 {\n" + "        font-size: 24px;\n" + "        line-height: normal;\n"
                + "        font-weight: bold;\n" + "    }\n" + "\n" + "    .search-back body {\n"
                + "        line-hieight: 18px;\n" + "    }\n" + "\n"
                + "    body ul#resources li.resource div.heading h2 a {\n" + "        color: #111111;\n" + "    }\n"
                + "\n" + "    .search-back {\n" + "        padding: 0 0 0 20px;\n" + "    }\n" + "\n"
                + "    ul.endpoints {\n" + "        padding: 10px;\n" + "        border: solid 1px #efefef;\n"
                + "    }\n" + "\n" + "    body ul#resources li.resource div.heading {\n"
                + "        background: #EFEFEF;\n" + "        padding: 0 10px;\n" + "    }\n" + "\n"
                + "    body ul#resources li.resource div.heading ul.options {\n"
                + "        margin: 23px 10px 0 0;\n" + "    }\n" + "\n" + "    h6 {\n" + "        color: inherit;\n"
                + "        font-family: inherit;\n" + "        font-weight: bold;\n"
                + "        line-height: 20px;\n" + "        margin: 0 0 10px 0;\n"
                + "        text-rendering: optimizelegibility;\n" + "    }\n" + "\n" + "    h5 {\n"
                + "        color: inherit;\n" + "        font-family: inherit;\n" + "        font-size: 18px;\n"
                + "        font-weight: bold;\n" + "        line-height: 20px;\n" + "        margin: 10px 0;\n"
                + "        text-rendering: optimizelegibility;\n" + "    }\n" + "</style>\n").getBytes());
        outputStream.write(
                ("<input type='hidden' name='contextRoot_name' id='contextRoot' value='" + contextRoot + "'>")
                        .getBytes());
        outputStream.flush();

    }
}