public void parallelBehavior(GreenRuntime runtime) { SimpleRest restTest = new SimpleRest(runtime, jsonMaxResponseCount, jsonMaxResponseSize); runtime.registerListener("Simple", restTest) .includeRoutes(Struct.PLAINTEXT_ROUTE, restTest::plainRestRequest) .includeRoutes(Struct.JSON_ROUTE, restTest::jsonRestRequest); DBRest dbRestInstance = new DBRest(runtime, options, pipelineBits, dbCallMaxResponseCount, dbCallMaxResponseSize); runtime.registerListener("DBReadWrite", dbRestInstance) .includeRoutes(Struct.DB_SINGLE_ROUTE, dbRestInstance::singleRestRequest) .includeRoutes(Struct.DB_MULTI_ROUTE_TEXT, dbRestInstance::multiRestRequest) .includeRoutes(Struct.DB_MULTI_ROUTE_INT, dbRestInstance::multiRestRequest) .includeRoutes(Struct.UPDATES_ROUTE_TEXT, dbRestInstance::updateRestRequest) .includeRoutes(Struct.UPDATES_ROUTE_INT, dbRestInstance::updateRestRequest) .includeRoutes(Struct.FORTUNES_ROUTE, dbRestInstance::restFortuneRequest); }
@Override public void declareBehavior(GreenRuntime runtime) { //in most cases the behavior need not be a local variable but we are using methods off the object //to respond to specific published topics. To do this the object is required. ProductsBehavior listener = new ProductsBehavior(runtime, maxProductId); runtime.registerListener(listener) .includeRoutes(Struct.PRODUCT_UPDATE, listener::productUpdate) .includeRoutes(Struct.ALL_PRODUCTS, listener::productAll) .includeRoutes(Struct.PRODUCT_QUERY, listener::productQuery); runtime.addResourceServer("/site","index.html").includeRoutesByAssoc(Struct.STATIC_PAGES); } }
@Override public void declareBehavior(GreenRuntime runtime) { //runtime.addRestListener(new RestBehaviorEmptyResponse(runtime, "myarg", console)) // .includeRoutes(emptyResponseRouteId); runtime.addRestListener(new RestBehaviorSmallResponse(runtime, console)) .includeRoutes(smallResponseRouteId); // runtime.addRestListener(new RestBehaviorLargeResponse(runtime, console)) // .includeRoutes(largeResponseRouteId); // runtime.addRestListener(new RestBehaviorHandoff(runtime, "responder")) // .includeRoutes(splitResponseRouteId); //runtime.addPubSubListener(new RestBehaviorHandoffResponder(runtime, console)) // .addSubscription("responder"); //splitResponseRouteId runtime.addRestListener(new ShutdownRestListener(runtime, keyFieldId)) .includeRoutes(shutdownRouteId); //NOTE .includeAllRoutes() can be used to write a behavior taking all routes }
@Override public void declareBehavior(GreenRuntime runtime) { ProductsBehavior listener = new ProductsBehavior(runtime, maxProductId, BEGIN_TOPIC, server); runtime.registerListener(listener) .includeRoutes(Struct.PRODUCT_UPDATE, listener::productUpdate) .includeRoutes(Struct.ALL_PRODUCTS, listener::productAll) .includeRoutes(Struct.PRODUCT_QUERY, listener::productQuery); int threads = 40; runtime.registerBlockingListener(new BlockingProducer(dbURL), Field.CONNECTION, threads, BEGIN_TOPIC, FINISHED_TOPIC); runtime.addPubSubListener(new RestResponder(runtime)).addSubscription(FINISHED_TOPIC); runtime.addResourceServer("/site","index.html").includeRoutesByAssoc(Struct.STATIC_PAGES); }