SorinS
SorinS

Reputation: 180

How can I start Mule 3 embedded with minimum dependencies?

I am looking to start mule 3 embedded with minimum external dependencies (no spring, etc). Any hints of how to do so will be greatly appreciated. Thank you.

Upvotes: 3

Views: 1944

Answers (1)

David Dossot
David Dossot

Reputation: 33413

The following example creates a flow with an inbound VM endpoint and a string appender transformer. I believe it should get you started.

    MuleContext context = new DefaultMuleContextFactory().createMuleContext();
    MuleRegistry registry = context.getRegistry();

    EndpointBuilder testEndpointBuilder = new EndpointURIEndpointBuilder("vm://testFlow.in",
        context);
    testEndpointBuilder.setExchangePattern(MessageExchangePattern.REQUEST_RESPONSE);
    registry.registerEndpointBuilder("testFlow.in", testEndpointBuilder);

    InboundEndpoint vmInboundEndpoint = testEndpointBuilder.buildInboundEndpoint();
    registry.registerEndpoint(vmInboundEndpoint);

    StringAppendTransformer stringAppendTransformer = new StringAppendTransformer(" world");
    stringAppendTransformer.setMuleContext(context);

    Flow testFlow = new Flow("testFlow", context);
    testFlow.setMessageSource(vmInboundEndpoint);
    testFlow.setMessageProcessors(Arrays.asList((MessageProcessor) stringAppendTransformer));
    registry.registerFlowConstruct(testFlow);

    context.start();

    MuleClient muleClient = new MuleClient(context);
    MuleMessage response = muleClient.send("vm://testFlow.in", "hello", null);
    Validate.isTrue(response.getPayloadAsString().equals("hello world"));

    muleClient.dispose();
    context.stop();

Upvotes: 8

Related Questions