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

io.quarkus.arc.profile.IfBuildProfile Maven / Gradle / Ivy

There is a newer version: 3.17.0.CR1
Show newest version
package io.quarkus.arc.profile;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * When applied to a bean class or producer method (or field), the bean will only be enabled
 * if the Quarkus build time profile matches the rules of the annotation values.
 *
 * 
* *
 *    Enabled when "dev" profile is active:
 *
 *    @ApplicationScoped
 *    @IfBuildProfile("dev")
 *    public class DevBean {
 *    }
 *
 *    Enabled when both "build" and "dev" profiles are active:
 *
 *    @ApplicationScoped
 *    @IfBuildProfile(allOf = {"build", "dev"})
 *    public class BuildDevBean {
 *    }
 *
 *    Enabled if either "build" or "dev" profile is active:
 *
 *    @ApplicationScoped
 *    @IfBuildProfile(anyOf = {"build", "dev"})
 *    public class BuildDevBean {
 *    }
 *
 *    Enabled when both "build" and "dev" profiles are active and either "test" or "prod" profile is active:
 *
 *    @ApplicationScoped
 *    @IfBuildProfile(allOf = {"build", "dev"}, anyOf = {"test", "prod"})
 *    public class BuildDevBean {
 *    }
 * 
* *
*/ @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.METHOD, ElementType.TYPE, ElementType.FIELD }) public @interface IfBuildProfile { /** * A single profile name to enable a bean if a profile with the same name is active in Quarkus build time config. */ String value() default ""; /** * Multiple profiles names to enable a bean if all the profile names are active in Quarkus build time config. */ String[] allOf() default {}; /** * Multiple profiles names to enable a bean if any the profile names is active in Quarkus build time config. */ String[] anyOf() default {}; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy