Package org.apache.camel.impl

Examples of org.apache.camel.impl.ConsumerCache


    public void testManageConsumerCache() throws Exception {
        // always register services in JMX so we can enlist our consumer template/cache
        context.getManagementStrategy().getManagementAgent().setRegisterAlways(true);

        ConsumerCache cache = new ConsumerCache(this, context);
        context.addService(cache);

        template.sendBody("direct:start", "Hello World");

        Exchange out = cache.getConsumer(context.getEndpoint("seda:queue")).receive(3000);
        assertNotNull("Should got an exchange", out);
        assertEquals("Hello World", out.getIn().getBody());

        // get the stats for the route
        MBeanServer mbeanServer = getMBeanServer();
View Full Code Here


    public void testManageConsumerCache() throws Exception {
        // always register services in JMX so we can enlist our consumer template/cache
        context.getManagementStrategy().getManagementAgent().setRegisterAlways(true);

        ConsumerCache cache = new ConsumerCache(this, context);
        context.addService(cache);

        template.sendBody("seda:a", "Hello World");

        Exchange out = cache.getConsumer(context.getEndpoint("seda:a")).receive(3000);
        assertNotNull("Should got an exchange", out);
        assertEquals("Hello World", out.getIn().getBody());

        // get the stats for the route
        MBeanServer mbeanServer = getMBeanServer();
        Set<ObjectName> set = mbeanServer.queryNames(new ObjectName("*:type=services,*"), null);
        List<ObjectName> list = new ArrayList<ObjectName>(set);
        ObjectName on = null;
        for (ObjectName name : list) {
            if (name.getCanonicalName().contains("ConsumerCache")) {
                on = name;
                break;
            }
        }

        assertNotNull("Should have found ConsumerCache", on);

        Integer max = (Integer) mbeanServer.getAttribute(on, "MaximumCacheSize");
        assertEquals(1000, max.intValue());

        Integer current = (Integer) mbeanServer.getAttribute(on, "Size");
        assertEquals(1, current.intValue());

        // since we only send 1 message we should have 0 hits and 1 miss
        Long hits = (Long) mbeanServer.getAttribute(on, "Hits");
        assertEquals(0, hits.longValue());
        Long misses = (Long) mbeanServer.getAttribute(on, "Misses");
        assertEquals(1, misses.longValue());


        // send more
        // ---------

        template.sendBody("seda:b", "Hello World");
        template.sendBody("seda:c", "Hello World");
        out = cache.getConsumer(context.getEndpoint("seda:b")).receive(3000);
        assertNotNull(out);
        out = cache.getConsumer(context.getEndpoint("seda:c")).receive(3000);
        assertNotNull(out);

        // we have only consumed from 3 different endpoints so all is misses
        hits = (Long) mbeanServer.getAttribute(on, "Hits");
        assertEquals(0, hits.longValue());
        misses = (Long) mbeanServer.getAttribute(on, "Misses");
        assertEquals(3, misses.longValue());


        // send to same endpoints
        // ----------------------

        template.sendBody("seda:a", "Bye World");
        template.sendBody("seda:b", "Bye World");
        out = cache.getConsumer(context.getEndpoint("seda:a")).receive(3000);
        assertNotNull(out);
        out = cache.getConsumer(context.getEndpoint("seda:b")).receive(3000);
        assertNotNull(out);

        // we should have hits now
        hits = (Long) mbeanServer.getAttribute(on, "Hits");
        assertEquals(2, hits.longValue());
View Full Code Here

        }

        // always register services in JMX so we can enlist our consumer template/cache
        context.getManagementStrategy().getManagementAgent().setRegisterAlways(true);

        ConsumerCache cache = new ConsumerCache(this, context);
        context.addService(cache);

        template.sendBody("seda:a", "Hello World");

        Exchange out = cache.getConsumer(context.getEndpoint("seda:a")).receive(3000);
        assertNotNull("Should got an exchange", out);
        assertEquals("Hello World", out.getIn().getBody());

        // get the stats for the route
        MBeanServer mbeanServer = getMBeanServer();
        Set<ObjectName> set = mbeanServer.queryNames(new ObjectName("*:type=services,*"), null);
        List<ObjectName> list = new ArrayList<ObjectName>(set);
        ObjectName on = null;
        for (ObjectName name : list) {
            if (name.getCanonicalName().contains("ConsumerCache")) {
                on = name;
                break;
            }
        }

        assertNotNull("Should have found ConsumerCache", on);

        Integer max = (Integer) mbeanServer.getAttribute(on, "MaximumCacheSize");
        assertEquals(1000, max.intValue());

        Integer current = (Integer) mbeanServer.getAttribute(on, "Size");
        assertEquals(1, current.intValue());

        // since we only send 1 message we should have 0 hits and 1 miss
        Long hits = (Long) mbeanServer.getAttribute(on, "Hits");
        assertEquals(0, hits.longValue());
        Long misses = (Long) mbeanServer.getAttribute(on, "Misses");
        assertEquals(1, misses.longValue());


        // send more
        // ---------

        template.sendBody("seda:b", "Hello World");
        template.sendBody("seda:c", "Hello World");
        out = cache.getConsumer(context.getEndpoint("seda:b")).receive(3000);
        assertNotNull(out);
        out = cache.getConsumer(context.getEndpoint("seda:c")).receive(3000);
        assertNotNull(out);

        // we have only consumed from 3 different endpoints so all is misses
        hits = (Long) mbeanServer.getAttribute(on, "Hits");
        assertEquals(0, hits.longValue());
        misses = (Long) mbeanServer.getAttribute(on, "Misses");
        assertEquals(3, misses.longValue());


        // send to same endpoints
        // ----------------------

        template.sendBody("seda:a", "Bye World");
        template.sendBody("seda:b", "Bye World");
        out = cache.getConsumer(context.getEndpoint("seda:a")).receive(3000);
        assertNotNull(out);
        out = cache.getConsumer(context.getEndpoint("seda:b")).receive(3000);
        assertNotNull(out);

        // we should have hits now
        hits = (Long) mbeanServer.getAttribute(on, "Hits");
        assertEquals(2, hits.longValue());
View Full Code Here

        }

        // always register services in JMX so we can enlist our consumer template/cache
        context.getManagementStrategy().getManagementAgent().setRegisterAlways(true);

        ConsumerCache cache = new ConsumerCache(this, context);
        context.addService(cache);

        template.sendBody("direct:start", "Hello World");

        Endpoint endpoint = context.getEndpoint("seda:queue");
        PollingConsumer consumer = cache.getConsumer(endpoint);
        Exchange out = consumer.receive(3000);
        assertNotNull("Should got an exchange", out);
        assertEquals("Hello World", out.getIn().getBody());

        // get the stats for the route
        MBeanServer mbeanServer = getMBeanServer();
        Set<ObjectName> set = mbeanServer.queryNames(new ObjectName("*:type=services,*"), null);
        List<ObjectName> list = new ArrayList<ObjectName>(set);
        ObjectName on = null;
        for (ObjectName name : list) {
            if (name.getCanonicalName().contains("ConsumerCache")) {
                on = name;
                break;
            }
        }

        assertNotNull("Should have found ConsumerCache", on);

        Integer max = (Integer) mbeanServer.getAttribute(on, "MaximumCacheSize");
        assertEquals(1000, max.intValue());

        Integer current = (Integer) mbeanServer.getAttribute(on, "Size");
        assertEquals(1, current.intValue());

        String source = (String) mbeanServer.getAttribute(on, "Source");
        assertNotNull(source);
        assertTrue(source.contains("testManageConsumerCache"));

        // purge
        mbeanServer.invoke(on, "purge", null, null);

        current = (Integer) mbeanServer.getAttribute(on, "Size");
        assertEquals(0, current.intValue());

        // stop the consumer as it was purged from the cache
        // so we need to manually stop it
        consumer.stop();
        cache.stop();
    }
View Full Code Here

    public void testManageConsumerCache() throws Exception {
        // always register services in JMX so we can enlist our consumer template/cache
        context.getManagementStrategy().getManagementAgent().setRegisterAlways(true);

        ConsumerCache cache = new ConsumerCache(this, context);
        context.addService(cache);

        template.sendBody("direct:start", "Hello World");

        Endpoint endpoint = context.getEndpoint("seda:queue");
        PollingConsumer consumer = cache.getConsumer(endpoint);
        Exchange out = consumer.receive(3000);
        assertNotNull("Should got an exchange", out);
        assertEquals("Hello World", out.getIn().getBody());

        // get the stats for the route
        MBeanServer mbeanServer = getMBeanServer();
        Set<ObjectName> set = mbeanServer.queryNames(new ObjectName("*:type=services,*"), null);
        List<ObjectName> list = new ArrayList<ObjectName>(set);
        ObjectName on = null;
        for (ObjectName name : list) {
            if (name.getCanonicalName().contains("ConsumerCache")) {
                on = name;
                break;
            }
        }

        assertNotNull("Should have found ConsumerCache", on);

        Integer max = (Integer) mbeanServer.getAttribute(on, "MaximumCacheSize");
        assertEquals(1000, max.intValue());

        Integer current = (Integer) mbeanServer.getAttribute(on, "Size");
        assertEquals(1, current.intValue());

        String source = (String) mbeanServer.getAttribute(on, "Source");
        assertNotNull(source);
        assertTrue(source.contains("testManageConsumerCache"));

        // purge
        mbeanServer.invoke(on, "purge", null, null);

        current = (Integer) mbeanServer.getAttribute(on, "Size");
        assertEquals(0, current.intValue());

        // stop the consumer as it was purged from the cache
        // so we need to manually stop it
        consumer.stop();
        cache.stop();
    }
View Full Code Here

TOP

Related Classes of org.apache.camel.impl.ConsumerCache

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.