/** {@inheritDoc} */ @Override protected void buildFeatures() { getModuleConfigBuilder() .addComponent(AnalyticsManager.class, AnalyticsManagerImpl.class) .addComponent(CodecManager.class, CodecManagerImpl.class) .addComponent(DaemonManager.class, DaemonManagerImpl.class) .addComponent(EventBusManager.class, EventBusManagerImpl.class) .addComponent(NodeManager.class, NodeManagerImpl.class) .addComponent(VTransactionManager.class, VTransactionManagerImpl.class) .addAspect(VTransactionAspect.class); } }
/** * Activates caches. * * @param cachePluginClass the cache plugin to use * @param params the params * @return these features */ public CommonsFeatures withCache(final Class<? extends CachePlugin> cachePluginClass, final Param... params) { getModuleConfigBuilder() .addComponent(CacheManager.class, CacheManagerImpl.class) .addPlugin(cachePluginClass, params); return this; }
/** * Activates script with a default plugin. * * @return these features */ public CommonsFeatures withScript() { getModuleConfigBuilder() .addComponent(ScriptManager.class, ScriptManagerImpl.class) .addPlugin(JaninoExpressionEvaluatorPlugin.class); return this; }
/** * Activates script with a defined plugin. * @param expressionEvaluatorPluginClass the type of plugin to use * @param params the params * @return these features */ public CommonsFeatures withScript(final Class<? extends ExpressionEvaluatorPlugin> expressionEvaluatorPluginClass, final Param... params) { getModuleConfigBuilder() .addComponent(ScriptManager.class, ScriptManagerImpl.class) .addPlugin(expressionEvaluatorPluginClass, params); return this; }
@Override protected void buildFeatures() { getModuleConfigBuilder() .addComponent(BioManager.class, BioManagerImpl.class) .addComponent(MathManager.class, MathManagerImpl.class, Param.of("start", "100")) .addPlugin(MathPlugin.class, Param.of("factor", "20")); }
@Override protected AppConfig buildAppConfig() { return AppConfig.builder() .addModule(ModuleConfig.builder("test-metric") .addComponent(AnalyticsManager.class, AnalyticsManagerImpl.class) .addComponent(DummyMetricsProvider.class) .build()) .build(); }
/** * Adds a REDIS connector. * @param host the REDIS host * @param port the REDIS port * @param passwordOpt the REDIS password * @param database the index of the REDIS database * @return these features */ public CommonsFeatures withRedisConnector(final String host, final int port, final int database, final Optional<String> passwordOpt) { final ComponentConfigBuilder componentConfigBuilder = ComponentConfig .builder() .withImpl(RedisConnector.class) .addParam(Param.of("host", host)) .addParam(Param.of("port", Integer.toString(port))) .addParam(Param.of("database", Integer.toString(database))); if (passwordOpt.isPresent()) { componentConfigBuilder .addParam(Param.of("password", passwordOpt.get())); } getModuleConfigBuilder() .addComponent(componentConfigBuilder.build()); return this; }
/** * Adds a component defined by an implementation. * @param implClass impl of the component * @param params the list of params * @return this builder */ public ModuleConfigBuilder addComponent(final Class<? extends Component> implClass, final Param... params) { Assertion.checkNotNull(implClass); Assertion.checkNotNull(params); //--- final ComponentConfig componentConfig = ComponentConfig.builder() .withImpl(implClass) .addParams(params) .build(); return addComponent(componentConfig); }
/** * Adds a proxy component defined by an interface. * @param apiClass api of the component * @param params the list of params * @return this builder */ public ModuleConfigBuilder addProxy(final Class<? extends Component> apiClass, final Param... params) { Assertion.checkNotNull(apiClass); Assertion.checkNotNull(params); //--- final ComponentConfig componentConfig = ComponentConfig.builder(true) .withApi(apiClass) .addParams(params) .build(); return addComponent(componentConfig); }
@Override protected AppConfig buildAppConfig() { return AppConfig.builder() .addModule(ModuleConfig.builder("bio") .addComponent(BioManager.class, BioManagerImpl.class) .addComponent(MathManager.class, MathManagerImpl.class, Param.of("start", "100")) .addPlugin(MathPlugin.class, Param.of("factor", "20")) .build()) .build(); } }
@Override protected AppConfig buildAppConfig() { final String redisHost = "redis-pic.part.klee.lan.net"; final int redisPort = 6379; final int redisDatabase = 15; return AppConfig.builder() .beginBoot() .endBoot() .addModule(new CommonsFeatures() .withRedisConnector(redisHost, redisPort, redisDatabase, Optional.empty()) .build()) .addModule(ModuleConfig.builder("checkers") .addComponent(RedisHealthChecker.class) .addComponent(FailedComponentChecker.class) .addComponent(SuccessComponentChecker.class) .build()) .build(); }
/** * Adds a component defined by an api and an implementation. * @param apiClass api of the component * @param implClass impl of the component * @param params the list of params * @return this builder */ public ModuleConfigBuilder addComponent(final Class<? extends Component> apiClass, final Class<? extends Component> implClass, final Param... params) { Assertion.checkNotNull(apiClass); Assertion.checkNotNull(implClass); Assertion.checkNotNull(params); //--- final ComponentConfig componentConfig = ComponentConfig.builder() .withImpl(implClass) .withApi(apiClass) .addParams(params) .build(); return addComponent(componentConfig); }
@Override protected AppConfig buildAppConfig() { return AppConfig.builder() .addModule(ModuleConfig.builder("commons") .addComponent(CodecManager.class, CodecManagerImpl.class) .build()) .build(); }
break; case component: moduleConfigBuilder.addComponent(componentConfigBuilder.build()); componentConfigBuilder = null; break;
@Test public void testHome2() { final AppConfig appConfig = AppConfig.builder() .beginBoot() .withLogConfig(new LogConfig("/log4j.xml")) .endBoot() .addModule(ModuleConfig.builder("Bio") .addComponent(BioManager.class, BioManagerImpl.class) //This plugin DummyPlugin is not used By BioManager !! .addPlugin(DummyPlugin.class) .addComponent(MathManager.class, MathManagerImpl.class, Param.of("start", "100")) .addPlugin(MathPlugin.class, Param.of("factor", "20")) .build()) .build(); Assertions.assertThrows(RuntimeException.class, () -> { try (AutoCloseableApp app = new AutoCloseableApp(appConfig)) { // } }); }
@Test public void testHome3() { final AppConfig appConfig = AppConfig.builder() .beginBoot() .withLogConfig(new LogConfig("/log4j.xml")) .endBoot() .addModule(ModuleConfig.builder("Bio-core") .addComponent(MathManager.class, MathManagerImpl.class, Param.of("start", "100")) .addPlugin(MathPlugin.class, Param.of("factor", "20")) .build()) .addModule(ModuleConfig.builder("Bio-spe") //This module depends of Bio-core module .addComponent(BioManager.class, BioManagerImpl.class) .build()) .build(); try (AutoCloseableApp app = new AutoCloseableApp(appConfig)) { // } } }
@Test public void testHome() { final AppConfig appConfig = AppConfig.builder() .beginBoot() .withLogConfig(new LogConfig("/log4j.xml")) .endBoot() .addModule(ModuleConfig.builder("Bio") .addComponent(BioManager.class, BioManagerImpl.class) .addComponent(MathManager.class, MathManagerImpl.class, Param.of("start", "100")) .addPlugin(MathPlugin.class, Param.of("factor", "20")) .build()) .build(); try (AutoCloseableApp app = new AutoCloseableApp(appConfig)) { final BioManager bioManager = app.getComponentSpace().resolve(BioManager.class); final int res = bioManager.add(1, 2, 3); assertEquals(366, res); assertTrue(bioManager.isActive()); } }
.addComponent(BioManager.class, BioManagerImpl.class) .addComponent(MathManager.class, MathManagerImpl.class, Param.of("start", "${math.test.start}")) .addPlugin(MathPlugin.class,
@Test public void testStartedComponent() { final AppConfig appConfig = AppConfig.builder() .beginBoot() .withLogConfig(new LogConfig("/log4j.xml")) .endBoot() .addModule(ModuleConfig.builder("Started") .addComponent(StartedManager.class, StartedManagerImpl.class) .build()) .addInitializer(StartedManagerInitializer.class) .build(); final StartedManager startedManager; try (AutoCloseableApp app = new AutoCloseableApp(appConfig)) { startedManager = app.getComponentSpace().resolve(StartedManager.class); assertTrue(startedManager.isInitialized(), "Component StartedManager not Initialized"); assertTrue(startedManager.isStarted(), "Component StartedManager not Started"); assertTrue(startedManager.isAppPreActivated(), "Component StartedManager not PostStarted"); } assertFalse(startedManager.isStarted(), "Component StartedManager not Stopped"); } }
.endBoot() .addModule(ModuleConfig.builder("Function") .addComponent(FunctionManager.class, implClass) .addPlugin(FunctionPlugin.class, Param.of("name", "x+1"),