createNodesSimple_jsp.java 8.42 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  javax.jcr.Node
 *  javax.jcr.Repository
 *  javax.jcr.Session
 *  javax.servlet.Servlet
 *  javax.servlet.ServletConfig
 *  javax.servlet.ServletContext
 *  javax.servlet.ServletException
 *  javax.servlet.ServletRequest
 *  javax.servlet.ServletResponse
 *  javax.servlet.http.HttpServletRequest
 *  javax.servlet.http.HttpServletResponse
 *  javax.servlet.jsp.JspFactory
 *  javax.servlet.jsp.JspWriter
 *  javax.servlet.jsp.PageContext
 *  javax.servlet.jsp.SkipPageException
 *  org.apache.jackrabbit.util.Text
 *  org.apache.jasper.runtime.HttpJspBase
 *  org.apache.jasper.runtime.JspSourceDependent
 */
package com.day.crx.explorer.impl.jsp.testing;

import com.day.crx.explorer.impl.j2ee.CRXContext;
import com.day.crx.explorer.impl.util.RequestData;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
import java.util.List;
import javax.jcr.Node;
import javax.jcr.Repository;
import javax.jcr.Session;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspFactory;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.SkipPageException;
import org.apache.jackrabbit.util.Text;
import org.apache.jasper.runtime.HttpJspBase;
import org.apache.jasper.runtime.JspSourceDependent;

public final class createNodesSimple_jsp
extends HttpJspBase
implements JspSourceDependent {
    private JspWriter out;
    private static List _jspx_dependants;

    private void msg(String msg) throws IOException {
        this.out.print(msg);
        this.out.println("<br>");
        this.out.flush();
    }

    private int createNodes(Node parent, int x, int nodes, int saveEach, int depth, int nodesPerFolder) throws Exception {
        int i = 0;
        while (x < nodes && i < nodesPerFolder) {
            if (depth > 1) {
                Node n = parent.addNode("f" + x, "nt:unstructured");
                x = this.createNodes(n, x, nodes, saveEach, depth - 1, nodesPerFolder);
            } else {
                parent.addNode("n" + i, "nt:unstructured");
                if (++x % saveEach == 0) {
                    parent.getSession().save();
                    this.msg("Created " + x + " nodes, at " + parent.getPath());
                }
            }
            ++i;
        }
        return x;
    }

    public Object getDependants() {
        return _jspx_dependants;
    }

    /*
     * Enabled aggressive block sorting
     * Enabled unnecessary exception pruning
     * Enabled aggressive exception aggregation
     */
    public void _jspService(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        CRXContext ctx;
        PageContext _jspx_page_context;
        JspFactory _jspxFactory;
        Session repSession;
        JspWriter _jspx_out;
        JspWriter out;
        block15 : {
            _jspxFactory = null;
            PageContext pageContext = null;
            out = null;
            _jspx_out = null;
            _jspx_page_context = null;
            _jspxFactory = JspFactory.getDefaultFactory();
            response.setContentType("text/html");
            _jspx_page_context = pageContext = _jspxFactory.getPageContext((Servlet)this, (ServletRequest)request, (ServletResponse)response, null, false, 8192, true);
            pageContext.getServletContext();
            pageContext.getServletConfig();
            _jspx_out = out = pageContext.getOut();
            response.setContentType("text/html; charset=utf-8");
            ctx = CRXContext.getInstance(pageContext, request);
            repSession = ctx.getSession();
            if (repSession != null) break block15;
            if (_jspxFactory == null) return;
            _jspxFactory.releasePageContext(_jspx_page_context);
            return;
        }
        try {
            RequestData req = ctx.getRequestData();
            String cmd = req.getParameter("cmd");
            repSession.getRepository();
            out.write("<html>\n<head>\n    <style>\n        body {\n            font-family:Verdana;\n            font-size:10px;\n            line-height:14px;\n        }\n    </style>\n</head>\n<body>\n    <h1>Create Nodes Utility</h1>\n");
            try {
                try {
                    ctx.lockSession();
                    if (cmd == null) {
                        out.write("<p>\n    This utility can create a large numbers of nodes using the following structure:</p>\n    <pre>\n/testRoot\n   /f0\n       /n0.txt\n       /n1.txt\n       ...\n       /n9.txt\n   ...\n   /f90\n       /n0.txt\n       ...\n       /n_9.txt\n</pre>\n    <hr>\n    <form method=\"post\" enctype=\"multipart/form-data\">\n        <input type=\"hidden\" name=\"_charset_\" value=\"utf-8\">\n        <h2>Create parameters</h2>\n        Editing session: ");
                        out.print(repSession.getUserID());
                        out.write("<p/>\n\n        Root node name: <input type=\"text\" name=\"rootName\" value=\"testRoot\"><br>\n        Number of nodes: <input type=\"text\" name=\"nodes\" value=\"10000\"><br>\n        Nodes per folder: <input type=\"text\" name=\"nodesPerFolder\" value=\"50\"><br>\n        Save each n nodes: <input type=\"text\" name=\"saveEach\" value=\"1000\"><br>\n\n        <input type=\"submit\" name=\"cmd\" value=\"create\">\n        </form>\n    <hr>\n\n    ");
                        return;
                    }
                    Node root = repSession.getRootNode().addNode(req.getParameter("rootName"), "nt:unstructured");
                    repSession.save();
                    int nodes = Integer.parseInt(req.getParameter("nodes"));
                    int nodesPerFolder = Integer.parseInt(req.getParameter("nodesPerFolder"));
                    int saveEach = Integer.parseInt(req.getParameter("saveEach"));
                    int levels = (int)Math.ceil(Math.log(nodes) / Math.log(nodesPerFolder));
                    out.write("<h3>Parameters</h3>\n        Editing Session: ");
                    out.print(Text.encodeIllegalXMLCharacters((String)repSession.getUserID()));
                    out.write("<br>\n        Creating ");
                    out.print(nodes);
                    out.write(" nodes<br>\n        Creating ");
                    out.print(nodesPerFolder);
                    out.write(" nodes per folder<br>       \n        Save each ");
                    out.print(saveEach);
                    out.write(" nodes<br>       \n        Creating ");
                    out.print(levels);
                    out.write(" folder levels<br>       \n\n        <h3>Creation Log</h3>\n        ");
                    this.out = out;
                    long time = System.currentTimeMillis();
                    this.createNodes(root, 0, nodes, saveEach, levels, nodesPerFolder);
                    repSession.save();
                    time = System.currentTimeMillis() - time;
                    out.write("<p/>\n        <h3>Done</h3>\n        Created ");
                    out.print(nodes);
                    out.write(" nodes in ");
                    out.print(time);
                    out.write(" ms (");
                    out.print((long)nodes * 1000 / time);
                    out.write(" nodes/second).<br>\n        ");
                    return;
                }
                catch (Exception e) {
                    e.printStackTrace(new PrintWriter((Writer)out));
                    return;
                }
            }
            finally {
                ctx.close();
            }
        }
        catch (Throwable t) {
            try {
                if (t instanceof SkipPageException) return;
                out = _jspx_out;
                if (out != null && out.getBufferSize() != 0) {
                    out.clearBuffer();
                }
                if (_jspx_page_context == null) return;
                _jspx_page_context.handlePageException(t);
                return;
            }
            catch (Throwable throwable) {
                throw throwable;
            }
            finally {
                if (_jspxFactory != null) {
                    _jspxFactory.releasePageContext(_jspx_page_context);
                }
            }
        }
    }
}