public static void start() throws Exception { testStackIndex++; if (standaloneMain == null) { LOG.info("Starting standalone instance"); try { CConfiguration cConf = CConfiguration.create(); tempDirectory = Files.createTempDir(); cConf.set(Constants.CFG_LOCAL_DATA_DIR, tempDirectory.getAbsolutePath()); cConf.set(Constants.Router.ADDRESS, HOSTNAME); cConf.set(Constants.Dangerous.UNRECOVERABLE_RESET, "true"); // Start without UI standaloneMain = StandaloneMain.create(null, cConf, new Configuration()); standaloneMain.startUp(); waitForStandalone(30000); } catch (Exception e) { LOG.error("Failed to start standalone", e); if (standaloneMain != null) { standaloneMain.shutDown(); } try { DirUtils.deleteDirectoryContents(tempDirectory); } catch (IOException ex) { LOG.warn("Failed to delete temp directory: " + tempDirectory.getAbsolutePath(), ex); } throw e; } } }
@BeforeClass public static void beforeClass() throws Throwable { CConfiguration conf = CConfiguration.create(); conf.set(Constants.AppFabric.SERVER_ADDRESS, hostname); conf.set(Constants.CFG_LOCAL_DATA_DIR, tmpFolder.newFolder("data").getAbsolutePath()); conf.set(Constants.AppFabric.OUTPUT_DIR, System.getProperty("java.io.tmpdir")); conf.set(Constants.AppFabric.TEMP_DIR, System.getProperty("java.io.tmpdir")); conf.setBoolean(Constants.Scheduler.SCHEDULERS_LAZY_START, true); conf.set( Constants.AppFabric.APP_TEMPLATE_DIR, tmpFolder.newFolder("templates").getAbsolutePath()); conf.setBoolean(Constants.Dangerous.UNRECOVERABLE_RESET, true); DirUtils.mkdirs(new File(conf.get(Constants.AppFabric.APP_TEMPLATE_DIR))); DirUtils.mkdirs(new File(conf.get(Constants.AppFabric.APP_TEMPLATE_PLUGIN_DIR))); injector = Guice.createInjector(new AppFabricTestModule(conf)); txManager = injector.getInstance(TransactionManager.class); txManager.startAndWait(); dsOpService = injector.getInstance(DatasetOpExecutor.class); dsOpService.startAndWait(); datasetService = injector.getInstance(DatasetService.class); datasetService.startAndWait(); appFabricServer = injector.getInstance(AppFabricServer.class); appFabricServer.startAndWait(); DiscoveryServiceClient discoveryClient = injector.getInstance(DiscoveryServiceClient.class); ServiceDiscovered appFabricHttpDiscovered = discoveryClient.discover(Constants.Service.APP_FABRIC_HTTP); EndpointStrategy endpointStrategy = new RandomEndpointStrategy(appFabricHttpDiscovered); port = endpointStrategy.pick(1, TimeUnit.SECONDS).getSocketAddress().getPort(); txClient = injector.getInstance(TransactionSystemClient.class); metricsCollectionService = injector.getInstance(MetricsCollectionService.class); metricsCollectionService.startAndWait(); metricsService = injector.getInstance(MetricsQueryService.class); metricsService.startAndWait(); streamService = injector.getInstance(StreamService.class); streamService.startAndWait(); serviceStore = injector.getInstance(ServiceStore.class); serviceStore.startAndWait(); streamAdmin = injector.getInstance(StreamAdmin.class); locationFactory = getInjector().getInstance(LocationFactory.class); adapterDir = new File(conf.get(Constants.AppFabric.APP_TEMPLATE_DIR)); createNamespaces(); }
public static void stop() throws Exception { testStackIndex--; if (standaloneMain != null && testStackIndex == 0) { LOG.info("Stopping standalone instance"); standaloneMain.shutDown(); standaloneMain = null; try { DirUtils.deleteDirectoryContents(tempDirectory); } catch (IOException e) { LOG.warn("Failed to delete temp directory: " + tempDirectory.getAbsolutePath(), e); } } }