@Test public void disruptorStrategy() throws Exception { String className = "className"; Map<String, String> settings = Collections.singletonMap("key", "value"); IStrategyConfig config = mock(IStrategyConfig.class); when(config.getClassName()).thenReturn(className); when(config.getSettings()).thenReturn(settings); when(environment.getDisruptorStrategyConfig()).thenReturn(config); AgentConfig agentConfiguration = creator.environmentToConfiguration(environment, 0); StrategyConfig strategyConfig = agentConfiguration.getDisruptorStrategyConfig(); assertThat(strategyConfig.getClassName(), is(className)); assertThat(strategyConfig.getSettings(), is(settings)); }
/** * Reads settings from the {@link #configurationStorage}. Should be called only after * initialized as bean. * * @throws Exception * If disruptor config can not be read from the {@link #configurationStorage} or * settings don't contain the <i>bufferSize</i> property. */ @PostConstruct protected void postConstruct() throws Exception { Map<String, String> settings = configurationStorage.getDisruptorStrategyConfig().getSettings(); if (settings.containsKey("bufferSize")) { this.dataBufferSize = Integer.parseInt(settings.get("bufferSize")); } else { throw new BeanInitializationException("Disruptor strategy can not be initialized without the buffer size property."); } }
String className = configurationStorage.getDisruptorStrategyConfig().getClassName(); String beanName = "disruptorStrategy[" + className + "]"; registerBeanDefinitionAndInitialize(beanName, className);
agentConfiguration.setDisruptorStrategyConfig(new StrategyConfig(disruptorStrategyConfig.getClassName(), disruptorStrategyConfig.getSettings()));