Thanks Claus, Yes, that shouldn't be there.
Hadrian On Jan 29, 2011, at 3:12 AM, Claus Ibsen wrote: > Hi Ashwin > > You seemed to add the file > camel/trunk/.DS_Store > by mistake. > > Its a hidden file for Mac > http://en.wikipedia.org/wiki/.DS_Store > > I would assume we should remove it from SVN. > > > On Fri, Jan 28, 2011 at 10:43 PM, <aka...@apache.org> wrote: >> Author: akarpe >> Date: Fri Jan 28 21:43:25 2011 >> New Revision: 1064901 >> >> URL: http://svn.apache.org/viewvc?rev=1064901&view=rev >> Log: >> CAMEL-3254 Added ability to set multiple policies on a route in Spring >> and via API's >> >> Added: >> camel/trunk/.DS_Store >> >> camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/MultiplePoliciesOnRouteTest.java >> >> camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringMultiplePoliciesOnRouteTest.java >> >> camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/MultiplePolicies.xml >> Modified: >> >> camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java >> >> camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java >> >> camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java >> >> camel/trunk/camel-core/src/main/java/org/apache/camel/spi/RouteContext.java >> camel/trunk/components/camel-quartz/pom.xml >> >> camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledJob.java >> >> camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringScheduledRoutePolicyTest.java >> >> Added: camel/trunk/.DS_Store >> URL: http://svn.apache.org/viewvc/camel/trunk/.DS_Store?rev=1064901&view=auto >> ============================================================================== >> Files camel/trunk/.DS_Store (added) and camel/trunk/.DS_Store Fri Jan 28 >> 21:43:25 2011 differ >> >> Modified: >> camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java >> URL: >> http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java?rev=1064901&r1=1064900&r2=1064901&view=diff >> ============================================================================== >> --- >> camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java >> (original) >> +++ >> camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteContext.java >> Fri Jan 28 21:43:25 2011 >> @@ -63,7 +63,7 @@ public class DefaultRouteContext impleme >> private Boolean handleFault; >> private Long delay; >> private Boolean autoStartup = Boolean.TRUE; >> - private RoutePolicy routePolicy; >> + private List<RoutePolicy> routePolicyList = new >> ArrayList<RoutePolicy>(); >> private ShutdownRoute shutdownRoute; >> private ShutdownRunningTask shutdownRunningTask; >> >> @@ -154,15 +154,24 @@ public class DefaultRouteContext impleme >> >> // and then optionally add route policy processor if a custom >> policy is set >> RoutePolicyProcessor routePolicyProcessor = null; >> - RoutePolicy policy = getRoutePolicy(); >> - if (policy != null) { >> - routePolicyProcessor = new >> RoutePolicyProcessor(unitOfWorkProcessor, policy); >> - // add it as service if we have not already done that (eg >> possible if two routes have the same service) >> - if (!camelContext.hasService(policy)) { >> - try { >> - camelContext.addService(policy); >> - } catch (Exception e) { >> - throw ObjectHelper.wrapRuntimeCamelException(e); >> + List<RoutePolicy> policyList = getRoutePolicyList(); >> + if (!policyList.isEmpty()) { >> + boolean firstPolicy = true; >> + for (RoutePolicy policy : policyList) { >> + if (firstPolicy) { >> + routePolicyProcessor = new >> RoutePolicyProcessor(unitOfWorkProcessor, policy); >> + firstPolicy = false; >> + } else { >> + routePolicyProcessor = new >> RoutePolicyProcessor(routePolicyProcessor, policy); >> + } >> + >> + // add it as service if we have not already done that >> (eg possible if two routes have the same service) >> + if (!camelContext.hasService(policy)) { >> + try { >> + camelContext.addService(policy); >> + } catch (Exception e) { >> + throw ObjectHelper.wrapRuntimeCamelException(e); >> + } >> } >> } >> target = routePolicyProcessor; >> @@ -190,8 +199,10 @@ public class DefaultRouteContext impleme >> } >> >> // invoke init on route policy >> - if (policy != null) { >> - policy.onInit(edcr); >> + if (!policyList.isEmpty()) { >> + for (RoutePolicy policy : policyList) { >> + policy.onInit(edcr); >> + } >> } >> >> routes.add(edcr); >> @@ -319,15 +330,7 @@ public class DefaultRouteContext impleme >> return getCamelContext().getShutdownRunningTask(); >> } >> } >> - >> - public RoutePolicy getRoutePolicy() { >> - return routePolicy; >> - } >> - >> - public void setRoutePolicy(RoutePolicy routePolicy) { >> - this.routePolicy = routePolicy; >> - } >> - >> + >> public int getAndIncrement(ProcessorDefinition<?> node) { >> AtomicInteger count = nodeIndex.get(node); >> if (count == null) { >> @@ -336,4 +339,12 @@ public class DefaultRouteContext impleme >> } >> return count.getAndIncrement(); >> } >> + >> + public void setRoutePolicyList(List<RoutePolicy> routePolicyList) { >> + this.routePolicyList = routePolicyList; >> + } >> + >> + public List<RoutePolicy> getRoutePolicyList() { >> + return routePolicyList; >> + } >> } >> >> Modified: >> camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java >> URL: >> http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java?rev=1064901&r1=1064900&r2=1064901&view=diff >> ============================================================================== >> --- >> camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java >> (original) >> +++ >> camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java >> Fri Jan 28 21:43:25 2011 >> @@ -16,6 +16,7 @@ >> */ >> package org.apache.camel.management.mbean; >> >> +import java.util.List; >> import java.util.concurrent.TimeUnit; >> >> import org.apache.camel.CamelContext; >> @@ -107,13 +108,17 @@ public class ManagedRoute extends Manage >> route.getRouteContext().setTracing(tracing); >> } >> >> - @ManagedAttribute(description = "Route Policy") >> - public String getRoutePolicy() { >> - RoutePolicy policy = route.getRouteContext().getRoutePolicy(); >> - if (policy != null) { >> + @ManagedAttribute(description = "Route Policy List") >> + public String getRoutePolicyList() { >> + List<RoutePolicy> policyList = >> route.getRouteContext().getRoutePolicyList(); >> + if (policyList != null) { >> StringBuilder sb = new StringBuilder(); >> - sb.append(policy.getClass().getSimpleName()); >> - >> sb.append("(").append(ObjectHelper.getIdentityHashCode(policy)).append(")"); >> + for (RoutePolicy policy : policyList) { >> + sb.append(policy.getClass().getSimpleName()); >> + >> sb.append("(").append(ObjectHelper.getIdentityHashCode(policy)).append(")"); >> + sb.append(", "); >> + } >> + sb = sb.delete(sb.lastIndexOf(", "), sb.length() - 1); >> return sb.toString(); >> } >> return null; >> >> Modified: >> camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java >> URL: >> http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java?rev=1064901&r1=1064900&r2=1064901&view=diff >> ============================================================================== >> --- >> camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java >> (original) >> +++ >> camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java >> Fri Jan 28 21:43:25 2011 >> @@ -19,6 +19,7 @@ package org.apache.camel.model; >> import java.util.ArrayList; >> import java.util.Collection; >> import java.util.List; >> +import java.util.StringTokenizer; >> import java.util.concurrent.atomic.AtomicBoolean; >> import javax.xml.bind.annotation.XmlAccessType; >> import javax.xml.bind.annotation.XmlAccessorType; >> @@ -699,13 +700,16 @@ public class RouteDefinition extends Pro >> if (log.isDebugEnabled()) { >> log.debug("RoutePolicy is enabled: " + routePolicy + " on >> route: " + this); >> } >> - routeContext.setRoutePolicy(getRoutePolicy()); >> + routeContext.getRoutePolicyList().add(getRoutePolicy()); >> } else if (routePolicyRef != null) { >> - RoutePolicy policy = >> CamelContextHelper.mandatoryLookup(camelContext, routePolicyRef, >> RoutePolicy.class); >> - if (log.isDebugEnabled()) { >> - log.debug("RoutePolicy is enabled: " + policy + " on route: >> " + this); >> + StringTokenizer policyTokens = new >> StringTokenizer(routePolicyRef, ","); >> + while (policyTokens.hasMoreTokens()) { >> + RoutePolicy policy = >> CamelContextHelper.mandatoryLookup(camelContext, >> policyTokens.nextToken().trim(), RoutePolicy.class); >> + if (log.isDebugEnabled()) { >> + log.debug("RoutePolicy is enabled: " + policy + " on >> route: " + this); >> + } >> + routeContext.getRoutePolicyList().add(policy); >> } >> - routeContext.setRoutePolicy(policy); >> } >> >> // configure auto startup >> >> Modified: >> camel/trunk/camel-core/src/main/java/org/apache/camel/spi/RouteContext.java >> URL: >> http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/spi/RouteContext.java?rev=1064901&r1=1064900&r2=1064901&view=diff >> ============================================================================== >> --- >> camel/trunk/camel-core/src/main/java/org/apache/camel/spi/RouteContext.java >> (original) >> +++ >> camel/trunk/camel-core/src/main/java/org/apache/camel/spi/RouteContext.java >> Fri Jan 28 21:43:25 2011 >> @@ -173,18 +173,18 @@ public interface RouteContext extends Ru >> boolean isRouteAdded(); >> >> /** >> - * Gets the route policy >> + * Gets the route policy List >> * >> - * @return the route policy if any >> + * @return the route policy list if any >> */ >> - RoutePolicy getRoutePolicy(); >> + List<RoutePolicy> getRoutePolicyList(); >> >> /** >> - * Sets a custom route policy >> + * Sets a custom route policy List >> * >> - * @param routePolicy the custom route policy >> + * @param routePolicyList the custom route policy list >> */ >> - void setRoutePolicy(RoutePolicy routePolicy); >> + void setRoutePolicyList(List<RoutePolicy> routePolicyList); >> >> /** >> * A private counter that increments, is used to as book keeping >> >> Modified: camel/trunk/components/camel-quartz/pom.xml >> URL: >> http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/pom.xml?rev=1064901&r1=1064900&r2=1064901&view=diff >> ============================================================================== >> --- camel/trunk/components/camel-quartz/pom.xml (original) >> +++ camel/trunk/components/camel-quartz/pom.xml Fri Jan 28 21:43:25 2011 >> @@ -73,6 +73,11 @@ >> </dependency> >> <dependency> >> <groupId>org.apache.camel</groupId> >> + <artifactId>camel-core-xml</artifactId> >> + <scope>test</scope> >> + </dependency> >> + <dependency> >> + <groupId>org.apache.camel</groupId> >> <artifactId>camel-test</artifactId> >> <scope>test</scope> >> </dependency> >> >> Modified: >> camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledJob.java >> URL: >> http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledJob.java?rev=1064901&r1=1064900&r2=1064901&view=diff >> ============================================================================== >> --- >> camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledJob.java >> (original) >> +++ >> camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledJob.java >> Fri Jan 28 21:43:25 2011 >> @@ -17,8 +17,10 @@ >> package org.apache.camel.routepolicy.quartz; >> >> import java.io.Serializable; >> +import java.util.List; >> >> import org.apache.camel.Route; >> +import org.apache.camel.spi.RoutePolicy; >> import org.quartz.Job; >> import org.quartz.JobExecutionContext; >> import org.quartz.JobExecutionException; >> @@ -45,11 +47,15 @@ public class ScheduledJob implements Job >> Action storedAction = state.getAction(); >> storedRoute = state.getRoute(); >> >> - ScheduledRoutePolicy policy = (ScheduledRoutePolicy) >> storedRoute.getRouteContext().getRoutePolicy(); >> - try { >> - policy.onJobExecute(storedAction, storedRoute); >> - } catch (Exception e) { >> - throw new JobExecutionException("Failed to execute Scheduled >> Job for route " + storedRoute.getId() + " with trigger name: " + >> jobExecutionContext.getTrigger().getFullName()); >> + List<RoutePolicy> policyList = >> storedRoute.getRouteContext().getRoutePolicyList(); >> + for (RoutePolicy policy : policyList) { >> + try { >> + if (policy instanceof ScheduledRoutePolicy) { >> + >> ((ScheduledRoutePolicy)policy).onJobExecute(storedAction, storedRoute); >> + } >> + } catch (Exception e) { >> + throw new JobExecutionException("Failed to execute >> Scheduled Job for route " + storedRoute.getId() + " with trigger name: " + >> jobExecutionContext.getTrigger().getFullName()); >> + } >> } >> } >> >> >> Added: >> camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/MultiplePoliciesOnRouteTest.java >> URL: >> http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/MultiplePoliciesOnRouteTest.java?rev=1064901&view=auto >> ============================================================================== >> --- >> camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/MultiplePoliciesOnRouteTest.java >> (added) >> +++ >> camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/MultiplePoliciesOnRouteTest.java >> Fri Jan 28 21:43:25 2011 >> @@ -0,0 +1,112 @@ >> +/** >> + * 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.routepolicy.quartz; >> + >> +import java.util.Date; >> +import java.util.concurrent.TimeUnit; >> + >> +import org.apache.camel.CamelExecutionException; >> +import org.apache.camel.ServiceStatus; >> +import org.apache.camel.builder.RouteBuilder; >> +import org.apache.camel.component.mock.MockEndpoint; >> +import org.apache.camel.component.quartz.QuartzComponent; >> +import org.apache.camel.impl.JndiRegistry; >> +import org.apache.camel.impl.ThrottlingInflightRoutePolicy; >> +import org.apache.camel.spi.RoutePolicy; >> +import org.apache.camel.test.junit4.CamelTestSupport; >> +import org.apache.camel.util.ServiceHelper; >> +import org.apache.commons.logging.Log; >> +import org.apache.commons.logging.LogFactory; >> +import org.junit.Test; >> + >> +/** >> + * @version $Revision: 882486 $ >> + */ >> +public class MultiplePoliciesOnRouteTest extends CamelTestSupport { >> + private static final transient Log LOG = >> LogFactory.getLog(MultiplePoliciesOnRouteTest.class); >> + private String url = "seda:foo?concurrentConsumers=20"; >> + private int size = 100; >> + >> + /* (non-Javadoc) >> + * @see org.apache.camel.test.junit4.CamelTestSupport#s;etUp() >> + */ >> + @Override >> + public void setUp() throws Exception { >> + super.setUp(); >> + } >> + >> + @Override >> + protected JndiRegistry createRegistry() throws Exception { >> + JndiRegistry registry = new JndiRegistry(createJndiContext()); >> + registry.bind("startPolicy", createRouteStartPolicy()); >> + registry.bind("throttlePolicy", createThrottlePolicy()); >> + return registry; >> + } >> + >> + /* (non-Javadoc) >> + * @see >> org.apache.camel.test.junit4.CamelTestSupport#isUseRouteBuilder() >> + */ >> + @Override >> + public boolean isUseRouteBuilder() { >> + return false; >> + } >> + >> + private RoutePolicy createRouteStartPolicy() { >> + SimpleScheduledRoutePolicy policy = new >> SimpleScheduledRoutePolicy(); >> + long startTime = System.currentTimeMillis() + 3000L; >> + policy.setRouteStartDate(new Date(startTime)); >> + policy.setRouteStartRepeatCount(1); >> + policy.setRouteStartRepeatInterval(3000); >> + >> + return policy; >> + } >> + >> + private RoutePolicy createThrottlePolicy() { >> + ThrottlingInflightRoutePolicy policy = new >> ThrottlingInflightRoutePolicy(); >> + policy.setMaxInflightExchanges(10); >> + return policy; >> + } >> + >> + @Test >> + public void testMultiplePoliciesOnRoute() throws Exception { >> + MockEndpoint success = (MockEndpoint) >> context.getEndpoint("mock:success"); >> + >> + success.expectedMinimumMessageCount(size - 10); >> + >> + context.getComponent("quartz", >> QuartzComponent.class).setPropertiesFile("org/apache/camel/routepolicy/quartz/myquartz.properties"); >> + context.getComponent("quartz", QuartzComponent.class).start(); >> + context.addRoutes(new RouteBuilder() { >> + public void configure() { >> + from(url) >> + .routeId("test") >> + .routePolicyRef("startPolicy, throttlePolicy") >> + .to("log:foo?groupSize=10") >> + .to("mock:success"); >> + } >> + }); >> + context.start(); >> + assertTrue(context.getRouteStatus("test") == ServiceStatus.Started); >> + for (int i = 0; i < size; i++) { >> + template.sendBody(url, "Message " + i); >> + Thread.sleep(3); >> + } >> + >> + context.getComponent("quartz", QuartzComponent.class).stop(); >> + success.assertIsSatisfied(); >> + } >> + >> +} >> >> Added: >> camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringMultiplePoliciesOnRouteTest.java >> URL: >> http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringMultiplePoliciesOnRouteTest.java?rev=1064901&view=auto >> ============================================================================== >> --- >> camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringMultiplePoliciesOnRouteTest.java >> (added) >> +++ >> camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringMultiplePoliciesOnRouteTest.java >> Fri Jan 28 21:43:25 2011 >> @@ -0,0 +1,56 @@ >> +/** >> + * 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.routepolicy.quartz; >> + >> +import org.apache.camel.test.CamelSpringTestSupport; >> +import org.apache.camel.test.CamelTestSupport; >> +import org.junit.Before; >> +import org.junit.Test; >> +import org.springframework.context.support.AbstractApplicationContext; >> +import org.springframework.context.support.ClassPathXmlApplicationContext; >> + >> +/** >> + * @version $Revision$ >> + */ >> +public class SpringMultiplePoliciesOnRouteTest extends >> CamelSpringTestSupport { >> + private String url = "seda:foo?concurrentConsumers=20"; >> + private int size = 100; >> + >> + @Test >> + public void testMultiplePoliciesOnRoute() throws Exception { >> + // we use seda which are not persistent and hence can loose a >> message >> + // when we get graceful shutdown support we can prevent this >> + getMockEndpoint("mock:success").expectedMinimumMessageCount(size - >> 10); >> + >> + for (int i = 0; i < size; i++) { >> + template.sendBody(url, "Message " + i); >> + Thread.sleep(3); >> + } >> + >> + assertMockEndpointsSatisfied(); >> + } >> + >> + /* (non-Javadoc) >> + * @see >> org.apache.camel.test.CamelSpringTestSupport#createApplicationContext() >> + */ >> + @Override >> + protected AbstractApplicationContext createApplicationContext() { >> + // TODO Auto-generated method stub >> + return new >> ClassPathXmlApplicationContext("org/apache/camel/routepolicy/quartz/MultiplePolicies.xml"); >> + } >> + >> +} >> >> Modified: >> camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringScheduledRoutePolicyTest.java >> URL: >> http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringScheduledRoutePolicyTest.java?rev=1064901&r1=1064900&r2=1064901&view=diff >> ============================================================================== >> --- >> camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringScheduledRoutePolicyTest.java >> (original) >> +++ >> camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/routepolicy/quartz/SpringScheduledRoutePolicyTest.java >> Fri Jan 28 21:43:25 2011 >> @@ -117,7 +117,7 @@ public abstract class SpringScheduledRou >> context.start(); >> return context; >> } >> - >> + >> public ClassPathXmlApplicationContext getApplicationContext() { >> return applicationContext; >> } >> >> Added: >> camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/MultiplePolicies.xml >> URL: >> http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/MultiplePolicies.xml?rev=1064901&view=auto >> ============================================================================== >> --- >> camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/MultiplePolicies.xml >> (added) >> +++ >> camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/routepolicy/quartz/MultiplePolicies.xml >> Fri Jan 28 21:43:25 2011 >> @@ -0,0 +1,44 @@ >> +<?xml version="1.0" encoding="UTF-8"?> >> +<!-- >> + 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. >> +--> >> +<beans xmlns="http://www.springframework.org/schema/beans" >> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> + xsi:schemaLocation=" >> + http://www.springframework.org/schema/beans >> http://www.springframework.org/schema/beans/spring-beans.xsd >> + http://camel.apache.org/schema/spring >> http://camel.apache.org/schema/spring/camel-spring.xsd >> + "> >> + >> + <bean id="date" class="org.apache.camel.routepolicy.quartz.SimpleDate"/> >> + >> + <bean id="startPolicy" >> class="org.apache.camel.routepolicy.quartz.SimpleScheduledRoutePolicy"> >> + <property name="routeStartDate" ref="date"/> >> + <property name="routeStartRepeatCount" value="1"/> >> + <property name="routeStartRepeatInterval" value="3000"/> >> + </bean> >> + >> + <bean id="throttlePolicy" >> class="org.apache.camel.impl.ThrottlingInflightRoutePolicy"> >> + <property name="maxInflightExchanges" value="10"/> >> + </bean> >> + >> + <camelContext id="testRouteContext" >> xmlns="http://camel.apache.org/schema/spring"> >> + <route id="testRoute" autoStartup="false" >> routePolicyRef="startPolicy, throttlePolicy"> >> + <from uri="seda:foo?concurrentConsumers=20"/> >> + <to uri="mock:success"/> >> + </route> >> + </camelContext> >> + >> +</beans> >> >> >> > > > > -- > Claus Ibsen > ----------------- > FuseSource > Email: cib...@fusesource.com > Web: http://fusesource.com > Twitter: davsclaus > Blog: http://davsclaus.blogspot.com/ > Author of Camel in Action: http://www.manning.com/ibsen/