@Override public void forwardEvent(EventTransferObject<Object> event) { this.eventManager.forwardEvent(event); }
default void joinServices(ServiceQueue... serviceQueues) { for (ServiceQueue serviceQueue : serviceQueues) { joinService(serviceQueue); } }
/** * Send record over record event channel. */ public void addRecord(final Record record) { eventManager.send("NEW_RECORD", record); }
/** * Send records over record event channel. */ public void addRecords(List<Record> records) { eventManager.sendArguments("NEW_RECORD_LIST", records); }
@Test public void testSendSimple() throws Exception { final EventManager eventManager = eventServiceQueue.createProxy(EventManager.class); final CountDownLatch latch = new CountDownLatch(1); final AtomicReference<Event<Object>> ref = new AtomicReference<>(); eventManager.register("c1", event -> { latch.countDown(); ref.set(event); }); eventManager.send("c1", "hello"); ServiceProxyUtils.flushServiceProxy(eventManager); latch.await(1, TimeUnit.SECONDS); assertNotNull(ref.get()); }
eventManager.listen(myEventListener); clientProxy.clientProxyFlush(); eventManager.register(rick, new EventConsumer<Object>() { @Override public void listen(Event<Object> event) { eventManager.register(rick, new EventSubscriber<Object>() { @Override public void listen(Event<Object> event) { eventManager.register(rick, callbackEventListener(event -> { if (subscribeMessageCount < 1000) puts(event); subscribeMessageCount++; eventManager.send(rick, "Hello Rick"); clientProxy.clientProxyFlush();
@Override public void stop() { started.set(false); try { if (requestQueue != null) requestQueue.stop(); } catch (Exception ex) { if (debug) logger.debug("Unable to stop request queue", ex); } try { if (responseQueue != null) responseQueue.stop(); } catch (Exception ex) { if (debug) logger.debug("Unable to stop response queues", ex); } if (systemManager != null) { this.systemManager.serviceShutDown(); this.systemManager.unregisterService(this); } if (!(service instanceof EventManager)) { if (joinEventManager) { serviceContext().eventManager().leaveEventBus(this); } } eventManager.ifPresent(em -> em.leaveEventBus(BaseServiceQueueImpl.this)); }
/** * Send the queue item to the event. * * @param item item */ private void sendToEventManager(T item) { if (debug) { logger.debug("EventBusQueueAdapter::sendToEventManager({})", item); } try { if (lock.tryLock()) { eventManager.sendArguments(channel, item); } else { lock.lock(); eventManager.sendArguments(channel, item); } } finally { lock.unlock(); } }
@Override public void stop() { started.set(false); try { if (requestQueue != null) requestQueue.stop(); } catch (Exception ex) { if (debug) logger.debug("Unable to stop request queue", ex); } try { if (responseQueue != null) responseQueue.stop(); } catch (Exception ex) { if (debug) logger.debug("Unable to stop response queues", ex); } if (systemManager != null) { this.systemManager.serviceShutDown(); this.systemManager.unregisterService(this); } if (!(service instanceof EventManager)) { if (joinEventManager) { serviceContext().eventManager().leaveEventBus(this); } } eventManager.ifPresent(em -> em.leaveEventBus(BaseServiceQueueImpl.this)); }
serviceContext().eventManager().joinService(this);
/** * Send records over record event channel. */ public void addRecords(List<Record> records) { eventManager.sendArguments("NEW_RECORD_LIST", records); }
@Test public void testWithConnector() { EventManagerBuilder eventManagerBuilder = eventManagerBuilder(); AtomicReference<Event<Object>> eventRef = new AtomicReference<>(); EventConnector eventConnector = event -> eventRef.set(event); eventManagerBuilder.setEventConnector(eventConnector); EventManager build = eventManagerBuilder.setFactory(new Factory() { @Override public EventManager createEventManager(String name, EventConnector eventConnector, StatsCollector statsCollector) { return createEventManagerConnectorShortCut("foo", eventConnector); } }).build("foo"); build.forwardEvent(testEvent); assertSame(testEvent, eventRef.get()); }
/** * Send record over record event channel. */ public void addRecord(final Record record) { eventManager.send("NEW_RECORD", record); }
@Override public void stop() { started.set(false); try { if (requestQueue != null) requestQueue.stop(); } catch (Exception ex) { if (debug) logger.debug("Unable to stop request queue", ex); } try { if (responseQueue != null) responseQueue.stop(); } catch (Exception ex) { if (debug) logger.debug("Unable to stop response queues", ex); } if (systemManager != null) { this.systemManager.serviceShutDown(); this.systemManager.unregisterService(this); } if (!(service instanceof EventManager)) { if (joinEventManager) { serviceContext().eventManager().leaveEventBus(this); } } eventManager.ifPresent(em -> em.leaveEventBus(BaseServiceQueueImpl.this)); }
default void joinServices(ServiceQueue... serviceQueues) { for (ServiceQueue serviceQueue : serviceQueues) { joinService(serviceQueue); } }
@Override public <T> T createProxyWithChannelPrefix(final EventManager eventManager, final Class<T> eventBusProxyInterface, final String channelPrefix) { if (!eventBusProxyInterface.isInterface()) { throw new IllegalArgumentException("Must be an interface for eventBusProxyInterface argument"); } final Map<String, String> methodToChannelMap = createMethodToChannelMap(channelPrefix, eventBusProxyInterface); final InvocationHandler invocationHandler = (proxy, method, args) -> { if (flushMethodNameSet.contains(method.getName())) { flushServiceProxy(eventManager); return null; } final String channelName = methodToChannelMap.get(method.toString()); eventManager.sendArguments(channelName, args); return null; }; final Object o = Proxy.newProxyInstance(eventBusProxyInterface.getClassLoader(), new Class[]{eventBusProxyInterface, ClientProxy.class}, invocationHandler); //noinspection unchecked return (T) o; }
@Override public void forwardEvent(EventTransferObject<Object> event) { this.eventManager.forwardEvent(event); }
public <T> void send(String channel, T message) { eventManager().send(channel, message); } }
public ServiceQueue buildServiceQueueWithCallbackHandler() { ServiceBuilder serviceBuilder = getServiceBuilder() .setRequestQueueBuilder(getSendQueueBuilder()) .setServiceObject(getStatServiceImpl()) .setCreateCallbackHandler(true); serviceQueue = serviceBuilder.build(); if (serviceDiscovery != null) { if (eventManager != null && eventManager != QBit.factory().systemEventManager()) { eventManager.joinService(serviceQueue); } } return serviceQueue; }
/** * Send the queue item to the event. * @param item item */ private void sendToEventManager(T item) { if (debug) { logger.debug("EventBusQueueAdapter::sendToEventManager({})", item); } try { if (lock.tryLock()) { eventManager.sendArguments(channel, item); } else { lock.lock(); eventManager.sendArguments(channel, item); } }finally { lock.unlock(); } }