[ 
https://issues.apache.org/jira/browse/CAMEL-7276?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen reassigned CAMEL-7276:
----------------------------------

    Assignee: Claus Ibsen

> camel-quartz - use of management name to provide default scheduler name 
> breaks context isolation
> ------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-7276
>                 URL: https://issues.apache.org/jira/browse/CAMEL-7276
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-quartz
>    Affects Versions: 2.12.3
>            Reporter: Bob Browning
>            Assignee: Claus Ibsen
>
> When using the camel-quartz component in an unmanged context with multiple 
> camel contexts, for example in a JUnit test case, causes the scheduler to be 
> created with the instance name "DefaultQuartzScheduler" which is then shared 
> across all camel context's within the same jvm.
> This is in contradiction of the previous behaviour that uses 
> `getCamelContext.getName()` which isolates the scheduler by denoting that the 
> default instance is specific to the camel context.
> {code}
> package org.apache.camel.component.quartz;
> import org.apache.camel.CamelContext;
> import org.apache.camel.impl.DefaultCamelContext;
> import org.apache.camel.management.JmxSystemPropertyKeys;
> import org.junit.Test;
> import org.quartz.Scheduler;
> import org.quartz.SchedulerException;
> import static org.junit.Assert.assertNotEquals;
> import static org.junit.Assert.assertNotSame;
> /**
>  * Test regression of camel-context isolation of default scheduler instance 
> introduced in CAMEL-7034.
>  */
> public class QuartzComponentCamelContextSchedulerIsolationTest {
>   @Test
>   public void testSchedulerIsolation_unmanaged() throws Exception {
>     disableJMX();
>     testSchedulerIsolation();
>   }
>   @Test
>   public void testSchedulerIsolation_managed() throws Exception {
>     enableJMX();
>     testSchedulerIsolation();
>   }
>   private void testSchedulerIsolation() throws Exception {
>     CamelContext context = createCamelContext();
>     context.start();
>     CamelContext anotherContext = createCamelContext();
>     assertNotEquals(anotherContext.getName(), context.getName());
>     assertNotEquals(anotherContext, context);
>     assertNotSame(getDefaultScheduler(context), 
> getDefaultScheduler(anotherContext));
>   }
>   /**
>    * Create a new camel context instance.
>    */
>   private DefaultCamelContext createCamelContext() {
>     return new DefaultCamelContext();
>   }
>   /**
>    * Get the quartz component for the provided camel context.
>    */
>   private QuartzComponent getQuartzComponent(CamelContext context) {
>     return context.getComponent("quartz", QuartzComponent.class);
>   }
>   /**
>    * Get the default scheduler for the provided camel context.
>    */
>   private Scheduler getDefaultScheduler(CamelContext context) throws 
> SchedulerException {
>     return getQuartzComponent(context).getFactory().getScheduler();
>   }
>   /**
>    * Disables the JMX agent.
>    */
>   private void disableJMX() {
>     System.setProperty(JmxSystemPropertyKeys.DISABLED, "true");
>   }
>   /**
>    * Enables the JMX agent.
>    */
>   private void enableJMX() {
>     System.setProperty(JmxSystemPropertyKeys.DISABLED, "false");
>   }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to