001package io.avaje.inject; 002 003import static java.lang.annotation.ElementType.CONSTRUCTOR; 004import static java.lang.annotation.ElementType.FIELD; 005import static java.lang.annotation.ElementType.PARAMETER; 006import static java.lang.annotation.RetentionPolicy.SOURCE; 007 008import java.lang.annotation.Documented; 009import java.lang.annotation.Retention; 010import java.lang.annotation.Target; 011import java.lang.reflect.Type; 012 013/** 014 * Marks dependencies as an external beans potentially not managed by avaje inject. Compile-time 015 * validation will be disabled for types annotated. 016 * 017 * <p>The external dependency is usually expected to be provided by {@link 018 * BeanScopeBuilder#bean(String, Type, Object)} or by other modules in cases where ordering is 019 * irregular. 020 */ 021@Documented 022@Retention(SOURCE) 023@Target({FIELD, PARAMETER, CONSTRUCTOR}) 024public @interface External {}