Search in sources :

Example 1 with DiscoveryEvent

use of org.apache.activemq.command.DiscoveryEvent in project fabric8 by jboss-fuse.

the class ServiceFactoryTest method testDiscoveryOnRestartCurator.

@Test
public void testDiscoveryOnRestartCurator() throws Exception {
    underTest = new ActiveMQServiceFactory();
    underTest.curator = curator;
    Properties props = new Properties();
    props.put("config", "amq.xml");
    props.put("broker-name", "amq");
    props.put("group", "amq");
    props.put("connectors", "openwire");
    props.put("openwire-port", "0");
    props.put("container.ip", "localhost");
    underTest.updated("b", props);
    final AtomicReference<CuratorFramework> curatorFrameworkAtomicReference = new AtomicReference<>(curator);
    OsgiFabricDiscoveryAgent osgiFabricDiscoveryAgent = new OsgiFabricDiscoveryAgent(new BundleContext() {

        @Override
        public String getProperty(String s) {
            return null;
        }

        @Override
        public Bundle getBundle() {
            return null;
        }

        @Override
        public Bundle installBundle(String s, InputStream inputStream) throws BundleException {
            return null;
        }

        @Override
        public Bundle installBundle(String s) throws BundleException {
            return null;
        }

        @Override
        public Bundle getBundle(long l) {
            return null;
        }

        @Override
        public Bundle[] getBundles() {
            return new Bundle[0];
        }

        @Override
        public void addServiceListener(ServiceListener serviceListener, String s) throws InvalidSyntaxException {
        }

        @Override
        public void addServiceListener(ServiceListener serviceListener) {
        }

        @Override
        public void removeServiceListener(ServiceListener serviceListener) {
        }

        @Override
        public void addBundleListener(BundleListener bundleListener) {
        }

        @Override
        public void removeBundleListener(BundleListener bundleListener) {
        }

        @Override
        public void addFrameworkListener(FrameworkListener frameworkListener) {
        }

        @Override
        public void removeFrameworkListener(FrameworkListener frameworkListener) {
        }

        @Override
        public ServiceRegistration<?> registerService(String[] strings, Object o, Dictionary<String, ?> dictionary) {
            return null;
        }

        @Override
        public ServiceRegistration<?> registerService(String s, Object o, Dictionary<String, ?> dictionary) {
            return null;
        }

        @Override
        public <S> ServiceRegistration<S> registerService(Class<S> aClass, S s, Dictionary<String, ?> dictionary) {
            return null;
        }

        @Override
        public ServiceReference<?>[] getServiceReferences(String s, String s1) throws InvalidSyntaxException {
            return new ServiceReference<?>[0];
        }

        @Override
        public ServiceReference<?>[] getAllServiceReferences(String s, String s1) throws InvalidSyntaxException {
            return new ServiceReference<?>[0];
        }

        @Override
        public ServiceReference<?> getServiceReference(String s) {
            return null;
        }

        @Override
        public <S> ServiceReference<S> getServiceReference(Class<S> aClass) {
            return null;
        }

        @Override
        public <S> Collection<ServiceReference<S>> getServiceReferences(Class<S> aClass, String s) throws InvalidSyntaxException {
            return null;
        }

        @Override
        public <S> S getService(ServiceReference<S> serviceReference) {
            return (S) curatorFrameworkAtomicReference.get();
        }

        @Override
        public boolean ungetService(ServiceReference<?> serviceReference) {
            return false;
        }

        @Override
        public File getDataFile(String s) {
            return null;
        }

        @Override
        public Filter createFilter(String s) throws InvalidSyntaxException {
            return null;
        }

        @Override
        public Bundle getBundle(String s) {
            return null;
        }
    });
    final LinkedBlockingQueue<DiscoveryEvent> discoveryEvents = new LinkedBlockingQueue<DiscoveryEvent>(10);
    osgiFabricDiscoveryAgent.setDiscoveryListener(new DiscoveryListener() {

        @Override
        public void onServiceAdd(DiscoveryEvent discoveryEvent) {
            discoveryEvents.offer(discoveryEvent);
        }

        @Override
        public void onServiceRemove(DiscoveryEvent discoveryEvent) {
        }
    });
    // will call into dummy bundle and get curator
    osgiFabricDiscoveryAgent.addingService(null);
    osgiFabricDiscoveryAgent.setGroupName("amq");
    osgiFabricDiscoveryAgent.start();
    DiscoveryEvent event = discoveryEvents.poll(5, TimeUnit.SECONDS);
    LOG.info("event: " + event);
    assertNotNull("got added service", event);
    underTest.deleted("b");
    // swap curator ref
    CuratorFrameworkFactory.Builder builder = CuratorFrameworkFactory.builder().connectString("localhost:" + zkPort).sessionTimeoutMs(15000).retryPolicy(new RetryNTimes(5000, 1000));
    curator = builder.build();
    LOG.debug("Starting new curator " + curator);
    curator.start();
    curatorFrameworkAtomicReference.get().close();
    curatorFrameworkAtomicReference.set(curator);
    // will call into dummy bundle and get new curator ref
    osgiFabricDiscoveryAgent.addingService(null);
    // start broker again
    underTest.curator = curator;
    underTest.updated("b", props);
    event = discoveryEvents.poll(5, TimeUnit.SECONDS);
    LOG.info("new event: " + event);
    assertNotNull("got newly added service", event);
    underTest.deleted("b");
}
Also used : CuratorFrameworkFactory(org.apache.curator.framework.CuratorFrameworkFactory) DiscoveryEvent(org.apache.activemq.command.DiscoveryEvent) Properties(java.util.Properties) LinkedBlockingQueue(java.util.concurrent.LinkedBlockingQueue) CuratorFramework(org.apache.curator.framework.CuratorFramework) RetryNTimes(org.apache.curator.retry.RetryNTimes) InputStream(java.io.InputStream) AtomicReference(java.util.concurrent.atomic.AtomicReference) OsgiFabricDiscoveryAgent(io.fabric8.mq.fabric.discovery.OsgiFabricDiscoveryAgent) Collection(java.util.Collection) File(java.io.File) DiscoveryListener(org.apache.activemq.transport.discovery.DiscoveryListener) Test(org.junit.Test)

Example 2 with DiscoveryEvent

use of org.apache.activemq.command.DiscoveryEvent in project activemq-artemis by apache.

the class DiscoveryEventTest method populateObject.

@Override
protected void populateObject(Object object) throws Exception {
    super.populateObject(object);
    DiscoveryEvent info = (DiscoveryEvent) object;
    info.setServiceName("ServiceName:1");
    info.setBrokerName("BrokerName:2");
}
Also used : DiscoveryEvent(org.apache.activemq.command.DiscoveryEvent)

Example 3 with DiscoveryEvent

use of org.apache.activemq.command.DiscoveryEvent in project activemq-artemis by apache.

the class DiscoveryEventTest method createObject.

@Override
public Object createObject() throws Exception {
    DiscoveryEvent info = new DiscoveryEvent();
    populateObject(info);
    return info;
}
Also used : DiscoveryEvent(org.apache.activemq.command.DiscoveryEvent)

Example 4 with DiscoveryEvent

use of org.apache.activemq.command.DiscoveryEvent in project activemq-artemis by apache.

the class DiscoveryEventTest method populateObject.

@Override
protected void populateObject(Object object) throws Exception {
    super.populateObject(object);
    DiscoveryEvent info = (DiscoveryEvent) object;
    info.setServiceName("ServiceName:1");
    info.setBrokerName("BrokerName:2");
}
Also used : DiscoveryEvent(org.apache.activemq.command.DiscoveryEvent)

Example 5 with DiscoveryEvent

use of org.apache.activemq.command.DiscoveryEvent in project activemq-artemis by apache.

the class DiscoveryEventTest method createObject.

@Override
public Object createObject() throws Exception {
    DiscoveryEvent info = new DiscoveryEvent();
    populateObject(info);
    return info;
}
Also used : DiscoveryEvent(org.apache.activemq.command.DiscoveryEvent)

Aggregations

DiscoveryEvent (org.apache.activemq.command.DiscoveryEvent)22 URI (java.net.URI)2 StubCompositeTransport (org.apache.activemq.transport.StubCompositeTransport)2 DiscoveryListener (org.apache.activemq.transport.discovery.DiscoveryListener)2 CompositeData (org.apache.activemq.util.URISupport.CompositeData)2 CuratorFramework (org.apache.curator.framework.CuratorFramework)2 FabricDiscoveryAgent (io.fabric8.mq.fabric.discovery.FabricDiscoveryAgent)1 OsgiFabricDiscoveryAgent (io.fabric8.mq.fabric.discovery.OsgiFabricDiscoveryAgent)1 File (java.io.File)1 InputStream (java.io.InputStream)1 Collection (java.util.Collection)1 Properties (java.util.Properties)1 CountDownLatch (java.util.concurrent.CountDownLatch)1 LinkedBlockingQueue (java.util.concurrent.LinkedBlockingQueue)1 AtomicReference (java.util.concurrent.atomic.AtomicReference)1 CuratorFrameworkFactory (org.apache.curator.framework.CuratorFrameworkFactory)1 RetryNTimes (org.apache.curator.retry.RetryNTimes)1 Test (org.junit.Test)1