Skip to content

Remove Deprecated/Unused Methods #869

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 28, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
Expand Down Expand Up @@ -85,21 +84,12 @@ static void registerModuleProvidedTypes(Set<String> providedTypes) {
final var name = module.getClass().getTypeName();
final var provides = new TreeSet<String>();
Collections.addAll(provides, module.providesBeans());
Collections.addAll(provides, module.autoProvidesBeans());
for (final var provide : module.autoProvidesAspectBeans()) {
final var aspectType = Util.wrapAspect(provide);
provides.add(aspectType);
}
registerExternalMetaData(name);
readMetaDataProvides(provides);
providedTypes.addAll(provides);
final List<String> requires = new ArrayList<>();
Collections.addAll(requires, module.requiresBeans());
Collections.addAll(requires, module.autoRequiresBeans());
Collections.addAll(requires, module.requiresPackagesFromType());
Arrays.stream(module.autoRequiresAspectBeans())
.map(Util::wrapAspect)
.forEach(requires::add);

ProcessingContext.addModule(new ModuleData(name, List.copyOf(provides), requires));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,10 +148,6 @@ private void writeModuleCSV(ClassLoader classLoader, FileWriter moduleWriter) th

final var requires = Arrays.stream(module.requiresBeans()).collect(toList());
Collections.addAll(requires, module.requiresPackagesFromType());
Arrays.stream(module.autoRequiresAspects())
.map(Class::getTypeName)
.map(AvajeInjectPlugin::wrapAspect)
.forEach(requires::add);
modules.add(new ModuleData(name, provides, requires));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,23 +159,9 @@ private void writeModuleCSV(ClassLoader newClassLoader, FileWriter moduleWriter)
provides.add(type);
}

for (final var provide : module.autoProvidesBeans()) {
var type = provide;
provides.add(type);
}

for (final var provide : module.autoProvidesAspectBeans()) {
var type = wrapAspect(provide);
provides.add(type);
}

final var requires = Arrays.stream(module.requiresBeans()).collect(toList());

Collections.addAll(requires, module.autoRequiresBeans());
Collections.addAll(requires, module.requiresPackagesFromType());
Arrays.stream(module.autoRequiresAspectBeans())
.map(AutoProvidesMojo::wrapAspect)
.forEach(requires::add);
modules.add(new ModuleData(name.getTypeName(), provides, requires));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public void getBeansByPriority() {
@Test
public void getBeansByPriority_withAnnotation() {
try (BeanScope context = BeanScope.builder().build()) {
final List<Somei> beans = context.listByPriority(Somei.class, Priority.class);
final List<Somei> beans = context.listByPriority(Somei.class);
assertThat(beans).hasSize(3);

assertThat(beans.get(0)).isInstanceOf(BSomei.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,21 +30,6 @@ void withModules_excludingThisOne() {

public static class SillyModule implements AvajeModule {

@Override
public Class<?>[] requires() {
return new Class[0];
}

@Override
public Class<?>[] requiresPackages() {
return new Class[0];
}

@Override
public Class<?>[] provides() {
return new Class[0];
}

@Override
public Class<?>[] classes() {
return new Class[0];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ public class CustomPriorityTest {
void test() {
final BeanScope context = ApplicationScope.scope();

final List<OtherIface> sorted = context.listByPriority(OtherIface.class, CustomPriority.class);
final List<OtherIface> sorted = context.listByPriority(OtherIface.class);

assertThat(sorted.get(0)).isInstanceOf(COtheri.class);
assertThat(sorted.get(1)).isInstanceOf(BOtheri.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,26 +66,8 @@ void parent_withSpy() {

static class MyTestModule implements AvajeModule.Custom {

private final Class<?>[] provides = new Class<?>[]{};
private final Class<?>[] requires = new Class<?>[]{};
private final Class<?>[] requiresPackages = new Class<?>[]{};
private Builder builder;

@Override
public Class<?>[] provides() {
return provides;
}

@Override
public Class<?>[] requires() {
return requires;
}

@Override
public Class<?>[] requiresPackages() {
return requiresPackages;
}

@Override
public Class<?>[] classes() {
return new Class<?>[]{
Expand Down
7 changes: 0 additions & 7 deletions inject/src/main/java/io/avaje/inject/BeanScope.java
Original file line number Diff line number Diff line change
Expand Up @@ -206,13 +206,6 @@ default <T> List<T> listByPriority(Class<T> type) {
/** Return the list of beans that implement the type sorting by priority. */
<T> List<T> listByPriority(Type type);

/**
* @deprecated use {@link #listByPriority(Class)}
*/
@Deprecated(forRemoval = true)
default <T> List<T> listByPriority(Class<T> type, Class<? extends Annotation> priority) {
return listByPriority(type);
}

/**
* Return the beans for this type mapped by their qualifier name.
Expand Down
20 changes: 2 additions & 18 deletions inject/src/main/java/io/avaje/inject/DBeanScopeBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -327,8 +327,6 @@ public void add(AvajeModule module) {
.add(factoryState);

addFactoryProvides(factoryState, module.providesBeans());
addFactoryProvides(factoryState, module.autoProvidesBeans());
addFactoryProvides(factoryState, module.autoProvidesAspectBeans());

if (factoryState.isRequiresEmpty()) {
if (factoryState.explicitlyProvides()) {
Expand Down Expand Up @@ -392,7 +390,6 @@ private void processQueue() {
sb.append("Module [").append(factory).append("] has unsatisfied");
unsatisfiedRequires(sb, factory.requires(), "requires");
unsatisfiedRequires(sb, factory.requiresPackages(), "requiresPackages");
unsatisfiedRequires(sb, factory.autoRequires(), "autoRequires");
}
sb.append(" - none of the loaded modules ").append(moduleNames).append(" have this in their @InjectModule( provides = ... ). ");
if (parent != null) {
Expand Down Expand Up @@ -442,9 +439,7 @@ private int processQueuedFactories() {
/** Return true if the (module) requires dependencies are satisfied for this factory. */
private boolean satisfiedDependencies(FactoryState factory) {
return satisfiedDependencies(factory.requires())
&& satisfiedDependencies(factory.requiresPackages())
&& satisfiedDependencies(factory.autoRequiresAspects())
&& satisfiedDependencies(factory.autoRequires());
&& satisfiedDependencies(factory.requiresPackages());
}

private boolean satisfiedDependencies(String[] requires) {
Expand Down Expand Up @@ -493,24 +488,13 @@ String[] requiresPackages() {
return factory.requiresPackagesFromType();
}

String[] autoRequires() {
return factory.autoRequiresBeans();
}

String[] autoRequiresAspects() {
return factory.autoRequiresAspectBeans();
}

@Override
public String toString() {
return factory.getClass().getTypeName();
}

boolean isRequiresEmpty() {
return isEmpty(factory.requiresBeans())
&& isEmpty(factory.requiresPackagesFromType())
&& isEmpty(factory.autoRequiresBeans())
&& isEmpty(factory.autoRequiresAspectBeans());
return isEmpty(factory.requiresBeans()) && isEmpty(factory.requiresPackagesFromType());
}

boolean explicitlyProvides() {
Expand Down
132 changes: 3 additions & 129 deletions inject/src/main/java/io/avaje/inject/spi/AvajeModule.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,8 @@
package io.avaje.inject.spi;

import java.lang.reflect.Type;
import java.util.Arrays;
import java.util.Objects;

/** A Module containing dependencies that will be included in BeanScope. */
public interface AvajeModule extends InjectExtension {

/** Empty array of classes. */
@Deprecated(forRemoval = true)
Class<?>[] EMPTY_CLASSES = {};

/** Empty array of strings. */
String[] EMPTY_STRINGS = {};

Expand All @@ -25,140 +17,22 @@ public interface AvajeModule extends InjectExtension {
/** Build all the beans. */
void build(Builder builder);

/**
* Return the set of types this module explicitly provides to other modules.
*
* @deprecated use {@link #providesBeans()}
*/
@Deprecated(forRemoval = true)
default Type[] provides() {
return EMPTY_CLASSES;
}

/** Return the type names of types this module explicitly provides to other modules. */
default String[] providesBeans() {
return Arrays.stream(Objects.requireNonNullElse(provides(), EMPTY_CLASSES))
.map(Type::getTypeName)
.toArray(String[]::new);
}

/**
* Return the types this module needs to be provided externally or via other modules.
*
* @deprecated use {@link #requiresBeans()}
*/
@Deprecated(forRemoval = true)
default Type[] requires() {
return EMPTY_CLASSES;
return EMPTY_STRINGS;
}

/**
* Return the type names of types this module needs to be provided externally or via other
* modules.
*/
default String[] requiresBeans() {
return Arrays.stream(Objects.requireNonNullElse(requires(), EMPTY_CLASSES))
.map(Type::getTypeName)
.toArray(String[]::new);
}

/**
* Return the packages this module needs to be provided via other modules.
*
* @deprecated use {@link #requiresPackagesFromType()}
*/
@Deprecated(forRemoval = true)
default Type[] requiresPackages() {
return EMPTY_CLASSES;
return EMPTY_STRINGS;
}

/** Return the type names of packages this module needs to be provided via other modules. */
default String[] requiresPackagesFromType() {
return Arrays.stream(Objects.requireNonNullElse(requiresPackages(), EMPTY_CLASSES))
.map(Type::getTypeName)
.toArray(String[]::new);
}

/**
* Return the classes that this module provides that we allow other modules to auto depend on.
*
* <p>This is a convenience when using multiple modules that is otherwise controlled manually by
* explicitly using {@link AvajeModule#provides()}.
*
* @deprecated use {@link #autoProvidesBeans()}
*/
@Deprecated(forRemoval = true)
default Type[] autoProvides() {
return EMPTY_CLASSES;
}

/**
* Return the type names of classes that this module provides that we allow other modules to auto
* depend on.
*/
default String[] autoProvidesBeans() {
return Arrays.stream(Objects.requireNonNullElse(autoProvides(), EMPTY_CLASSES))
.map(Type::getTypeName)
.toArray(String[]::new);
}

/**
* Return the aspects that this module provides.
*
* <p>This is a convenience when using multiple modules that we otherwise manually specify via
* {@link AvajeModule#provides()}.
*/
@Deprecated(forRemoval = true)
default Class<?>[] autoProvidesAspects() {
return EMPTY_CLASSES;
}

/** Return the type names of aspects that this module provides. */
default String[] autoProvidesAspectBeans() {
return Arrays.stream(Objects.requireNonNullElse(autoProvidesAspects(), EMPTY_CLASSES))
.map(Class::getTypeName)
.toArray(String[]::new);
}

/**
* These are the classes that this module requires for wiring that are provided by other external
* modules (that are in the classpath at compile time).
*
* <p>This is a convenience when using multiple modules that is otherwise controlled manually by
* explicitly using {@link AvajeModule#requires()} or {@link AvajeModule#requiresPackages()}.
*/
@Deprecated(forRemoval = true)
default Type[] autoRequires() {
return EMPTY_CLASSES;
}

/**
* Return the type names of classes that this module requires for wiring that are provided by
* other external modules.
*/
default String[] autoRequiresBeans() {
return Arrays.stream(Objects.requireNonNullElse(autoRequires(), EMPTY_CLASSES))
.map(Type::getTypeName)
.toArray(String[]::new);
}

/**
* These are the aspects that this module requires whose implementations are provided by other
* external modules (that are in the classpath at compile time).
*/
@Deprecated(forRemoval = true)
default Class<?>[] autoRequiresAspects() {
return EMPTY_CLASSES;
}

/**
* Return the type names of aspects that this module requires whose implementations are provided
* by other external modules.
*/
default String[] autoRequiresAspectBeans() {
return Arrays.stream(Objects.requireNonNullElse(autoRequiresAspects(), EMPTY_CLASSES))
.map(Class::getTypeName)
.toArray(String[]::new);
return EMPTY_STRINGS;
}

/** Marker for custom scoped modules. */
Expand Down
Loading