Package org.bladerunnerjs.utility

Source Code of org.bladerunnerjs.utility.BundleSetRequestHandler$Messages

package org.bladerunnerjs.utility;

import org.bladerunnerjs.logging.Logger;
import org.bladerunnerjs.model.App;
import org.bladerunnerjs.model.BundlableNode;
import org.bladerunnerjs.model.BundleSet;
import org.bladerunnerjs.model.UrlContentAccessor;
import org.bladerunnerjs.model.ParsedContentPath;
import org.bladerunnerjs.model.engine.NamedNode;
import org.bladerunnerjs.model.exception.request.ContentProcessingException;
import org.bladerunnerjs.model.exception.request.MalformedRequestException;
import org.bladerunnerjs.model.exception.request.ResourceNotFoundException;
import org.bladerunnerjs.plugin.ResponseContent;
import org.bladerunnerjs.plugin.ContentPlugin;


public class BundleSetRequestHandler {
  // TODO: these messages need to be covered off in a spec test (a single test would be perfect)
  public class Messages {
    public static final String REQUEST_HANDLED_MSG = "Handling logical request '%s' for app '%s'.";
    public static final String CONTEXT_IDENTIFIED_MSG = "%s '%s' identified as context for request '%s'.";
    public static final String BUNDLER_IDENTIFIED_MSG = "Bundler '%s' identified as handler for request '%s'.";
  }
 
  public static ResponseContent handle(BundleSet bundleSet, String logicalRequestpath, UrlContentAccessor contentAccessor, String version) throws MalformedRequestException, ResourceNotFoundException, ContentProcessingException {
    BundlableNode bundlableNode = bundleSet.getBundlableNode();
    App app = bundlableNode.app();
    Logger logger = app.root().logger(BundleSetRequestHandler.class);
   
    logger.debug(Messages.REQUEST_HANDLED_MSG, logicalRequestpath, app.getName());
   
    String name = (bundlableNode instanceof NamedNode) ? ((NamedNode) bundlableNode).getName() : "default";
    logger.debug(Messages.CONTEXT_IDENTIFIED_MSG, bundlableNode.getTypeName(), name, logicalRequestpath);
   
    ContentPlugin contentProvider = app.root().plugins().contentPluginForLogicalPath(logicalRequestpath);
   
    if(contentProvider == null) {
      throw new ResourceNotFoundException("No content provider could be found found the logical request path '" + logicalRequestpath + "'");
    }
   
    logger.debug(Messages.BUNDLER_IDENTIFIED_MSG, contentProvider.getPluginClass().getSimpleName(), logicalRequestpath);
   
    ParsedContentPath contentPath = contentProvider.getContentPathParser().parse(logicalRequestpath);
    return contentProvider.handleRequest(contentPath, bundleSet, contentAccessor, version);
  }
}
TOP

Related Classes of org.bladerunnerjs.utility.BundleSetRequestHandler$Messages

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.