All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.camel.spring.boot.CamelConfigurationProperties Maven / Gradle / Ivy

/*
 * 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.spring.boot;

import org.apache.camel.LoggingLevel;
import org.apache.camel.ManagementStatisticsLevel;
import org.apache.camel.StartupSummaryLevel;
import org.apache.camel.main.DefaultConfigurationProperties;
import org.apache.camel.spi.Metadata;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.Map;

@ConfigurationProperties(prefix = "camel.springboot")
public class CamelConfigurationProperties extends DefaultConfigurationProperties {

    // Spring Boot only Properties
    // ---------------------------

    /**
     * Whether to use the main run controller to ensure the Spring-Boot application
     * keeps running until being stopped or the JVM terminated.
     * You typically only need this if you run Spring-Boot standalone.
     * If you run Spring-Boot with spring-boot-starter-web then the web container keeps the JVM running.
     */
    private boolean mainRunController;

    /**
     * Whether to include non-singleton beans (prototypes) when scanning for RouteBuilder instances.
     * By default only singleton beans is included in the context scan.
     */
    private boolean includeNonSingletons;

    /**
     * Whether to log a WARN if Camel on Spring Boot was immediately shutdown after starting which
     * very likely is because there is no JVM thread to keep the application running.
     */
    private boolean warnOnEarlyShutdown = true;

    // Default Properties via camel-main
    // ---------------------------------

    // IMPORTANT: Must include the options from DefaultConfigurationProperties as spring boot apt compiler
    //            needs to grab the documentation from the javadoc on the field.

    /**
     * Sets the name of the CamelContext.
     */
    private String name;

    /**
     * Controls the level of information logged during startup (and shutdown) of CamelContext.
     */
    private StartupSummaryLevel startupSummaryLevel = StartupSummaryLevel.Default;

    /**
     * Timeout in seconds to graceful shutdown Camel.
     */
    private int shutdownTimeout = 300;

    /**
     * Whether Camel should try to suppress logging during shutdown and timeout was triggered,
     * meaning forced shutdown is happening. And during forced shutdown we want to avoid logging
     * errors/warnings et all in the logs as a side-effect of the forced timeout.
     * Notice the suppress is a best effort as there may still be some logs coming
     * from 3rd party libraries and whatnot, which Camel cannot control.
     * This option is default false.
     */
    private boolean shutdownSuppressLoggingOnTimeout;

    /**
     * Sets whether to force shutdown of all consumers when a timeout occurred and thus
     * not all consumers was shutdown within that period.
     *
     * You should have good reasons to set this option to false as it means that the routes
     * keep running and is halted abruptly when CamelContext has been shutdown.
     */
    private boolean shutdownNowOnTimeout = true;

    /**
     * Sets whether routes should be shutdown in reverse or the same order as they where started.
     */
    private boolean shutdownRoutesInReverseOrder = true;

    /**
     * Sets whether to log information about the inflight Exchanges which are still running
     * during a shutdown which didn't complete without the given timeout.
     *
     * This requires to enable the option inflightRepositoryExchangeEnabled.
     */
    private boolean shutdownLogInflightExchangesOnTimeout = true;

    /**
     * UUID generator to use.
     *
     * default (32 bytes), short (16 bytes), classic (32 bytes or longer), simple (long incrementing counter), off
     * (turned off for exchanges - only intended for performance profiling)
     */
    private String uuidGenerator = "default";

    /**
     * Enable JMX in your Camel application.
     */
    private boolean jmxEnabled = true;

    /**
     * Producer template endpoints cache size.
     */
    private int producerTemplateCacheSize = 1000;

    /**
     * Consumer template endpoints cache size.
     */
    private int consumerTemplateCacheSize = 1000;

    /**
     * Whether to load custom type converters by scanning classpath.
     * This is used for backwards compatibility with Camel 2.x.
     * Its recommended to migrate to use fast type converter loading
     * by setting @Converter(generateLoader = true) on your custom
     * type converter classes.
     */
    private boolean loadTypeConverters = true;

    /**
     * Whether to load custom health checks by scanning classpath.
     */
    private boolean loadHealthChecks;

    /**
     * Directory to load additional configuration files that contains
     * configuration values that takes precedence over any other configuration.
     * This can be used to refer to files that may have secret configuration that
     * has been mounted on the file system for containers.
     *
     * You must use either file: or classpath: as prefix to load
     * from file system or classpath. Then you can specify a pattern to load
     * from sub directories and a name pattern such as file:/var/app/secret/*.properties
     */
    private String fileConfigurations;

    /**
     * Used for filtering routes matching the given pattern, which follows the following rules:
     *
     * - Match by route id
     * - Match by route input endpoint uri
     *
     * The matching is using exact match, by wildcard and regular expression.
     *
     * For example to only include routes which starts with foo in their route id's, use: include=foo*
     * And to exclude routes which starts from JMS endpoints, use: exclude=jms:*
     *
     * Multiple patterns can be separated by comma, for example to exclude both foo and bar routes, use: exclude=foo*,bar*
     *
     * Exclude takes precedence over include.
     */
    private String routeFilterIncludePattern;

    /**
     * Used for filtering routes matching the given pattern, which follows the following rules:
     *
     * - Match by route id
     * - Match by route input endpoint uri
     *
     * The matching is using exact match, by wildcard and regular expression.
     *
     * For example to only include routes which starts with foo in their route id's, use: include=foo*
     * And to exclude routes which starts from JMS endpoints, use: exclude=jms:*
     *
     * Multiple patterns can be separated by comma, for example to exclude both foo and bar routes, use: exclude=foo*,bar*
     *
     * Exclude takes precedence over include.
     */
    private String routeFilterExcludePattern;

    /**
     * Used for enabling automatic routes reloading. If enabled then Camel will watch for file changes in the given
     * reload directory, and trigger reloading routes if files are changed.
     */
    private boolean routesReloadEnabled;

    /**
     * Directory to scan (incl subdirectories) for route changes. Camel cannot scan the classpath, so this must be
     * configured to a file directory. Development with Maven as build tool, you can configure the directory to be
     * src/main/resources to scan for Camel routes in XML or YAML files.
     */
    private String routesReloadDirectory = "src/main/resources";

    /**
     * Whether the directory to scan should include sub directories.
     *
     * Depending on the number of sub directories, then this can cause the JVM to startup slower as Camel uses the JDK
     * file-watch service to scan for file changes.
     */
    private boolean routesReloadDirectoryRecursive;

    /**
     * Used for inclusive filtering of routes from directories.
     *
     * Typical used for specifying to accept routes in XML or YAML files.
     * Multiple patterns can be specified separated by comma.
     */
    private String routesReloadPattern = "camel/*";

    /**
     * When reloading routes should all existing routes be stopped and removed.
     *
     * By default, Camel will stop and remove all existing routes before reloading routes. This ensures that only the
     * reloaded routes will be active. If disabled then only routes with the same route id is updated, and any existing
     * routes are continued to run.
     */
    private boolean routesReloadRemoveAllRoutes = true;

    /**
     * Whether to restart max duration when routes are reloaded. For example if max duration is 60 seconds, and a route
     * is reloaded after 25 seconds, then this will restart the count and wait 60 seconds again.
     */
     private boolean routesReloadRestartDuration = true;

    /**
     * To specify for how long time in seconds to keep running the JVM before automatic terminating the JVM.
     * You can use this to run Spring Boot for a short while.
     */
    private int durationMaxSeconds;

    /**
     * To specify for how long time in seconds Camel can be idle before automatic terminating the JVM.
     * You can use this to run Spring Boot for a short while.
     */
    private int durationMaxIdleSeconds;

    /**
     * To specify how many messages to process by Camel before automatic terminating the JVM.
     * You can use this to run Spring Boot for a short while.
     */
    private int durationMaxMessages;

    /**
     * Controls whether the Camel application should shutdown the JVM, or stop all routes, when duration max is
     * triggered.
     */
    private String durationMaxAction = "shutdown";

    /**
     * Is used to limit the maximum length of the logging Camel message bodies. If the message body
     * is longer than the limit, the log message is clipped. Use -1 to have unlimited length.
     * Use for example 1000 to log at most 1000 characters.
     */
    private int logDebugMaxChars;

    /**
     * Sets whether stream caching is enabled or not.
     *
     * Default is false.
     */
    private boolean streamCachingEnabled;

    /**
     * Sets the stream caching spool (temporary) directory to use for overflow and spooling to disk.
     *
     * If no spool directory has been explicit configured, then a temporary directory
     * is created in the java.io.tmpdir directory.
     */
    private String streamCachingSpoolDirectory;

    /**
     * Sets a stream caching cipher name to use when spooling to disk to write with encryption.
     * By default the data is not encrypted.
     */
    private String streamCachingSpoolCipher;

    /**
     * Stream caching threshold in bytes when overflow to disk is activated.
     * The default threshold is 128kb.
     * Use -1 to disable overflow to disk.
     */
    private long streamCachingSpoolThreshold;

    /**
     * Sets a percentage (1-99) of used heap memory threshold to activate stream caching spooling to disk.
     */
    private int streamCachingSpoolUsedHeapMemoryThreshold;

    /**
     * Sets what the upper bounds should be when streamCachingSpoolUsedHeapMemoryThreshold is in use.
     */
    private String streamCachingSpoolUsedHeapMemoryLimit;

    /**
     * Sets whether if just any of the org.apache.camel.spi.StreamCachingStrategy.SpoolRule rules
     * returns true then shouldSpoolCache(long) returns true, to allow spooling to disk.
     * If this option is false, then all the org.apache.camel.spi.StreamCachingStrategy.SpoolRule must
     * return true.
     *
     * The default value is false which means that all the rules must return true.
     */
    private boolean streamCachingAnySpoolRules;

    /**
     * Sets the stream caching buffer size to use when allocating in-memory buffers used for in-memory stream caches.
     *
     * The default size is 4096.
     */
    private int streamCachingBufferSize;

    /**
     * Whether to remove stream caching temporary directory when stopping.
     * This option is default true.
     */
    private boolean streamCachingRemoveSpoolDirectoryWhenStopping = true;

    /**
     * Sets whether stream caching statistics is enabled.
     */
    private boolean streamCachingStatisticsEnabled;

    /**
     * Sets whether backlog tracing is enabled or not.
     *
     * Default is false.
     */
    private boolean backlogTracing;

    /**
     * Sets whether tracing is enabled or not.
     *
     * Default is false.
     */
    private boolean tracing;

    /**
     * Tracing pattern to match which node EIPs to trace.
     * For example to match all To EIP nodes, use to*.
     * The pattern matches by node and route id's
     * Multiple patterns can be separated by comma.
     */
    private String tracingPattern;

    /**
     * Sets whether message history is enabled or not.
     *
     * Default is true.
     */
    private boolean messageHistory = true;

    /**
     * Sets whether log mask is enabled or not.
     *
     * Default is false.
     */
    private boolean logMask;

    /**
     * Sets whether to log exhausted message body with message history.
     *
     * Default is false.
     */
    private boolean logExhaustedMessageBody;

    /**
     * Sets whether the object should automatically start when Camel starts.
     * Important: Currently only routes can be disabled, as CamelContext's are always started.
     * Note: When setting auto startup false on CamelContext then that takes precedence
     * and no routes is started. You would need to start CamelContext explicit using
     * the org.apache.camel.CamelContext.start() method, to start the context, and then
     * you would need to start the routes manually using Camelcontext.getRouteController().startRoute(String).
     *
     * Default is true to always start up.
     */
    private boolean autoStartup = true;

    /**
     * Sets whether to allow access to the original message from Camel's error handler,
     * or from org.apache.camel.spi.UnitOfWork.getOriginalInMessage().
     * Turning this off can optimize performance, as defensive copy of the original message is not needed.
     *
     * Default is false.
     */
    private boolean allowUseOriginalMessage;

    /**
     * Whether to use case sensitive or insensitive headers.
     *
     * Important: When using case sensitive (this is set to false).
     * Then the map is case sensitive which means headers such as content-type and Content-Type are
     * two different keys which can be a problem for some protocols such as HTTP based, which rely on case insensitive headers.
     * However case sensitive implementations can yield faster performance. Therefore use case sensitive implementation with care.
     *
     * Default is true.
     */
    private boolean caseInsensitiveHeaders = true;

    /**
     * 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.
     *
     * Default is true.
     */
    private boolean autowiredEnabled = true;

    /**
     * Sets whether the inflight repository should allow browsing each inflight exchange.
     *
     * This is by default disabled as there is a very slight performance overhead when enabled.
     */
    private boolean inflightRepositoryBrowseEnabled;

    /**
     * Sets whether endpoint runtime statistics is enabled (gathers runtime usage of each incoming and outgoing endpoints).
     *
     * The default value is false.
     */
    private boolean endpointRuntimeStatisticsEnabled;

    /**
     * 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/ERROR level and ignored. * * The default value is false. */ public boolean endpointBridgeErrorHandler; /** * Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities. * * The default value is false. */ public boolean endpointBasicPropertyBinding; /** * Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup * in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then * the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed * then creating and starting the producer may take a little time and prolong the total processing time of the processing. * * The default value is false. */ private boolean endpointLazyStartProducer; /** * Whether to enable using data type on Camel messages. * * Data type are automatic turned on if one or more routes has been explicit configured with input and output types. * Otherwise data type is default off. */ private boolean useDataType; /** * Set whether breadcrumb is enabled. * The default value is false. */ private boolean useBreadcrumb; /** * Can be used to turn off bean post processing. * * Be careful to turn this off, as this means that beans that use Camel annotations such as * org.apache.camel.EndpointInject, org.apache.camel.ProducerTemplate, * org.apache.camel.Produce, org.apache.camel.Consume etc will not be injected and in use. * * Turning this off should only be done if you are sure you do not use any of these Camel features. * * Not all runtimes allow turning this off (such as camel-blueprint or camel-cdi with XML). * * The default value is true (enabled). */ private boolean beanPostProcessorEnabled = true; /** * Whether its allowed to add new routes after Camel has been started. * This is enabled by default. * Setting this to false allows Camel to do some internal optimizations to reduce memory footprint. *

* This should only be done on a JVM with a single Camel application (microservice like camel-main, camel-quarkus, camel-spring-boot). * As this affects the entire JVM where Camel JARs are on the classpath. */ private boolean allowAddingNewRoutes = true; /** * Sets the JMX statistics level * The level can be set to Extended to gather additional information * * The default value is Default. */ private ManagementStatisticsLevel jmxManagementStatisticsLevel = ManagementStatisticsLevel.Default; /** * The naming pattern for creating the CamelContext JMX management name. * * The default pattern is #name# */ private String jmxManagementNamePattern = "#name#"; /** * If dumping is enabled then Camel will during startup dump all loaded routes (incl rests and route templates) * represented as XML DSL into the log. This is intended for trouble shooting or to assist during development. * * Sensitive information that may be configured in the route endpoints could potentially be included in the dump * output and is therefore not recommended to be used for production usage. * * This requires to have camel-xml-jaxb on the classpath to be able to dump the routes as XML. */ private boolean dumpRoutes; /** * Sets global options that can be referenced in the camel context * * Important: This has nothing to do with property placeholders, and is just a plain set of key/value pairs * which are used to configure global options on CamelContext, such as a maximum debug logging length etc. */ private Map globalOptions; /** * To turn on MDC logging */ private boolean useMdcLogging; /** * Sets the pattern used for determining which custom MDC keys to propagate during message routing when * the routing engine continues routing asynchronously for the given message. Setting this pattern to * will * propagate all custom keys. Or setting the pattern to foo*,bar* will propagate any keys starting with * either foo or bar. * Notice that a set of standard Camel MDC keys are always propagated which starts with camel. as key name. * * The match rules are applied in this order (case insensitive): * * 1. exact match, returns true * 2. wildcard match (pattern ends with a * and the name starts with the pattern), returns true * 3. regular expression match, returns true * 4. otherwise returns false */ private String mdcLoggingKeysPattern; /** * Sets the thread name pattern used for creating the full thread name. * * The default pattern is: Camel (#camelId#) thread ##counter# - #name# * * Where #camelId# is the name of the CamelContext. * and #counter# is a unique incrementing counter. * and #name# is the regular thread name. * * You can also use #longName# which is the long thread name which can includes endpoint parameters etc. */ private String threadNamePattern; /** * Sets whether bean introspection uses extended statistics. * The default is false. */ private boolean beanIntrospectionExtendedStatistics; /** * Sets the logging level used by bean introspection, logging activity of its usage. * The default is TRACE. */ private LoggingLevel beanIntrospectionLoggingLevel; /** * Whether the routes collector is enabled or not. * * When enabled Camel will auto-discover routes (RouteBuilder instances from the registry and also load additional * routes from the file system). * * The routes collector is default enabled. */ private boolean routesCollectorEnabled = true; /** * Used for inclusive filtering of routes from directories. The exclusive filtering takes precedence over inclusive * filtering. The pattern is using Ant-path style pattern. * * Multiple patterns can be specified separated by comma, as example, to include all the routes from a directory * whose name contains foo use: **/*foo*. */ private String routesIncludePattern = "classpath:camel/*,classpath:camel-template/*,classpath:camel-rest/*"; /** * Used for exclusive filtering of routes from directories. The exclusive filtering takes precedence over inclusive * filtering. The pattern is using Ant-path style pattern. * * Multiple patterns can be specified separated by comma, as example, to exclude all the routes from a directory * whose name contains foo use: **/*foo*. */ private String routesExcludePattern; /** * Used for inclusive filtering RouteBuilder classes which are collected from the registry or via classpath * scanning. The exclusive filtering takes precedence over inclusive filtering. The pattern is using Ant-path style * pattern. Multiple patterns can be specified separated by comma. * * Multiple patterns can be specified separated by comma. For example to include all classes starting with Foo use: * **/Foo* To include all routes form a specific package use: com/mycompany/foo/* To include all routes * form a specific package and its sub-packages use double wildcards: com/mycompany/foo/** And to include * all routes from two specific packages use: com/mycompany/foo/*,com/mycompany/stuff/* */ private String javaRoutesIncludePattern; /** * Used for exclusive filtering RouteBuilder classes which are collected from the registry or via classpath * scanning. The exclusive filtering takes precedence over inclusive filtering. The pattern is using Ant-path style * pattern. Multiple patterns can be specified separated by comma. * * For example to exclude all classes starting with Bar use: **/Bar* To exclude all routes form a * specific package use: com/mycompany/bar/* To exclude all routes form a specific package and its sub-packages * use double wildcards: com/mycompany/bar/** And to exclude all routes from two specific packages use: * com/mycompany/bar/*,com/mycompany/stuff/* */ private String javaRoutesExcludePattern; /** * Sets the logging level used for logging route activity (such as starting and stopping routes). The default * logging level is DEBUG. */ @Deprecated private LoggingLevel routeControllerLoggingLevel; /** * To enable using supervising route controller which allows Camel to startup * and then the controller takes care of starting the routes in a safe manner. * * This can be used when you want to startup Camel despite a route may otherwise * fail fast during startup and cause Camel to fail to startup as well. By delegating * the route startup to the supervising route controller then it manages the startup * using a background thread. The controller allows to be configured with various * settings to attempt to restart failing routes. */ boolean routeControllerSuperviseEnabled; /** * The number of threads used by the route controller scheduled thread pool that are used for restarting * routes. The pool uses 1 thread by default, but you can increase this to allow the controller * to concurrently attempt to restart multiple routes in case more than one route has problems * starting. */ int routeControllerThreadPoolSize = 1; /** * Initial delay in milli seconds before the route controller starts, after * CamelContext has been started. */ long routeControllerInitialDelay; /** * Backoff delay in millis when restarting a route that failed to startup. */ long routeControllerBackOffDelay = 2000; /** * Backoff maximum delay in millis when restarting a route that failed to startup. */ long routeControllerBackOffMaxDelay; /** * Backoff maximum elapsed time in millis, after which the backoff should be considered * exhausted and no more attempts should be made. */ long routeControllerBackOffMaxElapsedTime; /** * Backoff maximum number of attempts to restart a route that failed to startup. * When this threshold has been exceeded then the controller will give up * attempting to restart the route, and the route will remain as stopped. */ long routeControllerBackOffMaxAttempts; /** * Backoff multiplier to use for exponential backoff. This is used to extend the delay * between restart attempts. */ double routeControllerBackOffMultiplier = 1.0; /** * Pattern for filtering routes to be excluded as supervised. * * The pattern is matching on route id, and endpoint uri for the route. * Multiple patterns can be separated by comma. * * For example to exclude all JMS routes, you can say jms:*. * And to exclude routes with specific route ids mySpecialRoute,myOtherSpecialRoute. * The pattern supports wildcards and uses the matcher from * org.apache.camel.support.PatternHelper#matchPattern. */ String routeControllerIncludeRoutes; /** * Pattern for filtering routes to be included as supervised. * * The pattern is matching on route id, and endpoint uri for the route. * Multiple patterns can be separated by comma. * * For example to include all kafka routes, you can say kafka:*. * And to include routes with specific route ids myRoute,myOtherRoute. * The pattern supports wildcards and uses the matcher from * org.apache.camel.support.PatternHelper#matchPattern. */ String routeControllerExcludeRoutes; /** * Whether to mark the route as unhealthy (down) when all restarting attempts (backoff) have failed and the route is * not successfully started and the route manager is giving up. * * Setting this to true allows health checks to know about this and can report the Camel application as DOWN. * * The default is false. */ private boolean routeControllerUnhealthyOnExhausted; /** * Experimental: Configure the context to be lightweight. * This will trigger some optimizations and memory reduction options. * Lightweight context has some limitations. * At this moment, dynamic endpoint destinations are not supported. */ private boolean lightweight; /** * Whether to eager load a common set of Camel classes that would otherwise first be loaded on processing the first * message. By eager loading these classes then the JVM has already loaded the classes during build phase, which * allows Camel to process the first message faster. */ private boolean eagerClassloading; /** * Controls whether to pool (reuse) exchanges or create new exchanges (prototype). Using pooled will reduce JVM * garbage collection overhead by avoiding to re-create Exchange instances per message each consumer receives. The * default is prototype mode. */ private String exchangeFactory = "default"; /** * The capacity the pool (for each consumer) uses for storing exchanges. The default capacity is 100. */ private int exchangeFactoryCapacity = 100; /** * Configures whether statistics is enabled on exchange factory. */ private boolean exchangeFactoryStatisticsEnabled; /** * To use startup recorder for capturing execution time during starting Camel. The recorder can be one of: false (or * off), logging, java-flight-recorder (or jfr). */ private String startupRecorder; /** * To filter our sub steps at a maximum depth. * * Use -1 for no maximum. Use 0 for no sub steps. Use 1 for max 1 sub step, and so forth. * * The default is -1. */ private int startupRecorderMaxDepth = -1; /** * To enable Java Flight Recorder to start a recording and automatic dump the recording to disk after startup is * complete. * * This requires that camel-jfr is on the classpath, and to enable this option. */ private boolean startupRecorderRecording; /** * To use a specific Java Flight Recorder profile configuration, such as default or profile. * * The default is default. */ private String startupRecorderProfile = "default"; /** * How long time to run the startup recorder. * * Use 0 (default) to keep the recorder running until the JVM is exited. * Use -1 to stop the recorder right after Camel has been started (to only focus on potential Camel startup performance bottlenecks) * Use a positive value to keep recording for N seconds. * * When the recorder is stopped then the recording is auto saved to disk * (note: save to disk can be disabled by setting startupRecorderDir to false) */ private long startupRecorderDuration; /** * Directory to store the recording. By default the user home directory will be used. Use false to turn off saving * recording to disk. */ private String startupRecorderDir; // Getters & setters // ----------------- public boolean isMainRunController() { return mainRunController; } public void setMainRunController(boolean mainRunController) { this.mainRunController = mainRunController; } public boolean isIncludeNonSingletons() { return includeNonSingletons; } public void setIncludeNonSingletons(boolean includeNonSingletons) { this.includeNonSingletons = includeNonSingletons; } public boolean isWarnOnEarlyShutdown() { return warnOnEarlyShutdown; } public void setWarnOnEarlyShutdown(boolean warnOnEarlyShutdown) { this.warnOnEarlyShutdown = warnOnEarlyShutdown; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy