private ScriptsServer(final ServerConfiguration configuration) throws IOException { final ExecutorService executorService = Executors.newCachedThreadPool(); final GenericServerBuilder builder = GenericServer.of(configuration, executorService); final Set<String> services = new HashSet<>(); services.add(ClusterServiceInterface.SERVICE_NAME); services.add(ScriptServiceInterface.SERVICE_NAME); services.add(LibraryServiceInterface.SERVICE_NAME); final ApplicationBuilder webServices = ApplicationBuilder.of("/*") .classes(RestApplication.JSON_CLASSES) .singletons(new WelcomeShutdownService()); final ClusterManager clusterManager = new ClusterManager(executorService, configuration).registerProtocolListener(builder, services); webServices.singletons(clusterManager.getService()); final LibraryManager libraryManager = new LibraryManager(configuration.dataDirectory, configuration.getEtcFiles(), null); builder.shutdownListener(server -> libraryManager.close()); final LibraryServiceInterface libraryService = libraryManager.getService(); webServices.singletons(libraryService); final ScriptManager scriptManager = new ScriptManager(executorService, clusterManager, libraryService, configuration.dataDirectory); webServices.singletons(scriptManager.getService()); scriptServiceBuilder = new ScriptServiceBuilder(executorService, clusterManager, scriptManager); builder.getWebServiceContext().jaxrs(webServices); server = builder.build(); }
new LibraryManager(configuration.dataDirectory, configuration.getEtcFiles()); builder.shutdownListener(server -> libraryManager.close()); webServices.singletons(libraryManager.getService()); .registerDefaultFaviconServlet() .persistSessions(configuration.tempDirectory.resolve(WebappManager.SESSIONS_PERSISTENCE_DIR)) .webappDefinition(configuration.dataDirectory, WebappDefinition.load(configuration.getEtcFiles()));