@Override public void start(ServiceStartContext startContext) { final DataCfg dataConfiguration = configuration.getData(); for (String directory : dataConfiguration.getDirectories()) { final File configDirectory = new File(directory); if (!configDirectory.exists()) { try { configDirectory.getParentFile().mkdirs(); Files.createDirectory(configDirectory.toPath()); } catch (final IOException e) { throw new RuntimeException("Unable to create directory " + configDirectory, e); } } } service = new RaftPersistentConfigurationManager(configuration.getData()); startContext.async(startContext.getScheduler().submitActor(service)); }
@Override public void start(ServiceStartContext startContext) { final DataCfg dataConfiguration = configuration.getData(); for (String directory : dataConfiguration.getDirectories()) { final File configDirectory = new File(directory); if (!configDirectory.exists()) { try { configDirectory.getParentFile().mkdirs(); Files.createDirectory(configDirectory.toPath()); } catch (final IOException e) { throw new RuntimeException("Unable to create directory " + configDirectory, e); } } } service = new RaftPersistentConfigurationManager(configuration.getData()); startContext.async(startContext.getScheduler().submitActor(service)); }
private void assertDirectories(final String configFileName, final List<String> directories) { final DataCfg cfg = readConfig(configFileName).getData(); final List<String> expected = directories.stream() .map(d -> Paths.get(BROKER_BASE, d).toString()) .collect(Collectors.toList()); assertThat(cfg.getDirectories()).containsExactlyElementsOf(expected); } }
private void assertDirectories(final String configFileName, final List<String> directories) { final DataCfg cfg = readConfig(configFileName).getData(); final List<String> expected = directories.stream() .map(d -> Paths.get(BROKER_BASE, d).toString()) .collect(Collectors.toList()); assertThat(cfg.getDirectories()).containsExactlyElementsOf(expected); } }
@Test public void shouldPersistConfigurationAsJSON() throws IOException { final int partitionId = 0; final BrokerCfg brokerCfg = brokerRule.getBroker().getBrokerContext().getBrokerConfiguration(); final ObjectReader jsonReader = new ObjectMapper().readerFor(RaftConfigurationMetadata.class); final String dataDirectory = brokerCfg.getData().getDirectories().get(0); final File configFile = new File(String.format("%s/partition-%d/partition.json", dataDirectory, partitionId)); final RaftConfigurationMetadata persisted = jsonReader.readValue(configFile); assertThat(persisted.getPartitionId()).isEqualTo(partitionId); } }
@Test public void shouldPersistConfigurationAsJSON() throws IOException { final int partitionId = 0; final BrokerCfg brokerCfg = brokerRule.getBroker().getBrokerContext().getBrokerConfiguration(); final ObjectReader jsonReader = new ObjectMapper().readerFor(RaftConfigurationMetadata.class); final String dataDirectory = brokerCfg.getData().getDirectories().get(0); final File configFile = new File(String.format("%s/partition-%d/partition.json", dataDirectory, partitionId)); final RaftConfigurationMetadata persisted = jsonReader.readValue(configFile); assertThat(persisted.getPartitionId()).isEqualTo(partitionId); } }
public void startBroker() { startTime = System.currentTimeMillis(); broker = new Broker(brokerCfg, newTemporaryFolder.getAbsolutePath(), controlledActorClock); final ServiceContainer serviceContainer = broker.getBrokerContext().getServiceContainer(); try { // Hack: block until the system stream processor is available // this is required in the broker-test suite, because the client rule does not perform request // retries // How to make it better: https://github.com/zeebe-io/zeebe/issues/196 final String partitionName = Partition.getPartitionName(Protocol.DEPLOYMENT_PARTITION); serviceContainer .createService(TestService.NAME, new TestService()) .dependency(ClusterBaseLayerServiceNames.leaderPartitionServiceName(partitionName)) .dependency( TransportServiceNames.serverTransport(TransportServiceNames.CLIENT_API_SERVER_NAME)) .dependency(WORKFLOW_REPOSITORY_SERVICE) .install() .get(timeout, TimeUnit.SECONDS); } catch (final InterruptedException | ExecutionException | TimeoutException e) { stopBroker(); throw new RuntimeException( String.format( "System partition not installed into the container withing %d seconds.", timeout), e); } dataDirectories = broker.getBrokerContext().getBrokerConfiguration().getData().getDirectories(); }
public void startBroker() { startTime = System.currentTimeMillis(); broker = new Broker(brokerCfg, newTemporaryFolder.getAbsolutePath(), controlledActorClock); final ServiceContainer serviceContainer = broker.getBrokerContext().getServiceContainer(); try { // Hack: block until the system stream processor is available // this is required in the broker-test suite, because the client rule does not perform request // retries // How to make it better: https://github.com/zeebe-io/zeebe/issues/196 final String partitionName = Partition.getPartitionName(Protocol.DEPLOYMENT_PARTITION); serviceContainer .createService(TestService.NAME, new TestService()) .dependency(ClusterBaseLayerServiceNames.leaderPartitionServiceName(partitionName)) .dependency( TransportServiceNames.serverTransport(TransportServiceNames.CLIENT_API_SERVER_NAME)) .dependency(WORKFLOW_REPOSITORY_SERVICE) .install() .get(timeout, TimeUnit.SECONDS); } catch (final InterruptedException | ExecutionException | TimeoutException e) { stopBroker(); throw new RuntimeException( String.format( "System partition not installed into the container withing %d seconds.", timeout), e); } dataDirectories = broker.getBrokerContext().getBrokerConfiguration().getData().getDirectories(); }
dataDirectories = broker.getBrokerContext().getBrokerConfiguration().getData().getDirectories();
dataDirectories = broker.getBrokerContext().getBrokerConfiguration().getData().getDirectories();
DurationUtil.parse(brokerConfiguration.getData().getSnapshotPeriod()); final StreamProcessorServiceFactory streamProcessorFactory = new StreamProcessorServiceFactory(serviceContainer, snapshotPeriod);
DurationUtil.parse(brokerConfiguration.getData().getSnapshotPeriod()); final StreamProcessorServiceFactory streamProcessorFactory = new StreamProcessorServiceFactory(serviceContainer, snapshotPeriod);