Class RouterHandler
- java.lang.Object
- 
- org.forgerock.openig.handler.router.RouterHandler
 
- 
- All Implemented Interfaces:
- Handler
 
 public class RouterHandler extends Object implements Handler Auto-configuredDispatchHandler. It looks for route configuration files (very similar to the usual general config file) in a defined directory (by default it looks in config/routes/).
 Note that scanInterval can be defined in 2 ways :{ "name": "Router", "type": "Router", "config": { "directory": "/tmp/routes", "defaultHandler": "404NotFound", "scanInterval": 2 or "2 seconds" } }- as an integer, which defines the number of seconds. If -1 (or any negative value) is provided, only an initial scan is performed at startup, synchronously.
- as a duration. If "disabled" or "zero" is provided, only an initial scan is performed at startup, synchronously.
 - Since:
- 2.2
 
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description static classRouterHandler.HeapletCreates and initializes a routing handler in a heap environment.
 - 
Constructor SummaryConstructors Constructor Description RouterHandler(org.forgerock.openig.handler.router.RouteBuilder builder, org.forgerock.openig.handler.router.DirectoryMonitor directoryMonitor, org.forgerock.monitoring.api.instrument.MeterRegistry routerMeterRegistry)Builds a router that loads its configuration from the given directory.RouterHandler(org.forgerock.openig.handler.router.RouteBuilder builder, org.forgerock.openig.handler.router.DirectoryMonitor directoryMonitor, org.forgerock.monitoring.api.instrument.MeterRegistry routerMeterRegistry, Handler defaultHandler)Builds a router that loads its configuration from the given directory.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddeploy(String routeId, String routeName, JsonValue routeConfig)Deploy a route, meaning that it loads it but also stores it in a file.Promise<Response,NeverThrowsException>handle(Context context, Request request)voidonChanges(org.forgerock.openig.handler.router.FileChangeSet changes)voidstop()Stops this handler, shutting down and clearing all the managed routes.JsonValueundeploy(String routeId)Undeploy a route, meaning that it unloads it but also deletes the associated file.voidupdate(String routeId, String routeName, JsonValue routeConfig)Update a route.
 
- 
- 
- 
Constructor Detail- 
RouterHandlerpublic RouterHandler(org.forgerock.openig.handler.router.RouteBuilder builder, org.forgerock.openig.handler.router.DirectoryMonitor directoryMonitor, org.forgerock.monitoring.api.instrument.MeterRegistry routerMeterRegistry)Builds a router that loads its configuration from the given directory.- Parameters:
- builder- route builder
- directoryMonitor- the directory monitor
- routerMeterRegistry- The router's meter registry
 
 - 
RouterHandlerpublic RouterHandler(org.forgerock.openig.handler.router.RouteBuilder builder, org.forgerock.openig.handler.router.DirectoryMonitor directoryMonitor, org.forgerock.monitoring.api.instrument.MeterRegistry routerMeterRegistry, Handler defaultHandler)Builds a router that loads its configuration from the given directory.- Parameters:
- builder- route builder
- directoryMonitor- the directory monitor
- routerMeterRegistry- The router's meter registry
- defaultHandler- the handler which should be invoked when no route matches the request
 
 
- 
 - 
Method Detail- 
stoppublic void stop() Stops this handler, shutting down and clearing all the managed routes.
 - 
deploypublic void deploy(String routeId, String routeName, JsonValue routeConfig) throws RouterHandlerException Deploy a route, meaning that it loads it but also stores it in a file.- Parameters:
- routeId- the id of the route to deploy
- routeName- the name of the route to deploy
- routeConfig- the configuration of the route to deploy
- Throws:
- RouterHandlerException- if the given routeConfig is not valid
 
 - 
undeploypublic JsonValue undeploy(String routeId) throws RouterHandlerException Undeploy a route, meaning that it unloads it but also deletes the associated file.- Parameters:
- routeId- the id of the route to remove
- Returns:
- the configuration of the undeployed route
- Throws:
- RouterHandlerException- if the given routeId is not valid
 
 - 
updatepublic void update(String routeId, String routeName, JsonValue routeConfig) throws RouterHandlerException Update a route.- Parameters:
- routeId- the id of the route to update
- routeName- the name of the route to update
- routeConfig- the new route's configuration
- Throws:
- RouterHandlerException- if the given routeConfig is not valid
 
 - 
handlepublic Promise<Response,NeverThrowsException> handle(Context context, Request request) Description copied from interface:HandlerReturns aPromiserepresenting the asynchronousResponseof the givenrequest. If any (asynchronous) processing goes wrong, the promise still contains aResponse(probably from the 4xx or 5xx status code family).A handler that doesn't hand-off the processing to another downstream handler is responsible for creating the response. The returned Promisecontains the response returned from the server as-is. This is responsibility of the handler to produce the appropriate error response (404, 500, ...) in case of processing error.Note: As of Promise 2.0 implementation, it is not permitted to throw any runtime exception here. Doing so produce unexpected behaviour (most likely a server-side hang of the processing thread). 
 - 
onChangespublic void onChanges(org.forgerock.openig.handler.router.FileChangeSet changes) 
 
- 
 
-