diff --git a/inject-generator/src/main/java/io/avaje/inject/generator/MetaDataOrdering.java b/inject-generator/src/main/java/io/avaje/inject/generator/MetaDataOrdering.java index d58fec9d..4c6ee478 100644 --- a/inject-generator/src/main/java/io/avaje/inject/generator/MetaDataOrdering.java +++ b/inject-generator/src/main/java/io/avaje/inject/generator/MetaDataOrdering.java @@ -25,7 +25,6 @@ final class MetaDataOrdering { private final List circularDependencies = new ArrayList<>(); private final Set missingDependencyTypes = new LinkedHashSet<>(); private final Set autoRequires = new TreeSet<>(); - private final Set autoRequiresAspects = new TreeSet<>(); MetaDataOrdering(Collection values, ScopeInfo scopeInfo) { this.scopeInfo = scopeInfo; @@ -224,11 +223,7 @@ private boolean dependencySatisfied(Dependency dependency, boolean includeExtern private boolean isExternal(String dependencyName, boolean includeExternal, MetaData queuedMeta) { if (includeExternal && externallyProvided(dependencyName)) { - if (Util.isAspectProvider(dependencyName)) { - autoRequiresAspects.add(Util.extractAspectType(dependencyName)); - } else { - autoRequires.add(dependencyName); - } + autoRequires.add(dependencyName); queuedMeta.markWithExternalDependency(dependencyName); return true; } @@ -239,10 +234,6 @@ Set autoRequires() { return autoRequires; } - Set autoRequiresAspects() { - return autoRequiresAspects; - } - List ordered() { return orderedList; } diff --git a/inject-generator/src/main/java/io/avaje/inject/generator/ScopeInfo.java b/inject-generator/src/main/java/io/avaje/inject/generator/ScopeInfo.java index 35985e92..c94c5867 100644 --- a/inject-generator/src/main/java/io/avaje/inject/generator/ScopeInfo.java +++ b/inject-generator/src/main/java/io/avaje/inject/generator/ScopeInfo.java @@ -474,7 +474,7 @@ private void attributeClasses(boolean leadingComma, Append writer, String prefix writer.append("}"); } - void buildProvides(Append writer) { + void buildProvides(Append writer, Set provides, Set requires) { if (!provides.isEmpty()) { buildProvidesMethod(writer, "providesBeans", provides); } @@ -501,34 +501,6 @@ private void buildProvidesMethod(Append writer, String fieldName, Set ty writer.append(" }").eol().eol(); } - void buildAutoProvides(Append writer, Set autoProvides) { - autoProvides.removeAll(provides); - if (!autoProvides.isEmpty()) { - buildProvidesMethod(writer, "autoProvidesBeans", autoProvides); - } - } - - void buildAutoProvidesAspects(Append writer, Set autoProvidesAspects) { - autoProvidesAspects.removeAll(provides); - if (!autoProvidesAspects.isEmpty()) { - buildProvidesMethod(writer, "autoProvidesAspectBeans", autoProvidesAspects); - } - } - - void buildAutoRequires(Append writer, Set autoRequires) { - autoRequires.removeAll(requires); - if (!autoRequires.isEmpty()) { - buildProvidesMethod(writer, "autoRequiresBeans", autoRequires); - } - } - - void buildAutoRequiresAspects(Append writer, Set autoRequires) { - autoRequires.removeAll(requires); - if (!autoRequires.isEmpty()) { - buildProvidesMethod(writer, "autoRequiresAspectBeans", autoRequires); - } - } - void readModuleMetaData(TypeElement moduleType) { final InjectModulePrism module = InjectModulePrism.getInstanceOn(moduleType); final String name = module == null ? null : module.name(); diff --git a/inject-generator/src/main/java/io/avaje/inject/generator/SimpleModuleWriter.java b/inject-generator/src/main/java/io/avaje/inject/generator/SimpleModuleWriter.java index 13b1dbf9..568d341a 100644 --- a/inject-generator/src/main/java/io/avaje/inject/generator/SimpleModuleWriter.java +++ b/inject-generator/src/main/java/io/avaje/inject/generator/SimpleModuleWriter.java @@ -96,9 +96,9 @@ void write() throws IOException { } else { writeRequiredModules(); } + writeBuildMethod(); writeProvides(); writeClassesMethod(); - writeBuildMethod(); writeBuildMethods(); writeEndClass(); writer.close(); @@ -188,45 +188,28 @@ private void writeServicesFile(ScopeInfo.Type scopeType) { } private void writeProvides() { - final Set autoProvidesAspects = new TreeSet<>(); - final Set autoProvides = new TreeSet<>(); + final Set scopeProvides = new TreeSet<>(scopeInfo.provides()); if (scopeType == ScopeInfo.Type.CUSTOM) { - autoProvides.add(scopeInfo.scopeAnnotationFQN()); - autoProvides.add(shortName); + scopeProvides.add(scopeInfo.scopeAnnotationFQN()); + scopeProvides.add(shortName); } - for (MetaData metaData : ordering.ordered()) { final String aspect = metaData.providesAspect(); if (aspect != null && !aspect.isEmpty()) { - autoProvidesAspects.add(aspect); + scopeProvides.add(Util.wrapAspect(aspect)); } final var forExternal = metaData.autoProvides(); if (forExternal != null && !forExternal.isEmpty()) { - autoProvides.addAll(forExternal); + scopeProvides.addAll(forExternal); } } - if (!autoProvides.isEmpty()) { - scopeInfo.buildAutoProvides(writer, autoProvides); - } - if (!autoProvidesAspects.isEmpty()) { - scopeInfo.buildAutoProvidesAspects(writer, autoProvidesAspects); - } - Set autoRequires = ordering.autoRequires(); - if (!autoRequires.isEmpty()) { - scopeInfo.buildAutoRequires(writer, autoRequires); - } - Set autoRequiresAspects = ordering.autoRequiresAspects(); - if (!autoRequiresAspects.isEmpty()) { - scopeInfo.buildAutoRequiresAspects(writer, autoRequiresAspects); - } + Set scopeRequires = new TreeSet<>(scopeInfo.requires()); + scopeRequires.addAll(ordering.autoRequires()); + scopeInfo.buildProvides(writer, scopeProvides, scopeRequires); - var requires = new ArrayList<>(scopeInfo.requires()); - var provides = new ArrayList<>(scopeInfo.provides()); - requires.addAll(autoRequires); - autoRequiresAspects.stream().map(Util::wrapAspect).forEach(requires::add); - provides.addAll(autoProvides); - autoProvidesAspects.stream().map(Util::wrapAspect).forEach(provides::add); + var requires = new ArrayList<>(scopeRequires); + var provides = new ArrayList<>(scopeProvides); ProcessingContext.addModule(new ModuleData(fullName, provides, requires)); } @@ -320,7 +303,6 @@ private void writeStartClass() { if (scopeInfo.addModuleConstructor()) { writeConstructor(); } - scopeInfo.buildProvides(writer); } private void writeWithBeans() {