package org.myeslib.cmdproducer; import java.util.List; import java.util.UUID; import java.util.Vector; import javax.inject.Inject; import lombok.extern.slf4j.Slf4j; import org.apache.camel.CamelContext; import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.impl.SimpleRegistry; import org.apache.camel.main.Main; import org.myeslib.cmdproducer.datasets.CreateCommandDataSet; import org.myeslib.cmdproducer.datasets.DecreaseCommandDataSet; import org.myeslib.cmdproducer.datasets.IncreaseCommandDataSet; import org.myeslib.cmdproducer.routes.CommandsDataSetsRoute; import com.google.inject.Guice; import com.google.inject.Injector; @Slf4j public class CmdProducer { final Main main; final SimpleRegistry registry; final CamelContext context; static int dataSetSize; static int delayBetweenDataSets; static int initialDelay; final List<UUID> ids = new Vector<>(); public static void main(String[] args) throws Exception { dataSetSize = args.length ==0 ? 1000 : new Integer(args[0]); // default = 1000 aggregates delayBetweenDataSets = args.length <=1 ? 30000 : new Integer(args[1]); // default = 30 seconds initialDelay = args.length <=2 ? 30000 : new Integer(args[2]); // default = 30 seconds log.info("dataSetSize = {}", dataSetSize); log.info("delayBetweenDataSets = {}", delayBetweenDataSets); log.info("initialDelay = {}", initialDelay); Injector injector = Guice.createInjector(new CmdProducerModule(dataSetSize, delayBetweenDataSets, initialDelay)); CmdProducer example = injector.getInstance(CmdProducer.class); example.main.run(); } public void populate() { for (int i=0; i< dataSetSize; i++){ ids.add(UUID.randomUUID()); } } @Inject CmdProducer(CommandsDataSetsRoute datasetRoute) throws Exception { main = new Main() ; main.enableHangupSupport(); registry = new SimpleRegistry(); context = new DefaultCamelContext(registry); populate(); registry.put("createCommandDataset", new CreateCommandDataSet(ids, dataSetSize)); registry.put("increaseCommandDataset", new IncreaseCommandDataSet(ids, dataSetSize)); registry.put("decreaseCommandDataset", new DecreaseCommandDataSet(ids, dataSetSize)); context.addRoutes(datasetRoute); main.getCamelContexts().clear(); main.getCamelContexts().add(context); main.setDuration(-1); main.start(); } }