001package io.avaje.inject.spi; 002 003import io.avaje.inject.BeanScopeBuilder; 004 005import java.lang.reflect.Type; 006 007/** 008 * A Plugin that can be applied when creating a bean scope. 009 * 010 * <p>Typically, a plugin might provide a default dependency via {@link 011 * BeanScopeBuilder#provideDefault(Type, java.util.function.Supplier)}. 012 * 013 * @deprecated migrate to {@link InjectPlugin} 014 */ 015@Deprecated(forRemoval = true) 016public interface Plugin extends InjectPlugin { 017 018 /** 019 * Apply the plugin to the scope builder. 020 */ 021 @Override 022 void apply(BeanScopeBuilder builder); 023 024 /** 025 * Return the classes that the plugin provides. 026 */ 027 @Override 028 default Class<?>[] provides() { 029 return EMPTY_CLASSES; 030 } 031 032 /** 033 * Return the aspect classes that the plugin provides. 034 */ 035 @Override 036 default Class<?>[] providesAspects() { 037 return EMPTY_CLASSES; 038 } 039}