Examples of SlingScriptHelper


Examples of org.apache.sling.api.scripting.SlingScriptHelper

    @Override
    public int doEndTag() throws JspException {
        final SlingBindings bindings = (SlingBindings) pageContext.getRequest().getAttribute(
                SlingBindings.class.getName());
        final SlingScriptHelper scriptHelper = bindings.getSling();
        final ServletResolver servletResolver = scriptHelper.getService(ServletResolver.class);

        final RequestProgressTracker tracker = TagUtil.getRequest(pageContext).getRequestProgressTracker();
        String servletName = null;

        final Servlet servlet;
        if (!ignoreComponentHierarchy) {
            final Resource resource = bindings.getResource();
            servlet = servletResolver.resolveServlet(resource, this.script);

            if (servlet != null) {
                servletName = RequestUtil.getServletName(servlet);
                tracker.log("Including script {0} for path={1}, type={2}: {3}", script, resource.getPath(),
                        resource.getResourceType(), servletName);
            }

        } else {
            final ResourceResolver resolver = bindings.getRequest().getResourceResolver();
            final String scriptPath;
            if (!script.startsWith("/")) {

                // resolve relative script
                String parentPath = ResourceUtil.getParent(scriptHelper.getScript().getScriptResource().getPath());
                // check if parent resides on search path
                for (String sp : resolver.getSearchPath()) {
                    if (parentPath.startsWith(sp)) {
                        parentPath = parentPath.substring(sp.length());
                        break;
View Full Code Here

Examples of org.apache.sling.api.scripting.SlingScriptHelper

   * @return the resource resolver
   */
  protected ResourceResolver getResourceResolver() {
    final SlingBindings bindings = (SlingBindings) pageContext.getRequest()
        .getAttribute(SlingBindings.class.getName());
    final SlingScriptHelper scriptHelper = bindings.getSling();
    final ResourceResolver resolver = scriptHelper.getRequest()
        .getResourceResolver();
    return resolver;
  }
View Full Code Here

Examples of org.apache.sling.api.scripting.SlingScriptHelper

   * @return the resource resolver
   */
  protected ResourceResolver getResourceResolver() {
    final SlingBindings bindings = (SlingBindings) pageContext.getRequest()
        .getAttribute(SlingBindings.class.getName());
    final SlingScriptHelper scriptHelper = bindings.getSling();
    final ResourceResolver resolver = scriptHelper.getRequest()
        .getResourceResolver();
    return resolver;
  }
View Full Code Here

Examples of org.apache.sling.api.scripting.SlingScriptHelper

     *
     * @return always {@link #EVAL_PAGE}.
     */
    public int doEndTag() {
        final SlingBindings bindings = (SlingBindings)pageContext.getRequest().getAttribute(SlingBindings.class.getName());
        final SlingScriptHelper scriptHelper = bindings.getSling();

        pageContext.setAttribute(requestName, scriptHelper.getRequest());
        pageContext.setAttribute(responseName, scriptHelper.getResponse());
        final Resource resource = scriptHelper.getRequest().getResource();
        pageContext.setAttribute(resourceName, resource);
        pageContext.setAttribute(resourceResolverName, scriptHelper.getRequest().getResourceResolver());
        pageContext.setAttribute(slingName, scriptHelper);
        pageContext.setAttribute(logName, bindings.getLog());
        pageContext.setAttribute(bindingsName, bindings);
        if ( JCR_NODE_CLASS != null ) {
            final Object node = resource.adaptTo(JCR_NODE_CLASS);
View Full Code Here

Examples of org.apache.sling.api.scripting.SlingScriptHelper

    public Object eval(Reader script, ScriptContext scriptContext)
            throws ScriptException {
        Bindings bindings = scriptContext.getBindings(ScriptContext.ENGINE_SCOPE);

        SlingScriptHelper helper = (SlingScriptHelper) bindings.get(SlingBindings.SLING);
        if (helper == null) {
            throw new ScriptException("SlingScriptHelper missing from bindings");
        }

        // ensure GET request
        if (helper.getRequest() != null && !"GET".equals(helper.getRequest().getMethod())) {
            throw new ScriptException(
                "JRuby scripting only supports GET requests");
        }

        final ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
View Full Code Here

Examples of org.apache.sling.api.scripting.SlingScriptHelper

   * @return the classloader
   */
  protected ClassLoader getClassLoader() {
    final SlingBindings bindings = (SlingBindings) pageContext.getRequest()
        .getAttribute(SlingBindings.class.getName());
    final SlingScriptHelper scriptHelper = bindings.getSling();
    final DynamicClassLoaderManager dynamicClassLoaderManager = scriptHelper
        .getService(DynamicClassLoaderManager.class);
    final ClassLoader classLoader = dynamicClassLoaderManager
        .getDynamicClassLoader();
    return classLoader;
  }
View Full Code Here

Examples of org.apache.sling.api.scripting.SlingScriptHelper

    public int doEndTag() throws JspException {
        log.debug("EvalTagHandler doEndTag");

        final SlingBindings bindings = (SlingBindings) pageContext.getRequest().getAttribute(
                SlingBindings.class.getName());
        final SlingScriptHelper scriptHelper = bindings.getSling();
        final ServletResolver servletResolver = scriptHelper.getService(ServletResolver.class);

        final Servlet servlet;
        if ( !this.ignoreResourceTypeHierarchy ) {
            // detecte resource
            final Resource resource;
            if ( this.resource != null ) {
                resource = this.resource;
            } else if ( this.resourceType != null ) {
                resource = new SyntheticResource(bindings.getRequest().getResourceResolver(),
                        bindings.getResource().getPath(), this.resourceType);
            } else {
                resource = bindings.getResource();
            }
            servlet = servletResolver.resolveServlet(resource, this.script);
        } else {
            final ResourceResolver rr = bindings.getRequest().getResourceResolver();
            final String scriptPath;
            if (!script.startsWith("/")) {

                // resolve relative script
                String parentPath = ResourceUtil.getParent(scriptHelper.getScript().getScriptResource().getPath());
                // check if parent resides on search path
                for (String sp: rr.getSearchPath()) {
                    if (parentPath.startsWith(sp)) {
                        parentPath = parentPath.substring(sp.length());
                        break;
                    }
                }
                scriptPath = parentPath + '/' + script;

            } else {

                scriptPath = this.script;
            }
            servlet = servletResolver.resolveServlet(rr, scriptPath);
        }

        if (servlet == null) {
            throw new JspException("Could not find script '" + script + "' referenced in jsp " + scriptHelper.getScript().getScriptResource().getPath());
        }

        try {
            if (flush && !(pageContext.getOut() instanceof BodyContent)) {
                // might throw an IOException of course
View Full Code Here

Examples of org.apache.sling.api.scripting.SlingScriptHelper

                slingObject = new InternalScriptHelper(this.bundleContext, this, this.cache);
            }
        } else if (!(slingObject instanceof SlingScriptHelper) ) {
            throw fail(SLING, "Wrong type");
        }
        final SlingScriptHelper sling = (SlingScriptHelper)slingObject;
        bindings.put(SLING, sling);

        if (request != null) {
          final SlingHttpServletResponse response = slingBindings.getResponse();
            if (response == null) {
                throw fail(RESPONSE, "Missing or wrong type");
            }

            Object resourceObject = slingBindings.get(RESOURCE);
            if (resourceObject != null && !(resourceObject instanceof Resource)) {
                throw fail(RESOURCE, "Wrong type");
            }

            Object writerObject = slingBindings.get(OUT);
            if (writerObject != null && !(writerObject instanceof PrintWriter)) {
                throw fail(OUT, "Wrong type");
            }

            // if there is a provided sling script helper, check arguments
            if (slingBindings.get(SLING) != null) {

                if (sling.getRequest() != request) {
                    throw fail(REQUEST,
                        "Not the same as request field of SlingScriptHelper");
                }

                if (sling.getResponse() != response) {
                    throw fail(RESPONSE,
                        "Not the same as response field of SlingScriptHelper");
                }

                if (resourceObject != null
                    && sling.getRequest().getResource() != resourceObject) {
                    throw fail(RESOURCE,
                        "Not the same as resource of the SlingScriptHelper request");
                }

                if (writerObject != null
                    && sling.getResponse().getWriter() != writerObject) {
                    throw fail(OUT,
                        "Not the same as writer of the SlingScriptHelper response");
                }
            }

            // set base variables when executing inside a request
            bindings.put(REQUEST, sling.getRequest());
            bindings.put(READER, sling.getRequest().getReader());
            bindings.put(RESPONSE, sling.getResponse());
            bindings.put(RESOURCE, sling.getRequest().getResource());
            bindings.put(OUT, sling.getResponse().getWriter());
        }

        Object logObject = slingBindings.get(LOG);
        if (logObject == null) {
            logObject = LoggerFactory.getLogger(getLoggerName());
View Full Code Here

Examples of org.apache.sling.api.scripting.SlingScriptHelper

    if (scriptContext == null) {
      throw new IllegalArgumentException(
          "Method argument scriptContext must not be null.");
    }
        Bindings bindings = scriptContext.getBindings(ScriptContext.ENGINE_SCOPE);
        SlingScriptHelper helper = (SlingScriptHelper) bindings.get(SlingBindings.SLING);
        if (helper == null) {
            throw new ScriptException("SlingScriptHelper missing from bindings");
        }

        String scriptName = helper.getScript().getScriptResource().getPath();

        final ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
       
        try {
          Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
View Full Code Here

Examples of org.apache.sling.api.scripting.SlingScriptHelper

    /** Output the HTML representation, with reference to the actual client-side script */
    public Object eval(Reader script, ScriptContext context) throws ScriptException {

        final Bindings props = context.getBindings(ScriptContext.ENGINE_SCOPE);
        final SlingScriptHelper helper = (SlingScriptHelper) props.get(SlingBindings.SLING);
        final InputStream scriptStream = helper.getScript().getScriptResource().adaptTo(InputStream.class);
       
        try {
            htmlGenerator.generateHtml(helper.getRequest(),
                    helper.getScript().getScriptResource().getPath(), scriptStream,
                    helper.getResponse().getWriter());
                   
        } catch (IOException ioe) {
            throw new ScriptException(ioe);
           
        } catch(RepositoryException re) {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.