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

org.jobrunr.quarkus.autoconfigure.JobRunrBuildTimeConfiguration Maven / Gradle / Ivy

package org.jobrunr.quarkus.autoconfigure;

import io.quarkus.runtime.annotations.ConfigDocMapKey;
import io.quarkus.runtime.annotations.ConfigPhase;
import io.quarkus.runtime.annotations.ConfigRoot;
import io.smallrye.config.ConfigMapping;
import io.smallrye.config.WithDefault;
import io.smallrye.config.WithParentName;

import java.util.Optional;

@ConfigRoot(phase = ConfigPhase.BUILD_AND_RUN_TIME_FIXED)
@ConfigMapping(prefix = "quarkus.jobrunr")
public interface JobRunrBuildTimeConfiguration {

    /**
     * Allows to configure JobRunr database related settings
     */
    DatabaseConfiguration database();

    /**
     * Allows to configure JobRunr BackgroundJobServer related settings
     */
    BackgroundJobServerConfiguration backgroundJobServer();

    /**
     * Allows to configure JobRunr Dashboard related settings
     */
    DashboardConfiguration dashboard();

    /**
     * Whether or not an health check is published in case the smallrye-health extension is present.
     */
    @WithParentName
    @ConfigDocMapKey("health.enabled")
    @WithDefault("true")
    boolean healthEnabled();

    interface DatabaseConfiguration {
        /**
         * If multiple types of databases are available in the Spring Context (e.g. a DataSource and an Elastic RestHighLevelClient), this setting allows to specify the type of database for JobRunr to use.
         * Valid values are 'sql', 'mongodb', 'documentdb', and 'elasticsearch'.
         */
        Optional type();
    }

    interface BackgroundJobServerConfiguration {

        /**
         * Includes the necessary resources to start the background job processing servers.
         */
        @WithDefault("true")
        boolean included();
    }

    interface DashboardConfiguration {

        /**
         * Includes the necessary resources to start the dashboard webserver.
         */
        @WithDefault("true")
        boolean included();
    }
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy