blob: c7f82b97609a50b10f873d5d810627deed34fd41 [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.quarkus.core.runtime;
import java.util.List;
import org.apache.camel.quarkus.core.runtime.graal.JaxbDisabled;
import org.apache.camel.quarkus.core.runtime.graal.XmlDisabled;
import io.quarkus.runtime.annotations.ConfigItem;
import io.quarkus.runtime.annotations.ConfigPhase;
import io.quarkus.runtime.annotations.ConfigRoot;
public class CamelConfig {
@ConfigRoot(name = "camel", phase = ConfigPhase.BUILD_AND_RUN_TIME_FIXED)
public static class BuildTime {
/**
* Uri to an xml containing camel routes to be loaded and initialized at build time.
*/
@ConfigItem
public List<String> routesUris;
/**
* Defer Camel context initialization phase until runtime.
*/
@ConfigItem(defaultValue = "false")
public boolean deferInitPhase;
/**
* Camel jaxb support is enabled by default, but in order to trim
* down the size of applications, it is possible to disable jaxb support
* at runtime. This is useful when routes at loaded at build time and
* thus the camel route model is not used at runtime anymore.
*
* @see JaxbDisabled
*/
@ConfigItem(defaultValue = "false")
public boolean disableJaxb;
/**
* Disable XML support in various parts of Camel.
* Because xml parsing using xerces/xalan libraries can consume
* a lot of code space in the native binary (and a lot of cpu resources
* when building), this allows to disable both libraries.
*
* @see XmlDisabled
*/
@ConfigItem(defaultValue = "false")
public boolean disableXml;
}
@ConfigRoot(name = "camel", phase = ConfigPhase.RUN_TIME)
public static class Runtime {
/**
* Dump loaded routes when starting
*/
@ConfigItem(defaultValue = "false")
public boolean dumpRoutes;
}
}