EventNodeClient(String podName, int nodeIndex, String path) { _podName = podName; _nodeIndex = nodeIndex; _address = path; String eventsPath = "pod://" + podName + EventServerImpl.PATH; ServicesAmp manager = ServicesAmp.current(); _eventServer = manager.service(eventsPath) .pinNode(_nodeIndex) .as(EventServer.class); }
public LinkHamp(InputStream is, OutputStream os) { this(ServicesAmp.newManager().start(), "remote://", is, os); }
@Override public ServiceBuilderAmp newService(Object worker) { return delegate().newService(worker); }
static MessageAmp current() { return (MessageAmp) ServicesAmp.current().currentMessage(); } }
public void build(ServicesAmp manager) { ServiceBuilderAmp builder; if (_supplier != null) { builder = manager.newService(_supplier); Objects.requireNonNull(builder); } else if (_key != null) { builder = manager.service(_key, _serviceClass); Objects.requireNonNull(builder); } else if (_serviceClass != null) { builder = manager.newService(_serviceClass); Objects.requireNonNull(builder); } else { throw new IllegalStateException(); } if (_address != null) { builder.address(_address); } builder.ref(); }
private ServiceRefAmp initService(String serverId) { // XXX: needs to be virtual String address = "bartender://" + serverId + ClusterServiceKraken.UID; ServiceRefAmp serviceRef = _rampManager.service(address); return serviceRef; }
_adminService = rampManager.newService(new AdminServiceImpl(this)) .address("public:///management") .start() .as(AdminService.class); _podsService = rampManager.newService(new PodsManagerServiceImpl(this)) .address("public://" + PodsManagerService.ADDRESS) .start() .as(PodsManagerServiceLocal.class); _podManagerHub = rampManager.service("pod://cluster_root" + PodManagerService.PATH) .as(PodManagerService.class); Boolean value = rampManager.run(10, TimeUnit.SECONDS, r->_heartbeatLocal.start(r));
private Profile() { ServicesAmp manager = ServicesAmp.newManager().start(); ProfileTask task = ProfileTask.create(); _profilerService = manager.newService(new ProfilerServiceImpl(task)) .as(ProfilerService.class); }
@Override public <T> Provider<T> provider(Injector manager, Key<T> key) { Class<T> rawClass = key.rawClass(); Service service = rawClass.getAnnotation(Service.class); if (service == null) { return null; } if (key.isAnnotationPresent(ServiceImpl.class)) { return null; } String address = getManager().address(rawClass); if (address != null && ! address.isEmpty()) { T proxy = getManager().service(address).as(rawClass); return ()->proxy; } else { return null; } }
protected void initSelf() { OutboxAmp outbox = OutboxAmp.current(); //_configBuilder = Configs.config(); //_configBuilder.add(_factory.config()); _injectBuilder = InjectorAmp.manager(classLoader()); _injectBuilder.include(BaratineProducer.class); _configBuilder = _injectBuilder.config(); _configBuilder.add(_factory.config()); _serviceBuilder = ServicesAmp.newManager(); _serviceBuilder.name("webapp"); _serviceBuilder.autoServices(true); _serviceBuilder.injector(_injectBuilder); //_serviceBuilder.setJournalFactory(new JournalFactoryImpl()); addFactories(_serviceBuilder); addStubVault(_serviceBuilder); _serviceBuilder.contextManager(true); ServicesAmp services = _serviceBuilder.get(); Amp.contextManager(services); _injectBuilder.autoBind(new InjectAutoBindService(services)); if (outbox != null) { InboxAmp inbox = services.inboxSystem(); // XXX: should set the inbox outbox.getAndSetContext(inbox); //System.out.println("OUTBOX-a: " + inbox + " " + serviceManager); } _wsManager = webSocketManager(); }
@Override public final InboxAmp getInbox() { // OutboxAmpDirect outbox = new OutboxAmpDirect(); return _manager.inboxSystem(); }
_timerService = _ampManager.service("timer:") .as(Timers.class); _ampManager.inboxSystem().serviceRef().bind("/system");
@Override public <T> T run(long timeout, TimeUnit unit, Consumer<Result<T>> task) { return delegate().run(timeout, unit, task); }
ServicesAmp manager = ServicesAmp.current(); return (T) manager.inboxSystem().serviceRef().pin(object).as(api);
@Override public void addRemoteMessageWrite() { delegate().addRemoteMessageWrite(); }
ClassLoader loader = serviceRef.services().classLoader(); InboxAmp systemInbox = serviceRef.services().inboxSystem(); MessageFactoryAmp messageFactory = _messageFactory;
oldCxt = outbox.getAndSetContext(_ampManager.inboxSystem()); _ampManager.start();
public ServicesAmp services() { return ServicesAmp.current(); } }
@Override public void stop(ShutdownModeAmp mode) { _ampManager.shutdown(mode); }