blob: 48b4ef86574ae25fb1c7a421bf8cee9b96165391 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.camel.view;
import org.apache.camel.ContextTestSupport;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.builder.xml.XPathBuilder;
import org.apache.camel.component.bean.MyFooBean;
import org.apache.camel.impl.JndiRegistry;
import org.apache.camel.processor.aggregate.UseLatestAggregationStrategy;
/**
* @version
*/
public class DotViewTest extends ContextTestSupport {
protected String outputDirectory = "target/site/cameldoc";
public void testGenerateFiles() throws Exception {
RouteDotGenerator generator = new RouteDotGenerator(outputDirectory);
generator.drawRoutes(context);
}
@Override
protected JndiRegistry createRegistry() throws Exception {
JndiRegistry jndi = super.createRegistry();
jndi.bind("myBean", new MyFooBean());
return jndi;
}
@Override
protected void setUp() throws Exception {
super.setUp();
context.addRoutes(new MulticastRoute());
context.addRoutes(new PipelineRoute());
context.addRoutes(new AnotherPipelineRoute());
context.addRoutes(new FromToRoute());
context.addRoutes(new ChoiceRoute());
context.addRoutes(new FilterRoute());
context.addRoutes(new ComplexRoute());
context.addRoutes(new FromToBeanRoute());
context.addRoutes(new RoutingSlipRoute());
context.addRoutes(new AggreagateRoute());
context.addRoutes(new ResequenceRoute());
}
static class MulticastRoute extends RouteBuilder {
public void configure() throws Exception {
from("seda:multicast.in").
multicast().to("seda:multicast.out1", "seda:multicast.out2", "seda:multicast.out3");
}
}
static class PipelineRoute extends RouteBuilder {
public void configure() throws Exception {
from("seda:pipeline.in").to("seda:pipeline.out1", "seda:pipeline.out2", "seda:pipeline.out3");
}
}
static class AnotherPipelineRoute extends RouteBuilder {
public void configure() throws Exception {
from("seda:pipeline.in").pipeline("seda:pipeline.out1", "seda:pipeline.out2", "seda:pipeline.out3");
}
}
static class FromToRoute extends RouteBuilder {
public void configure() throws Exception {
from("seda:foo").to("seda:bar");
}
}
static class FromToBeanRoute extends RouteBuilder {
public void configure() throws Exception {
from("seda:foo").beanRef("myBean", "hello");
}
}
static class RoutingSlipRoute extends RouteBuilder {
public void configure() throws Exception {
from("seda:foo").routingSlip("splipHeader");
}
}
static class AggreagateRoute extends RouteBuilder {
public void configure() throws Exception {
from("seda:foo")
.aggregate(constant("messageId"), new UseLatestAggregationStrategy()).completionTimeout(1000L).
to("seda:aggregated");
}
}
static class ResequenceRoute extends RouteBuilder {
public void configure() throws Exception {
from("seda:foo").resequence(constant("seqNum")).to("seda:bar");
}
}
static class ChoiceRoute extends RouteBuilder {
public void configure() throws Exception {
from("file:target/foo/xyz?noop=true").
choice().
when(xpath("/person/city = 'London'")).to("file:target/messages/uk").
otherwise().to("file:target/messages/others");
}
}
static class FilterRoute extends RouteBuilder {
public void configure() throws Exception {
from("file:target/foo/bar?noop=true").filter(header("foo").isEqualTo("bar"))
.to("file:target/xyz?noop=true");
}
}
static class ComplexRoute extends RouteBuilder {
public void configure() throws Exception {
from("file:target/xyz?noop=true").filter(header("foo").isEqualTo("bar"))
.recipientList(header("bar")).split(XPathBuilder.xpath("/invoice/lineItems")).throttle(3)
.to("mock:result");
}
}
}