{
  "component": {
    "kind": "component",
    "name": "quartz",
    "title": "Quartz",
    "description": "Schedule sending of messages using the Quartz 2.x scheduler.",
    "deprecated": false,
    "firstVersion": "2.12.0",
    "label": "scheduling",
    "javaType": "org.apache.camel.component.quartz.QuartzComponent",
    "supportLevel": "Stable",
    "groupId": "org.apache.camel",
    "artifactId": "camel-quartz",
    "version": "4.0.5",
    "scheme": "quartz",
    "extendsScheme": "",
    "syntax": "quartz:groupName\/triggerName",
    "async": false,
    "api": false,
    "consumerOnly": true,
    "producerOnly": false,
    "lenientProperties": false
  },
  "componentProperties": {
    "bridgeErrorHandler": { "index": 0, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored." },
    "enableJmx": { "index": 1, "kind": "property", "displayName": "Enable Jmx", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to enable Quartz JMX which allows to manage the Quartz scheduler from JMX. This options is default true" },
    "prefixInstanceName": { "index": 2, "kind": "property", "displayName": "Prefix Instance Name", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether to prefix the Quartz Scheduler instance name with the CamelContext name. This is enabled by default, to let each CamelContext use its own Quartz scheduler instance by default. You can set this option to false to reuse Quartz scheduler instances between multiple CamelContext's." },
    "prefixJobNameWithEndpointId": { "index": 3, "kind": "property", "displayName": "Prefix Job Name With Endpoint Id", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to prefix the quartz job with the endpoint id. This option is default false." },
    "properties": { "index": 4, "kind": "property", "displayName": "Properties", "group": "consumer", "label": "", "required": false, "type": "object", "javaType": "java.util.Map", "deprecated": false, "autowired": false, "secret": false, "description": "Properties to configure the Quartz scheduler." },
    "propertiesFile": { "index": 5, "kind": "property", "displayName": "Properties File", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "supportFileReference": true, "description": "File name of the properties to load from the classpath" },
    "propertiesRef": { "index": 6, "kind": "property", "displayName": "Properties Ref", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "References to an existing Properties or Map to lookup in the registry to use for configuring quartz." },
    "autowiredEnabled": { "index": 7, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc." },
    "scheduler": { "index": 8, "kind": "property", "displayName": "Scheduler", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.quartz.Scheduler", "deprecated": false, "autowired": true, "secret": false, "description": "To use the custom configured Quartz scheduler, instead of creating a new Scheduler." },
    "schedulerFactory": { "index": 9, "kind": "property", "displayName": "Scheduler Factory", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.quartz.SchedulerFactory", "deprecated": false, "autowired": false, "secret": false, "description": "To use the custom SchedulerFactory which is used to create the Scheduler." },
    "autoStartScheduler": { "index": 10, "kind": "property", "displayName": "Auto Start Scheduler", "group": "scheduler", "label": "scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether the scheduler should be auto started. This option is default true" },
    "interruptJobsOnShutdown": { "index": 11, "kind": "property", "displayName": "Interrupt Jobs On Shutdown", "group": "scheduler", "label": "scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to interrupt jobs on shutdown which forces the scheduler to shutdown quicker and attempt to interrupt any running jobs. If this is enabled then any running jobs can fail due to being interrupted. When a job is interrupted then Camel will mark the exchange to stop continue routing and set java.util.concurrent.RejectedExecutionException as caused exception. Therefore use this with care, as its often better to allow Camel jobs to complete and shutdown gracefully." }
  },
  "properties": {
    "groupName": { "index": 0, "kind": "path", "displayName": "Group Name", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "Camel", "description": "The quartz group name to use. The combination of group name and trigger name should be unique." },
    "triggerName": { "index": 1, "kind": "path", "displayName": "Trigger Name", "group": "consumer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The quartz trigger name to use. The combination of group name and trigger name should be unique." },
    "cron": { "index": 2, "kind": "parameter", "displayName": "Cron", "group": "consumer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Specifies a cron expression to define when to trigger." },
    "deleteJob": { "index": 3, "kind": "parameter", "displayName": "Delete Job", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "If set to true, then the trigger automatically delete when route stop. Else if set to false, it will remain in scheduler. When set to false, it will also mean user may reuse pre-configured trigger with camel Uri. Just ensure the names match. Notice you cannot have both deleteJob and pauseJob set to true." },
    "durableJob": { "index": 4, "kind": "parameter", "displayName": "Durable Job", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether or not the job should remain stored after it is orphaned (no triggers point to it)." },
    "pauseJob": { "index": 5, "kind": "parameter", "displayName": "Pause Job", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If set to true, then the trigger automatically pauses when route stop. Else if set to false, it will remain in scheduler. When set to false, it will also mean user may reuse pre-configured trigger with camel Uri. Just ensure the names match. Notice you cannot have both deleteJob and pauseJob set to true." },
    "recoverableJob": { "index": 6, "kind": "parameter", "displayName": "Recoverable Job", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Instructs the scheduler whether or not the job should be re-executed if a 'recovery' or 'fail-over' situation is encountered." },
    "stateful": { "index": 7, "kind": "parameter", "displayName": "Stateful", "group": "consumer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Uses a Quartz PersistJobDataAfterExecution and DisallowConcurrentExecution instead of the default job." },
    "bridgeErrorHandler": { "index": 8, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored." },
    "exceptionHandler": { "index": 9, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored." },
    "exchangePattern": { "index": 10, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
    "customCalendar": { "index": 11, "kind": "parameter", "displayName": "Custom Calendar", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "org.quartz.Calendar", "deprecated": false, "autowired": false, "secret": false, "description": "Specifies a custom calendar to avoid specific range of date" },
    "ignoreExpiredNextFireTime": { "index": 12, "kind": "parameter", "displayName": "Ignore Expired Next Fire Time", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to ignore quartz cannot schedule a trigger because the trigger will never fire in the future. This can happen when using a cron trigger that are configured to only run in the past. By default, Quartz will fail to schedule the trigger and therefore fail to start the Camel route. You can set this to true which then logs a WARN and then ignore the problem, meaning that the route will never fire in the future." },
    "jobParameters": { "index": 13, "kind": "parameter", "displayName": "Job Parameters", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "job.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "To configure additional options on the job." },
    "prefixJobNameWithEndpointId": { "index": 14, "kind": "parameter", "displayName": "Prefix Job Name With Endpoint Id", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the job name should be prefixed with endpoint id" },
    "triggerParameters": { "index": 15, "kind": "parameter", "displayName": "Trigger Parameters", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "trigger.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "To configure additional options on the trigger. The parameter timeZone is supported if the cron option is present. Otherwise the parameters repeatInterval and repeatCount are supported. Note: When using repeatInterval values of 1000 or less, the first few events after starting the camel context may be fired more rapidly than expected." },
    "usingFixedCamelContextName": { "index": 16, "kind": "parameter", "displayName": "Using Fixed Camel Context Name", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If it is true, JobDataMap uses the CamelContext name directly to reference the CamelContext, if it is false, JobDataMap uses use the CamelContext management name which could be changed during the deploy time." },
    "autoStartScheduler": { "index": 17, "kind": "parameter", "displayName": "Auto Start Scheduler", "group": "scheduler", "label": "scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether or not the scheduler should be auto started." },
    "triggerStartDelay": { "index": 18, "kind": "parameter", "displayName": "Trigger Start Delay", "group": "scheduler", "label": "scheduler", "required": false, "type": "duration", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "500", "description": "In case of scheduler has already started, we want the trigger start slightly after current time to ensure endpoint is fully started before the job kicks in. Negative value shifts trigger start time in the past." }
  }
}
