Search in sources :

Example 36 with PollingConsumer

use of org.apache.camel.PollingConsumer in project syncope by apache.

the class CamelUserProvisioningManager method update.

@Override
@SuppressWarnings("unchecked")
public Pair<UserPatch, List<PropagationStatus>> update(final UserPatch userPatch, final boolean nullPriorityAsync) {
    PollingConsumer pollingConsumer = getConsumer("direct:updatePort");
    Map<String, Object> props = new HashMap<>();
    props.put("nullPriorityAsync", nullPriorityAsync);
    sendMessage("direct:updateUser", userPatch, props);
    Exchange exchange = pollingConsumer.receive();
    if (exchange.getProperty(Exchange.EXCEPTION_CAUGHT) != null) {
        throw (RuntimeException) exchange.getProperty(Exchange.EXCEPTION_CAUGHT);
    }
    return exchange.getIn().getBody(Pair.class);
}
Also used : Exchange(org.apache.camel.Exchange) PollingConsumer(org.apache.camel.PollingConsumer) HashMap(java.util.HashMap)

Example 37 with PollingConsumer

use of org.apache.camel.PollingConsumer in project camel by apache.

the class RssUriEncodingIssueTest method testUriIssue.

@Test
public void testUriIssue() throws Exception {
    String uri = "rss:http://api.flickr.com/services/feeds/photos_public.gne?id=23353282@N05&tags=lowlands&lang=en-us&format=rss_200";
    PollingConsumer consumer = context.getEndpoint(uri).createPollingConsumer();
    consumer.start();
    Exchange exchange = consumer.receive();
    log.info("Receive " + exchange);
    assertNotNull(exchange);
    assertNotNull(exchange.getIn().getBody());
    consumer.stop();
}
Also used : Exchange(org.apache.camel.Exchange) PollingConsumer(org.apache.camel.PollingConsumer) Test(org.junit.Test)

Example 38 with PollingConsumer

use of org.apache.camel.PollingConsumer in project camel by apache.

the class EmptyConsumerCache method acquirePollingConsumer.

@Override
public PollingConsumer acquirePollingConsumer(Endpoint endpoint) {
    // always create a new consumer
    PollingConsumer answer;
    try {
        answer = endpoint.createPollingConsumer();
        boolean singleton = true;
        if (answer instanceof IsSingleton) {
            singleton = ((IsSingleton) answer).isSingleton();
        }
        if (getCamelContext().isStartingRoutes() && singleton) {
            // if we are currently starting a route, then add as service and enlist in JMX
            // - but do not enlist non-singletons in JMX
            // - note addService will also start the service
            getCamelContext().addService(answer);
        } else {
            // must then start service so producer is ready to be used
            ServiceHelper.startService(answer);
        }
    } catch (Exception e) {
        throw new FailedToCreateConsumerException(endpoint, e);
    }
    return answer;
}
Also used : PollingConsumer(org.apache.camel.PollingConsumer) FailedToCreateConsumerException(org.apache.camel.FailedToCreateConsumerException) IsSingleton(org.apache.camel.IsSingleton) FailedToCreateConsumerException(org.apache.camel.FailedToCreateConsumerException)

Example 39 with PollingConsumer

use of org.apache.camel.PollingConsumer in project camel by apache.

the class ProcessorEndpoint method createPollingConsumer.

@Override
public PollingConsumer createPollingConsumer() throws Exception {
    PollingConsumer answer = new ProcessorPollingConsumer(this, getProcessor());
    configurePollingConsumer(answer);
    return answer;
}
Also used : PollingConsumer(org.apache.camel.PollingConsumer)

Example 40 with PollingConsumer

use of org.apache.camel.PollingConsumer in project camel by apache.

the class ManagedConsumerCacheTest method testManageConsumerCache.

public void testManageConsumerCache() throws Exception {
    // JMX tests dont work well on AIX CI servers (hangs them)
    if (isPlatform("aix")) {
        return;
    }
    // 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();
}
Also used : Exchange(org.apache.camel.Exchange) PollingConsumer(org.apache.camel.PollingConsumer) Endpoint(org.apache.camel.Endpoint) ArrayList(java.util.ArrayList) ConsumerCache(org.apache.camel.impl.ConsumerCache) MBeanServer(javax.management.MBeanServer) ObjectName(javax.management.ObjectName)

Aggregations

PollingConsumer (org.apache.camel.PollingConsumer)73 Exchange (org.apache.camel.Exchange)41 Test (org.junit.Test)27 HashMap (java.util.HashMap)21 CamelContext (org.apache.camel.CamelContext)21 DefaultCamelContext (org.apache.camel.impl.DefaultCamelContext)21 RouteBuilder (org.apache.camel.builder.RouteBuilder)19 Endpoint (org.apache.camel.Endpoint)10 Connection (javax.jms.Connection)9 Transactional (org.springframework.transaction.annotation.Transactional)9 ConnectionFactory (javax.jms.ConnectionFactory)7 JMSException (javax.jms.JMSException)7 MessageConversionException (org.springframework.jms.support.converter.MessageConversionException)5 ProducerTemplate (org.apache.camel.ProducerTemplate)4 WorkflowResult (org.apache.syncope.core.provisioning.api.WorkflowResult)4 Message (javax.jms.Message)3 Session (javax.jms.Session)3 TextMessage (javax.jms.TextMessage)3 ActiveMQTextMessage (org.apache.activemq.command.ActiveMQTextMessage)3 File (java.io.File)2