All Downloads are FREE. Search and download functionalities are using the official Maven repository.

public.javadoc.org.spincast.plugins.routing.SpincastRouter.html Maven / Gradle / Ivy

There is a newer version: 2.2.0
Show newest version






SpincastRouter (org.spincast:spincast-framework 1.0.0 API)












org.spincast.plugins.routing

Class SpincastRouter<R extends RequestContext<?>,W extends WebsocketContext<?>>

    • Field Detail

      • logger

        protected final org.slf4j.Logger logger
    • Constructor Detail

    • Method Detail

      • init

        @Inject
        protected void init()
      • validation

        protected void validation()
      • addDefaultFilters

        protected void addDefaultFilters()
      • getDictionary

        protected Dictionary getDictionary()
      • getServer

        protected Server getServer()
      • getGlobalBeforeFiltersPerPosition

        protected Map<Integer,List<Route<R>>> getGlobalBeforeFiltersPerPosition()
      • getGlobalAfterFiltersPerPosition

        protected Map<Integer,List<Route<R>>> getGlobalAfterFiltersPerPosition()
      • validateId

        protected void validateId(String id)
      • validatePath

        protected void validatePath(String path)
        Validate the path of a route. Throws an exception if not valide.
      • removeAllRoutes

        public void removeAllRoutes(boolean removeSpincastAndPluginsRoutesToo)
        Description copied from interface: Router
        Removes all routes.
        Specified by:
        removeAllRoutes in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        Parameters:
        removeSpincastAndPluginsRoutesToo - Should the routes added by Spincast and plugins be removed too?
      • startsWithAnyOf

        protected boolean startsWithAnyOf(String id,
                                          Set<String> prefixes)
      • route

        public RoutingResult<R> route(R requestContext)
        Description copied from interface: Router
        Find the route to use to handle the current request. The result contains all handlers to use.
        Specified by:
        route in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        Returns:
        the routing result or null if no route matches.
      • route

        public RoutingResult<R> route(R requestContext,
                                      RoutingType routingType)
        Description copied from interface: Router
        Find the route to use to handle the current request, given the specified routing type. The result contains all handlers to use.
        Specified by:
        route in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        Returns:
        the routing result or null if no route matches.
      • isRoutingTypeMatch

        protected boolean isRoutingTypeMatch(RoutingType routingType,
                                             Route<R> route)
      • isMustSkipResourceRequest

        protected boolean isMustSkipResourceRequest(Route<R> mainRoute,
                                                    Route<R> filterRoute)
      • createRegularHandlerMatches

        protected List<RouteHandlerMatch<R>> createRegularHandlerMatches(RoutingType routingType,
                                                                         Route<R> route,
                                                                         HttpMethod httpMethod,
                                                                         List<String> acceptedContentTypes,
                                                                         URL url,
                                                                         int position)
        Get the matches (filters and main handle) if the route matches the URL and HTTP method, or returns NULL otherwise.
      • isRouteMatchAcceptedContentType

        protected boolean isRouteMatchAcceptedContentType(Route<R> route,
                                                          List<String> requestContentTypes)
      • createNoMatchingParamsHandlerMatch

        protected RouteHandlerMatch<R> createNoMatchingParamsHandlerMatch(Route<R> route,
                                                                          String id,
                                                                          Handler<R> handler,
                                                                          int position)
        Creates an handler match with no matching params.
      • createHandlerMatchForBeforeOrAfterFilter

        protected RouteHandlerMatch<R> createHandlerMatchForBeforeOrAfterFilter(RouteHandlerMatch<R> mainRouteHandlerMatch,
                                                                                Handler<R> beforeOrAfterMethod,
                                                                                int position)
        Creates a new match for a "before" or "after" handler specific to a route. THis measn keeping the same informations as the main handler.
      • isRouteMatchHttpMethod

        protected boolean isRouteMatchHttpMethod(Route<R> route,
                                                 HttpMethod httpMethod)
        Validate if a route matches the given HTTP method.
      • validatePath

        protected Map<String,String> validatePath(String routePath,
                                                  URL url)
        Validate if url matches the path of the route and if so, returns the parsed parameters, if any. Returns NULL if there is no match.
      • getPatternFromAlias

        protected String getPatternFromAlias(String alias)
        Get a path pattern from its alias.
        Returns:
        the pattern or NULL if not found.
      • addRouteParamPatternAlias

        public void addRouteParamPatternAlias(String alias,
                                              String pattern)
        Description copied from interface: Router
        Adds an alias for a path pattern. For example, the path of a route may be "/${param1:<XXX>}" : here "XXX" is the alias for the regular expression pattern to use.
        Specified by:
        addRouteParamPatternAlias in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
      • exception

        public void exception(Handler<R> handler)
        Description copied from interface: Router
        Creates a route considered during an "Exception" routing process.

        Synonym of :

        ALL("/*{path}").exception().handle(handler)

        Specified by:
        exception in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
      • exception

        public void exception(String path,
                              Handler<R> handler)
        Description copied from interface: Router
        Creates a route considered during an "Exception" routing process.

        Synonym of :

        ALL(path).exception().handle(handler)

        Specified by:
        exception in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
      • notFound

        public void notFound(Handler<R> handler)
        Description copied from interface: Router
        Creates a route considered during an "Not Found" routing process.

        Synonym of :

        ALL("/*{path}").notFound().handle(handler)

        Specified by:
        notFound in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
      • notFound

        public void notFound(String path,
                             Handler<R> handler)
        Description copied from interface: Router
        Creates a route considered during an "Not Found" routing process.

        Synonym of :

        ALL(path).notFound().handle(handler)

        Specified by:
        notFound in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
      • cors

        public void cors()
        Description copied from interface: Router
        Enables Cross-Origin Resource Sharing (Cors) on all matching requests (except the static resources, for whom cors has to be activated directly!)
        Specified by:
        cors in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        See Also:
        SpincastFilters#cors(R context)
      • cors

        public void cors(Set<String> allowedOrigins)
        Description copied from interface: Router
        Enables Cross-Origin Resource Sharing (Cors) on matching requests (except the static resources, for whom cors has to be activated directly!)
        Specified by:
        cors in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        See Also:
        SpincastFilters#cors(R context, Set<String> allowedOrigins)
      • cors

        public void cors(Set<String> allowedOrigins,
                         Set<String> extraHeadersAllowedToBeRead)
        Description copied from interface: Router
        Enables Cross-Origin Resource Sharing (Cors) on matching requests (except the static resources, for whom cors has to be activated directly!)
        Specified by:
        cors in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        See Also:
        SpincastFilters#cors(R context, Set<String> allowedOrigins, Set<String> extraHeadersAllowedToBeReadt)
      • cors

        public void cors(Set<String> allowedOrigins,
                         Set<String> extraHeadersAllowedToBeRead,
                         Set<String> extraHeadersAllowedToBeSent)
        Description copied from interface: Router
        Enables Cross-Origin Resource Sharing (Cors) on matching requests (except the static resources, for whom cors has to be activated directly!)
        Specified by:
        cors in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        See Also:
        SpincastFilters#cors(R context, Set<String> allowedOrigins, Set<String> extraHeadersAllowedToBeRead, Set<String> extraHeadersAllowedToBeSent)
      • cors

        public void cors(Set<String> allowedOrigins,
                         Set<String> extraHeadersAllowedToBeRead,
                         Set<String> extraHeadersAllowedToBeSent,
                         boolean allowCookies)
        Description copied from interface: Router
        Enables Cross-Origin Resource Sharing (Cors) on matching requests (except the static resources, for whom cors has to be activated directly!)
        Specified by:
        cors in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        See Also:
        SpincastFilters#cors(R context, Set<String> allowedOrigins, Set<String> extraHeadersAllowedToBeRead, Set<String> extraHeadersAllowedToBeSent, boolean allowCookies)
      • cors

        public void cors(Set<String> allowedOrigins,
                         Set<String> extraHeadersAllowedToBeRead,
                         Set<String> extraHeadersAllowedToBeSent,
                         boolean allowCookies,
                         Set<HttpMethod> allowedMethods)
        Description copied from interface: Router
        Enables Cross-Origin Resource Sharing (Cors) on matching requests (except the static resources, for whom cors has to be activated directly!)
        Specified by:
        cors in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        See Also:
        SpincastFilters#cors(R context, Set<String> allowedOrigins, Set<String> extraHeadersAllowedToBeRead, Set<String> extraHeadersAllowedToBeSent, boolean allowCookies, Set<HttpMethod> allowedMethods)
      • cors

        public void cors(Set<String> allowedOrigins,
                         Set<String> extraHeadersAllowedToBeRead,
                         Set<String> extraHeadersAllowedToBeSent,
                         boolean allowCookies,
                         Set<HttpMethod> allowedMethods,
                         int maxAgeInSeconds)
        Description copied from interface: Router
        Enables Cross-Origin Resource Sharing (Cors) on matching requests (except the static resources, for whom cors has to be activated directly!)
        Specified by:
        cors in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        See Also:
        SpincastFilters#cors(R context, Set<String> allowedOrigins, Set<String> extraHeadersAllowedToBeRead, Set<String> extraHeadersAllowedToBeSent, boolean allowCookies, Set<HttpMethod> allowedMethods, int maxAgeInSeconds)
      • cors

        public void cors(String path)
        Description copied from interface: Router
        Enables Cross-Origin Resource Sharing (Cors) on all requests matching the specified path (except the static resources, for whom cors has to be activated directly!)
        Specified by:
        cors in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        See Also:
        SpincastFilters#cors(R context)
      • cors

        public void cors(String path,
                         Set<String> allowedOrigins)
        Description copied from interface: Router
        Enables Cross-Origin Resource Sharing (Cors) on requests matching the specified path (except the static resources, for whom cors has to be activated directly!)
        Specified by:
        cors in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        See Also:
        SpincastFilters#cors(R context, Set<String> allowedOrigins)
      • cors

        public void cors(String path,
                         Set<String> allowedOrigins,
                         Set<String> extraHeadersAllowedToBeRead)
        Description copied from interface: Router
        Enables Cross-Origin Resource Sharing (Cors) on requests matching the specified path (except the static resources, for whom cors has to be activated directly!)
        Specified by:
        cors in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        See Also:
        SpincastFilters#cors(R context, Set<String> allowedOrigins, Set<String> extraHeadersAllowedToBeRead)
      • cors

        public void cors(String path,
                         Set<String> allowedOrigins,
                         Set<String> extraHeadersAllowedToBeRead,
                         Set<String> extraHeadersAllowedToBeSent)
        Description copied from interface: Router
        Enables Cross-Origin Resource Sharing (Cors) on requests matching the specified path (except the static resources, for whom cors has to be activated directly!)
        Specified by:
        cors in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        See Also:
        SpincastFilters#cors(R context, Set<String> allowedOrigins, Set<String> extraHeadersAllowedToBeRead, Set<String> extraHeadersAllowedToBeSent)
      • cors

        public void cors(String path,
                         Set<String> allowedOrigins,
                         Set<String> extraHeadersAllowedToBeRead,
                         Set<String> extraHeadersAllowedToBeSent,
                         boolean allowCookies)
        Description copied from interface: Router
        Enables Cross-Origin Resource Sharing (Cors) on requests matching the specified path (except the static resources, for whom cors has to be activated directly!)
        Specified by:
        cors in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        See Also:
        SpincastFilters#cors(R context, Set<String> allowedOrigins, Set<String> extraHeadersAllowedToBeRead, Set<String> extraHeadersAllowedToBeSent, boolean allowCookies)
      • cors

        public void cors(String path,
                         Set<String> allowedOrigins,
                         Set<String> extraHeadersAllowedToBeRead,
                         Set<String> extraHeadersAllowedToBeSent,
                         boolean allowCookies,
                         Set<HttpMethod> allowedMethods)
        Description copied from interface: Router
        Enables Cross-Origin Resource Sharing (Cors) on requests matching the specified path (except the static resources, for whom cors has to be activated directly!)
        Specified by:
        cors in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        See Also:
        SpincastFilters#cors(R context, Set<String> allowedOrigins, Set<String> extraHeadersAllowedToBeRead, Set<String> extraHeadersAllowedToBeSent, boolean allowCookies, Set<HttpMethod> allowedMethods)
      • cors

        public void cors(String path,
                         Set<String> allowedOrigins,
                         Set<String> extraHeadersAllowedToBeRead,
                         Set<String> extraHeadersAllowedToBeSent,
                         boolean allowCookies,
                         Set<HttpMethod> allowedMethods,
                         int maxAgeInSeconds)
        Description copied from interface: Router
        Enables Cross-Origin Resource Sharing (Cors) on requests matching the specified path (except the static resources, for whom cors has to be activated directly!)
        Specified by:
        cors in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        See Also:
        SpincastFilters#cors(R context, Set<String> allowedOrigins, Set<String> extraHeadersAllowedToBeRead, Set<String> extraHeadersAllowedToBeSent, boolean allowCookies, Set<HttpMethod> allowedMethods, int maxAgeInSeconds)
      • file

        public StaticResourceBuilder<R> file(String url)
        Description copied from interface: Router
        Start the creation of a static resource file.

        Only a GET or a HEAD request will be able to access this resource.

        No "before" and "after" filters will be applied to those, since the request won't even reach the framework.

        Specified by:
        file in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        Parameters:
        url - The url which will trigger the output of this static resource.
      • dir

        public StaticResourceBuilder<R> dir(String url)
        Description copied from interface: Router
        Start the creation of a static resource directory.

        Only a GET or a HEAD request will be able to access the resources below this directory.

        No "before" and "after" filters will be applied to those, since the request won't even reach the framework.

        Specified by:
        dir in interface Router<R extends RequestContext<?>,W extends WebsocketContext<?>>
        Parameters:
        url - The url which will trigger the output of this static resource.
      • isCreateStaticResourceOnDisk

        protected boolean isCreateStaticResourceOnDisk()
      • createHttpRouteFromWebsocketRoute

        protected Route<R> createHttpRouteFromWebsocketRoute(WebsocketRoute<R,W> websocketRoute)

Copyright © 2019. All rights reserved.





© 2015 - 2024 Weber Informatics LLC | Privacy Policy