Java 类play.mvc.Router 实例源码

项目:swagger-play    文件:SwaggerPlugin.java   
@Override
public void onApplicationStart() {

    final Set<Class<?>> resourceClasses = 
            ApiHelpInventory.getInstance().getRootResources();      

    if (resourceClasses.size() > 0) {

        Map<String, Route> router = new HashMap<>();

        for(Route route : Router.routes){   
            router.put(route.action, route);
        }

        RouteWrapper routeWrapper = new RouteWrapper(router);
        RouteFactory.setRoute(routeWrapper);

        PlaySwaggerConfig playSwaggerConfig = new PlaySwaggerConfig();          
        PlayConfigFactory.setConfig(playSwaggerConfig);

        Router.prependRoute("GET", RESOURCES_JSON, "ApiHelpController.catchAll");
        Logger.info("Swagger: Added ROOT help api @ " + RESOURCES_JSON);
    }
}
项目:MyDMAM    文件:JSSourceModule.java   
ArrayList<String> getTransformedFilesRelativeURLs() throws IOException {
    ArrayList<JSSourceDatabaseEntry> all_entries = getDatabase().getSortedEntries();
    ArrayList<String> results = new ArrayList<String>(all_entries.size() + 1);
    String url;

    if (reduced_declaration_file.exists()) {
        try {
            url = Router.reverse(VirtualFile.open(reduced_declaration_file));
            results.add(url);
        } catch (NoRouteFoundException e) {
            throw new IOException("Play can't resolve route for " + reduced_declaration_file.getPath());
        }
    }

    File transformed_file;
    for (int pos = 0; pos < all_entries.size(); pos++) {
        transformed_file = all_entries.get(pos).computeTransformedFilepath(module_path, transformed_directory);
        if (transformed_file.exists() == false) {
            Loggers.Play_JSSource.warn("A transformed file don't exists: " + transformed_file);
            continue;
        }
        url = Router.reverse(VirtualFile.open(transformed_file));
        results.add(url);
    }
    return results;
}
项目:MyDMAM    文件:HeaderJS.java   
/**
 * @param hashtag_to_add (should be start with #)
 */
void pack(String hashtag_to_add) {
    if (url != null) {
        return;
    }
    if (hashtag_to_add == null) {
        hashtag_to_add = "";
    }

    try {
        if (controler_args.isEmpty()) {
            url = Router.reverse(controler_name).url + hashtag_to_add;
        } else {
            url = Router.reverse(controler_name, controler_args).url + hashtag_to_add;
        }
    } catch (NoRouteFoundException e) {
        Loggers.Play.error("Can't found route for " + controler_name);
        return;
    }
}
项目:play-web    文件:WebContentPlugin.java   
@Override public void onApplicationStart() {
  genericRouteIndex = Router.routes.size();
  for (int i = 0; i < Router.routes.size(); i++) {
    Router.Route route = Router.routes.get(i);
    if (route.action.startsWith("{controller}")) {
      genericRouteIndex = i; break;
    }
  }

  addWebRoutes(WebPage.ROOT.children());

  for (WebPage page : WebPage.all()) {
    String alias = page.metadata.getProperty("alias");
    if (isNotEmpty(alias)) {
      if (!alias.startsWith("/")) alias = "/" + alias;
      Router.appendRoute("GET", alias + "/?", "Web." + WEB_REDIRECT_ALIAS_METHOD, "{path:'" + page.path + "'}", null, null, 0);
    }

    if ("news".equals(page.metadata.getProperty("template"))) {
      WebPage.News.pathPrefixes.add(page.path.replaceFirst("/$", ""));
      Router.addRoute(genericRouteIndex, "GET", page.path + ".*", "Web." + WEB_NEWS_METHOD, null);
    }
  }

  lastModified = WebPage.ROOT.dir.lastModified();
}
项目:play-web    文件:WebContentPluginTest.java   
@Before
public void setUp() {
  Play.configuration.clear();
  Http.Request.current.set(request = newHttpRequest());
  Http.Response.current.set(response = new Http.Response());
  Scope.Session.current.set(new Scope.Session());
  Scope.RenderArgs.current.set(new Scope.RenderArgs());
  request.path = "/";
  Play.langs.add("en");
  Play.langs.add("ru");
  Play.mode = DEV;
  Router.routes.clear();
  plugin = new WebContentPlugin();
  pages = asList(forPath("/en/marketing/"), forPath("/ru/marketing/"));
  resetWebCacheSetting();
}
项目:restcommander    文件:TestRunnerPlugin.java   
@Override
public void onRoutesLoaded() {
    Router.addRoute("GET", "/@tests", "TestRunner.index");
    Router.addRoute("GET", "/@tests.list", "TestRunner.list");
    Router.addRoute("GET", "/@tests/{<.*>test}", "TestRunner.run");
    Router.addRoute("POST", "/@tests/{<.*>test}", "TestRunner.saveResult");
    Router.addRoute("GET", "/@tests/emails", "TestRunner.mockEmail");
    Router.addRoute("GET", "/@tests/cache", "TestRunner.cacheEntry");
}
项目:restcommander    文件:SearchPlugin.java   
@Override
public void onRoutesLoaded() {
    if (Play.configuration.contains("play.search.password" ) || Play.mode == Play.Mode.DEV) {
        Router.addRoute("GET", "/@search/?", "modules.search.Administration.index");
        Router.addRoute("GET", "/@search/optimize/{name}", "modules.search.Administration.optimize");
        Router.addRoute("GET", "/@search/reindex/{name}", "modules.search.Administration.reindex");
        Router.addRoute("GET", "/@search/reopen/{name}", "modules.search.Administration.reopen");
    }
}
项目:restcommander    文件:Play.java   
/**
 * Stop the application
 */
public static synchronized void stop() {
    if (started) {
        Logger.trace("Stopping the play application");
        pluginCollection.onApplicationStop();
        started = false;
        Cache.stop();
        Router.lastLoading = 0L;
    }
}
项目:restcommander    文件:ServletWrapper.java   
private static synchronized void loadRouter(String contextPath) {
    // Reload the rules, but this time with the context. Not really efficient through...
    // Servlet 2.4 does not allow you to get the context path from the servletcontext...
    if (routerInitializedWithContext) return;
    Play.ctxPath = contextPath;
    Router.load(contextPath);
    routerInitializedWithContext = true;
}
项目:MyDMAM    文件:JSSourceModule.java   
public String getConcatedFileRelativeURL() throws IOException {
    CopyMove.checkExistsCanRead(allfiles_concated_file);

    HashMap<String, Object> args = new HashMap<String, Object>(2);
    args.put("name", allfiles_concated_file.getName());
    args.put("suffix_date", allfiles_concated_file.lastModified() / 1000);
    return Router.reverse(AsyncJavascript.class.getName() + "." + "JavascriptRessource", args).url;
}
项目:MyDMAM    文件:HeaderJS.java   
/**
 * Not need to pack.
 */
void setStaticFile(String relative_file) {
    try {
        url = Router.reverse(VirtualFile.fromRelativePath(relative_file));
    } catch (NoRouteFoundException e) {
        Loggers.Play.error("Can't found route for " + relative_file);
        url = "/";
    }
}
项目:play-web    文件:WebContentPlugin.java   
void addWebRoutes(List<WebPage> pages) {
  for (WebPage page : pages) {
    String path = page.path;
    if (path.endsWith("/")) path = substring(path, 0, -1);
    Router.addRoute(genericRouteIndex, "GET", path + "/?.*", "Web." + WEB_CONTENT_METHOD, null);
    if (cacheEnabled())  // cache top-level pages on production
      Router.addRoute(genericRouteIndex, "GET", path + "/", "Web." + WEB_CACHED_CONTENT_METHOD, null);
  }
}
项目:play-accesslog    文件:AccessLogPlugin.java   
@Override
public void onRoutesLoaded() {
    Router.prependRoute("GET", "/@accesslog", "AccessLogs.index");
    Router.prependRoute("WS", "/@accesslog/logs", "AccessLogWebsockets.logs");
}
项目:play-profiler    文件:ProfilerPlugin.java   
@Override
public void onRoutesLoaded() {
    Router.addRoute("GET", "/@profiler/results", "ProfilerActions.results");
    Router.addRoute("GET", "/@profiler/public/", "staticDir:public/");
}
项目:restcommander    文件:CRUD.java   
public Object getListAction() {
    return Router.reverse(controllerClass.getName().replace("$", "") + ".list");
}
项目:restcommander    文件:CRUD.java   
public Object getBlankAction() {
    return Router.reverse(controllerClass.getName().replace("$", "") + ".blank");
}
项目:restcommander    文件:GroovyTemplate.java   
private String __reverseWithCheck(String action, boolean absolute) {
    return Router.reverseWithCheck(action, Play.getVirtualFile(action), absolute);
}
项目:restcommander    文件:ServletWrapper.java   
public static Request parseRequest(HttpServletRequest httpServletRequest) throws Exception {

        URI uri = new URI(httpServletRequest.getRequestURI());
        String method = httpServletRequest.getMethod().intern();
        String path = uri.getPath();
        String querystring = httpServletRequest.getQueryString() == null ? "" : httpServletRequest.getQueryString();

        if (Logger.isTraceEnabled()) {
            Logger.trace("httpServletRequest.getContextPath(): " + httpServletRequest.getContextPath());
            Logger.trace("request.path: " + path + ", request.querystring: " + querystring);
        }

        String contentType = null;
        if (httpServletRequest.getHeader("Content-Type") != null) {
            contentType = httpServletRequest.getHeader("Content-Type").split(";")[0].trim().toLowerCase().intern();
        } else {
            contentType = "text/html".intern();
        }

        if (httpServletRequest.getHeader("X-HTTP-Method-Override") != null) {
            method = httpServletRequest.getHeader("X-HTTP-Method-Override").intern();
        }

        InputStream body = httpServletRequest.getInputStream();
        boolean secure = httpServletRequest.isSecure();

        String url = uri.toString() + (httpServletRequest.getQueryString() == null ? "" : "?" + httpServletRequest.getQueryString());
        String host = httpServletRequest.getHeader("host");
        int port = 0;
        String domain = null;
        if (host.contains(":")) {
            port = Integer.parseInt(host.split(":")[1]);
            domain = host.split(":")[0];
        } else {
            port = 80;
            domain = host;
        }

        String remoteAddress = httpServletRequest.getRemoteAddr();

        boolean isLoopback = host.matches("^127\\.0\\.0\\.1:?[0-9]*$");


        final Request request = Request.createRequest(
                remoteAddress,
                method,
                path,
                querystring,
                contentType,
                body,
                url,
                host,
                isLoopback,
                port,
                domain,
                secure,
                getHeaders(httpServletRequest),
                getCookies(httpServletRequest));


        Request.current.set(request);
        Router.routeOnlyStatic(request);

        return request;
    }
项目:restcommander    文件:PluginCollection.java   
public void onRequestRouting(Router.Route route){
    for (PlayPlugin plugin : getEnabledPlugins()) {
        plugin.onRequestRouting(route);
    }
}
项目:play-web    文件:WebContentPluginTest.java   
private void assertCached(String url) {
  assertEquals("Web.serveContentCached", Router.route("GET", url).get("action"));
}
项目:play-web    文件:WebContentPluginTest.java   
private void assertNonCached(String url) {
  assertEquals("Web.serveContent", Router.route("GET", url).get("action"));
}