/** * Creates and registers a {@link JobRegistry} with the given service * container. * * @param services provides access to service registration * @return service instance. */ public static JobRegistryService createAndRegister(ServiceContainer services) { JobRegistryService service = new JobRegistry(); services.addService(JobRegistryService.class, service); return service; }
/** * Initializes the invocations. */ public void initialize() { jobServices.addService(ThreadFactory.class, getThreads()); jobServices.addService(ScheduledExecutorService.class, getScheduler()); invokeAction(invocation -> invocation.initialize(job, this)); }
/** * Create an register an application service using the default alias {@link ApplicationService#ALIAS}. * @param provider Provider to create topology instances for registered applications. * @param submitter Submitter for registered applications. * @return Application service instance. */ public static ApplicationService createAndRegister(TopologyProvider provider, DirectSubmitter<Topology, Job> submitter) { AppService service = new AppService(provider, submitter, ALIAS); submitter.getServices().addService(ApplicationService.class, service); return service; }
/** * Create an register an application service using the default alias {@link ApplicationService#ALIAS}. * @param provider Provider to create topology instances for registered applications. * @param submitter Submitter for registered applications. * @return Application service instance. */ public static ApplicationService createAndRegister(TopologyProvider provider, DirectSubmitter<Topology, Job> submitter) { AppService service = new AppService(provider, submitter, ALIAS); submitter.getServices().addService(ApplicationService.class, service); return service; }
/** * Initializes the invocations. */ public void initialize() { jobServices.addService(ThreadFactory.class, getThreads()); jobServices.addService(ScheduledExecutorService.class, getScheduler()); invokeAction(invocation -> invocation.initialize(job, this)); }
protected void registerPublishSubscribeService() { getServices().addService(PublishSubscribeService.class, new ProviderPubSub()); }
protected void registerPublishSubscribeService() { getServices().addService(PublishSubscribeService.class, new ProviderPubSub()); }
protected void registerControlService() { getServices().addService(ControlService.class, getControlService()); }
protected void registerControlService() { getServices().addService(ControlService.class, getControlService()); }
public DirectProvider() { this.services = new ServiceContainer(); getServices().addService(ControlService.class, new JsonControlService()); }
public DirectProvider() { this.services = new ServiceContainer(); getServices().addService(ControlService.class, new JsonControlService()); }
/** * Returns a new {@link MetricsSetup} for configuring metrics. * * @param services ServiceContainer to use to add services to * @param registry the registry to use for the application * @return a {@link MetricsSetup} instance */ public static MetricsSetup withRegistry(ServiceContainer services, MetricRegistry registry) { final MetricsSetup setup = new MetricsSetup(registry); services.addService(MetricRegistry.class, registry); services.addCleaner(setup.new MetricOpletCleaner()); return setup; }
public DevelopmentProvider() throws Exception { MetricsSetup.withRegistry(getServices(), new MetricRegistry()). startJMXReporter(JMX_DOMAIN); getServices().addService(ControlService.class, new JMXControlService(JMX_DOMAIN, new Hashtable<>())); StreamScopeSetup.register(getServices()); HttpServer server = HttpServer.getInstance(); getServices().addService(HttpServer.class, server); server.startServer(); }
protected void registerPreferencesService() { if (getName() == null) return; Preferences providerNode = getPreferences(getName()); getServices().addService(Preferences.class, providerNode); try { providerNode.flush(); } catch (BackingStoreException e) { // TODO log that preference changes may not be persisted ; } }
protected void registerPreferencesService() { if (getName() == null) return; Preferences providerNode = getPreferences(getName()); getServices().addService(Preferences.class, providerNode); try { providerNode.flush(); } catch (BackingStoreException e) { // TODO log that preference changes may not be persisted ; } }
/** * Perform the necessary registrations. * <P> * <UL> * <LI>register the StreamScopeRegistry service</LI> * <LI>register a cleaner to remove job oplet StreamScope registrations</LI> * <LI>register a StreamScopeRegistryMXBean with the registered ControlService</LI> * </UL> * </P> * @param services ServiceContainer to register with. */ private void registerPvt(ServiceContainer services) { services.addService(StreamScopeRegistry.class, rgy); services.addCleaner( (jobId, opletId) -> { rgy.unregister(jobId, opletId); if (rgyBean != null) rgyBean.unregister(jobId, opletId); }); registerRegistryBean(services); }
static void startProvider(DirectProvider provider) throws InterruptedException, ExecutionException { provider.getServices().addService(ControlService.class, new JMXControlService("org.apache.edgent.test.apps.runtime", new Hashtable<>())); AppService.createAndRegister(provider, provider); JobRegistry.createAndRegister(provider.getServices()); }
@Test //@Ignore("This test relies on an existing war in a given location ... need to refactor this") public void testAppServiceJar() throws Exception { DirectProvider provider = new DirectProvider(); JsonControlService control = new JsonControlService(); provider.getServices().addService(ControlService.class, control); AppService.createAndRegister(provider, provider); File testAppsJar = getServerJar(); assertNotNull(testAppsJar); assertTrue(testAppsJar.exists()); System.out.println("Using server jar at: " + testAppsJar.toString()); URL testAppsJarURL = testAppsJar.toURI().toURL(); JsonObject registerJar = newRegisterJarRequest(testAppsJarURL.toExternalForm()); JsonElement crr = control.controlRequest(registerJar); assertTrue(crr.getAsBoolean()); Thread.sleep(500); JsonObject submitAppTwo = newSubmitRequest("SecondJarApp"); crr = control.controlRequest(submitAppTwo); assertTrue(crr.getAsBoolean()); Thread.sleep(500); }
@Test public void testAppService() throws Exception { DirectProvider provider = new DirectProvider(); JsonControlService control = new JsonControlService(); provider.getServices().addService(ControlService.class, control); AppService.createAndRegister(provider, provider); IotTestApps.registerApplications(provider); JsonObject submitAppOne = newSubmitRequest("AppOne"); JsonElement crr = control.controlRequest(submitAppOne); assertTrue(crr.getAsBoolean()); }
@Test(timeout=10000) public void testProviderServiceSingleSubscriber() throws Exception { DirectProvider dp = new DirectProvider(); dp.getServices().addService(PublishSubscribeService.class, new ProviderPubSub()); TStream<String> publishedStream = createPublisher(dp, "t1", String.class, getStrs()); Tester testPub = publishedStream.topology().getTester(); Condition<List<String>> tcPub = testPub.streamContents(publishedStream, getStrs()); TStream<String> subscribedStream = createSubscriber(dp, "t1", String.class); Tester testSub = subscribedStream.topology().getTester(); Condition<List<String>> tcSub = testSub.streamContents(subscribedStream, getStrs()); // Expect all tuples Job js = dp.submit(subscribedStream.topology()).get(); // Give the subscriber a chance to setup. while (js.getCurrentState() != State.RUNNING) Thread.sleep(50); Job jp = dp.submit(publishedStream.topology()).get(); while (!tcSub.valid() || !tcPub.valid()) Thread.sleep(50); assertTrue(tcPub.valid()); assertTrue(tcSub.valid()); js.stateChange(Action.CLOSE); jp.stateChange(Action.CLOSE); }