public EventManager build() { return build(getName()); }
@Override public EventManager systemEventManager() { final EventManager eventManager = eventManagerThreadLocal.get(); if (eventManager != null) { return eventManager; } EventManager proxy; if (systemEventManager.get() == null) { final ServiceQueue serviceQueue = serviceBuilder().setInvokeDynamic(false) .setServiceObject( EventManagerBuilder.eventManagerBuilder().setName("QBIT_SYSTEM").build()).build().startServiceQueue(); systemEventManager.set(serviceQueue); proxy = serviceQueue.createProxyWithAutoFlush(EventManager.class, 100, TimeUnit.MILLISECONDS); } else { proxy = systemEventManager.get().createProxyWithAutoFlush(EventManager.class, 100, TimeUnit.MILLISECONDS); } eventManagerThreadLocal.set(proxy); return proxy; }
@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()); }
@Test public void testWithPredicateFalse() { EventManagerBuilder eventManagerBuilder = eventManagerBuilder(); AtomicReference<Event<Object>> eventRef = new AtomicReference<>(); EventConnector eventConnector = event -> eventRef.set(event); factory = new Factory() { @Override public EventManager createEventManager(String name, EventConnector eventConnector, StatsCollector statsCollector) { if (eventConnector == EventManagerBuilder.DEFAULT_NO_EVENT_CONNECTOR) { return eventManager; } else { return createEventManagerConnectorShortCut(name, eventConnector); } } public EventManager createEventManagerWithConnector(String name, EventConnector eventConnector) { return createEventManagerConnectorShortCut("foo", eventConnector); } }; FactorySPI.setFactory(factory); eventManagerBuilder.setEventConnector(eventConnector); eventManagerBuilder.addEventConnectorPredicate(objectEvent -> false); EventManager build = eventManagerBuilder.build("foo"); build.forwardEvent(testEvent); assertNull(eventRef.get()); }
@Test public void testWithPredicateTrue() { EventManagerBuilder eventManagerBuilder = eventManagerBuilder(); AtomicReference<Event<Object>> eventRef = new AtomicReference<>(); EventConnector eventConnector = event -> eventRef.set(event); factory = new Factory() { @Override public EventManager createEventManager(String name, EventConnector eventConnector, StatsCollector statsCollector) { if (eventConnector == EventManagerBuilder.DEFAULT_NO_EVENT_CONNECTOR) { return eventManager; } else { return createEventManagerConnectorShortCut(name, eventConnector); } } public EventManager createEventManagerWithConnector(String name, EventConnector eventConnector) { return createEventManagerConnectorShortCut(name, eventConnector); } }; FactorySPI.setFactory(factory); eventManagerBuilder.setEventConnector(eventConnector); eventManagerBuilder.addEventConnectorPredicate(objectEvent -> true); EventManager build = eventManagerBuilder.build("foo"); build.forwardEvent(testEvent); assertSame(testEvent, eventRef.get()); }
@Test public void testWithPredicateTwoTrue() { EventManagerBuilder eventManagerBuilder = eventManagerBuilder(); AtomicReference<Event<Object>> eventRef = new AtomicReference<>(); EventConnector eventConnector = event -> eventRef.set(event); factory = new Factory() { @Override public EventManager createEventManager(String name, EventConnector eventConnector, StatsCollector statsCollector) { if (eventConnector == EventManagerBuilder.DEFAULT_NO_EVENT_CONNECTOR) { return eventManager; } else { return createEventManagerConnectorShortCut(name, eventConnector); } } public EventManager createEventManagerWithConnector(String name, EventConnector eventConnector) { return createEventManagerConnectorShortCut(name, eventConnector); } }; FactorySPI.setFactory(factory); eventManagerBuilder.setEventConnector(eventConnector); eventManagerBuilder.addEventConnectorPredicate(objectEvent -> true); eventManagerBuilder.addEventConnectorPredicate(objectEvent -> true); EventManager build = eventManagerBuilder.build("foo"); build.forwardEvent(testEvent); assertSame(testEvent, eventRef.get()); }
@Test public void testWithPredicateTwoTrue1False() { EventManagerBuilder eventManagerBuilder = eventManagerBuilder(); AtomicReference<Event<Object>> eventRef = new AtomicReference<>(); EventConnector eventConnector = event -> eventRef.set(event); factory = new Factory() { @Override public EventManager createEventManager(String name, EventConnector eventConnector, StatsCollector statsCollector) { if (eventConnector == EventManagerBuilder.DEFAULT_NO_EVENT_CONNECTOR) { return eventManager; } else { return createEventManagerConnectorShortCut(name, eventConnector); } } public EventManager createEventManagerWithConnector(String name, EventConnector eventConnector) { return createEventManagerConnectorShortCut(name, eventConnector); } }; FactorySPI.setFactory(factory); eventManagerBuilder.setEventConnector(eventConnector); eventManagerBuilder.addEventConnectorPredicate(objectEvent -> true); eventManagerBuilder.addEventConnectorPredicate(objectEvent -> true); eventManagerBuilder.addEventConnectorPredicate(objectEvent -> false); EventManager build = eventManagerBuilder.build("foo"); build.forwardEvent(testEvent); assertNull(eventRef.get()); }
public EventManager build() { return build(getName()); }
public EventManager build() { return build(getName()); }
@Before public void setup() { method = new AtomicReference<>(); event = new AtomicReference<>(); eventManager = EventManagerBuilder.eventManagerBuilder().build("localtest"); eventServiceQueue = ServiceBuilder.serviceBuilder().setServiceObject(eventManager).buildAndStartAll(); eventManager = eventServiceQueue.createProxy(EventManager.class); testServiceImpl = new TestServiceImpl(); ServiceBuilder serviceBuilder = ServiceBuilder.serviceBuilder().setEventManager(eventManager); serviceBuilder.getRequestQueueBuilder().setBatchSize(100); this.serviceQueue = serviceBuilder .setServiceObject(testServiceImpl).buildAndStart(); serviceBundle = serviceBundleBuilder().buildAndStart(); eventBusProxyCreator = QBit.factory().eventBusProxyCreator(); sender = eventBusProxyCreator.createProxy(eventManager, EventChannel1.class); serviceBundle.addServiceQueue(serviceName, this.serviceQueue); testService = serviceBundle.createLocalProxy(TestService.class, serviceName); }
@Before public void setup() { systemManager = new QBitSystemManager(); eventManager = EventManagerBuilder .eventManagerBuilder().setName("Event Bus") .build(); serviceBundleBuilder = ServiceBundleBuilder.serviceBundleBuilder() .setEventManager(eventManager) .setSystemManager(systemManager); final ServiceBundle serviceBundle = serviceBundleBuilder.buildAndStart(); serviceBundle.addServiceObject("eventManager", eventManager); serviceB = new ServiceB(); serviceBundle.addServiceObject("serviceB", serviceB); ServiceA serviceA = new ServiceA(serviceBundle.createLocalProxy(EventManager.class, "eventManager")); serviceBundle.addServiceObject("serviceA", serviceA); serviceAQueueProxy = serviceBundle.createLocalProxy(ServiceAInterface.class, "serviceA"); serviceBundle.startReturnHandlerProcessor(); }
@Override public EventManager systemEventManager() { final EventManager eventManager = eventManagerThreadLocal.get(); if (eventManager != null) { return eventManager; } EventManager proxy; if (systemEventManager.get() == null) { final ServiceQueue serviceQueue = serviceBuilder().setInvokeDynamic(false) .setServiceObject( EventManagerBuilder.eventManagerBuilder().setName("QBIT_SYSTEM").build()).build().startServiceQueue(); systemEventManager.set(serviceQueue); proxy = serviceQueue.createProxyWithAutoFlush(EventManager.class, 100, TimeUnit.MILLISECONDS); } else { proxy = systemEventManager.get().createProxyWithAutoFlush(EventManager.class, 100, TimeUnit.MILLISECONDS); } eventManagerThreadLocal.set(proxy); return proxy; }
@Override public EventManager systemEventManager() { final EventManager eventManager = eventManagerThreadLocal.get(); if (eventManager != null) { return eventManager; } EventManager proxy; if (systemEventManager.get() == null) { final ServiceQueue serviceQueue = serviceBuilder().setInvokeDynamic(false) .setServiceObject( EventManagerBuilder.eventManagerBuilder().setName("QBIT_SYSTEM").build()).build().startServiceQueue(); systemEventManager.set(serviceQueue); proxy = serviceQueue.createProxyWithAutoFlush(EventManager.class, 100, TimeUnit.MILLISECONDS); } else { proxy = systemEventManager.get().createProxyWithAutoFlush(EventManager.class, 100, TimeUnit.MILLISECONDS); } eventManagerThreadLocal.set(proxy); return proxy; }
@Before public void setup() { systemManager = new QBitSystemManager(); eventManager = EventManagerBuilder .eventManagerBuilder().setName("Event Bus") .build(); eventServiceQueue = ServiceBuilder.serviceBuilder().setServiceObject(eventManager).buildAndStartAll(); serviceB = new ServiceB(); serviceA = new ServiceA(eventServiceQueue.createProxy(EventManager.class)); serviceBuilder = ServiceBuilder.serviceBuilder() .setServiceObject(serviceA) .setJoinEventManager(false) .setEventManager(eventManager).setSystemManager(systemManager); final ServiceQueue serviceAQueue = serviceBuilder.buildAndStartAll(); ServiceBuilder.serviceBuilder() .setServiceObject(serviceB) .setJoinEventManager(false) .setEventManager(eventManager) .setSystemManager(systemManager) .buildAndStartAll(); serviceAQueueProxy = serviceAQueue.createProxy(ServiceAInterface.class); }
@Before public void setup() { systemManager = new QBitSystemManager(); eventManager = EventManagerBuilder .eventManagerBuilder().setName("Event Bus") .build(); serviceBuilder = ServiceBuilder.serviceBuilder() .setSystemManager(systemManager); eventServiceQueue = serviceBuilder.setServiceObject(eventManager).build().startServiceQueue(); serviceBuilder = ServiceBuilder.serviceBuilder() .setSystemManager(systemManager).setEventManager(eventManager); serviceB = new ServiceB(); serviceBuilder.setServiceObject(serviceB).buildAndStartAll(); serviceBuilder = ServiceBuilder.serviceBuilder() .setSystemManager(systemManager).setEventManager(eventManager); serviceA = new ServiceA(eventServiceQueue.createProxyWithAutoFlush(EventManager.class, Duration.SECOND), QBit.factory().eventBusProxyCreator()); final ServiceQueue serviceAQueue = serviceBuilder .setServiceObject(serviceA).buildAndStartAll(); serviceAQueueProxy = serviceAQueue.createProxy(ServiceAInterface.class); }