Search in sources :

Example 26 with ITopic

use of com.hazelcast.core.ITopic in project hazelcast by hazelcast.

the class EventServiceTest method testEventService.

@Test(timeout = 90000)
public void testEventService() throws Exception {
    TestHazelcastInstanceFactory factory = createHazelcastInstanceFactory(3);
    HazelcastInstanceProxy h1 = (HazelcastInstanceProxy) factory.newHazelcastInstance();
    HazelcastInstanceProxy h2 = (HazelcastInstanceProxy) factory.newHazelcastInstance();
    HazelcastInstanceProxy h3 = (HazelcastInstanceProxy) factory.newHazelcastInstance();
    CountDownLatch l1 = new CountDownLatch(1000);
    CountDownLatch l2 = new CountDownLatch(1000);
    CountDownLatch l3 = new CountDownLatch(1000);
    ITopic t1 = h1.getTopic("foo");
    ITopic t2 = h2.getTopic("foo");
    ITopic t3 = h3.getTopic("foo");
    t1.addMessageListener(createMessageListener(l1));
    t2.addMessageListener(createMessageListener(l2));
    t3.addMessageListener(createMessageListener(l3));
    MemberImpl m1 = (MemberImpl) h1.getCluster().getLocalMember();
    MemberImpl m2 = (MemberImpl) h2.getCluster().getLocalMember();
    MemberImpl m3 = (MemberImpl) h3.getCluster().getLocalMember();
    Address a1 = m1.getAddress();
    Address a2 = m2.getAddress();
    Address a3 = m3.getAddress();
    Field original = HazelcastInstanceProxy.class.getDeclaredField("original");
    original.setAccessible(true);
    HazelcastInstanceImpl impl1 = (HazelcastInstanceImpl) original.get(h1);
    HazelcastInstanceImpl impl2 = (HazelcastInstanceImpl) original.get(h2);
    HazelcastInstanceImpl impl3 = (HazelcastInstanceImpl) original.get(h3);
    EventService es1 = impl1.node.nodeEngine.getEventService();
    EventService es2 = impl2.node.nodeEngine.getEventService();
    EventService es3 = impl3.node.nodeEngine.getEventService();
    SerializationService ss1 = impl1.node.nodeEngine.getSerializationService();
    SerializationService ss2 = impl2.node.nodeEngine.getSerializationService();
    SerializationService ss3 = impl3.node.nodeEngine.getSerializationService();
    int counter = 0;
    for (int i = 0; i < 3000; i++) {
        if (counter == 0) {
            TopicEvent event = builTopicEvent("Foo" + i, m1, ss1);
            Collection<EventRegistration> registrations = es1.getRegistrations(TopicService.SERVICE_NAME, "foo");
            EventRegistration registration = findEventRegistration(a3, registrations);
            es1.publishEvent(TopicService.SERVICE_NAME, registration, event, 0);
        } else if (counter == 1) {
            TopicEvent event = builTopicEvent("Foo" + i, m2, ss2);
            Collection<EventRegistration> registrations = es2.getRegistrations(TopicService.SERVICE_NAME, "foo");
            EventRegistration registration = findEventRegistration(a1, registrations);
            es2.publishEvent(TopicService.SERVICE_NAME, registration, event, 0);
        } else if (counter == 2) {
            TopicEvent event = builTopicEvent("Foo" + i, m3, ss3);
            Collection<EventRegistration> registrations = es3.getRegistrations(TopicService.SERVICE_NAME, "foo");
            EventRegistration registration = findEventRegistration(a2, registrations);
            es3.publishEvent(TopicService.SERVICE_NAME, registration, event, 0);
        }
        counter++;
        if (counter == 3)
            counter = 0;
    }
    l1.await(30, TimeUnit.SECONDS);
    l2.await(30, TimeUnit.SECONDS);
    l3.await(30, TimeUnit.SECONDS);
}
Also used : HazelcastInstanceImpl(com.hazelcast.instance.HazelcastInstanceImpl) TopicEvent(com.hazelcast.topic.impl.TopicEvent) ITopic(com.hazelcast.core.ITopic) EventRegistration(com.hazelcast.spi.EventRegistration) Address(com.hazelcast.nio.Address) MemberImpl(com.hazelcast.instance.MemberImpl) SerializationService(com.hazelcast.spi.serialization.SerializationService) EventService(com.hazelcast.spi.EventService) CountDownLatch(java.util.concurrent.CountDownLatch) HazelcastInstanceProxy(com.hazelcast.instance.HazelcastInstanceProxy) Field(java.lang.reflect.Field) Collection(java.util.Collection) TestHazelcastInstanceFactory(com.hazelcast.test.TestHazelcastInstanceFactory) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test) ParallelTest(com.hazelcast.test.annotation.ParallelTest)

Aggregations

ITopic (com.hazelcast.core.ITopic)26 ParallelTest (com.hazelcast.test.annotation.ParallelTest)25 QuickTest (com.hazelcast.test.annotation.QuickTest)25 Test (org.junit.Test)25 Message (com.hazelcast.core.Message)8 ReliableMessageListenerMock (com.hazelcast.topic.impl.reliable.ReliableMessageListenerMock)8 MessageListener (com.hazelcast.core.MessageListener)7 AssertTask (com.hazelcast.test.AssertTask)7 HazelcastInstance (com.hazelcast.core.HazelcastInstance)6 CountDownLatch (java.util.concurrent.CountDownLatch)5 Config (com.hazelcast.config.Config)4 ListenerConfig (com.hazelcast.config.ListenerConfig)4 TestHazelcastInstanceFactory (com.hazelcast.test.TestHazelcastInstanceFactory)3 ReliableTopicConfig (com.hazelcast.config.ReliableTopicConfig)2 RingbufferConfig (com.hazelcast.config.RingbufferConfig)2 Member (com.hazelcast.core.Member)2 NightlyTest (com.hazelcast.test.annotation.NightlyTest)2 ArrayList (java.util.ArrayList)2 ExecutorService (java.util.concurrent.ExecutorService)2 HazelcastInstanceImpl (com.hazelcast.instance.HazelcastInstanceImpl)1