Package io.github.slimjar.app.builder
Class ModularApplicationBuilder<T extends ModularApplicationBuilder<T>>
java.lang.Object
io.github.slimjar.app.builder.ApplicationBuilder<T>
io.github.slimjar.app.builder.InjectingApplicationBuilder<T>
io.github.slimjar.app.builder.ModularApplicationBuilder<T>
- Direct Known Subclasses:
IsolatedApplicationBuilder
public abstract class ModularApplicationBuilder<T extends ModularApplicationBuilder<T>>
extends InjectingApplicationBuilder<T>
-
Field Summary
Fields inherited from class io.github.slimjar.app.builder.InjectingApplicationBuilder
injectableFactory, injectableSupplierFields inherited from class io.github.slimjar.app.builder.ApplicationBuilder
self -
Constructor Summary
ConstructorsConstructorDescriptionModularApplicationBuilder(@NotNull String applicationName, @NotNull Function<T, Injectable> injectableSupplier) -
Method Summary
Modifier and TypeMethodDescriptionprotected final @NotNull Applicationprotected ApplicationbuildApplication(@NotNull Injectable injectable) static @NotNull ModularApplicationBuilder<?>static @NotNull ModularApplicationBuilder<?>create(@NotNull String applicationName, @NotNull Injectable injectable) static @NotNull ModularApplicationBuilder<?>create(@NotNull String applicationName, @NotNull ClassLoader classLoader) protected final @NotNull DependencyDataProviderFactoryprotected final @NotNull PreResolutionDataProviderFactoryprotected final @NotNull Collection<String>final TmoduleDataProviderFactory(@NotNull DependencyDataProviderFactory moduleDataProviderFactory) Factory that produces DataProvider for modules in jar-in-jar classloading.moduleExtractor(@NotNull ModuleExtractor moduleExtractor) Sets the specifiedModuleExtractorfor the modular application builder.final TmodulePreResolutionDataProviderFactory(@NotNull PreResolutionDataProviderFactory modulePreResolutionDataProviderFactory) Factory that producesPreResolutionDataProviderfor modules in jar-in-jar classloading.Adds one or more modules to the modular application builder.Methods inherited from class io.github.slimjar.app.builder.InjectingApplicationBuilder
getInjectableFactory, injectableFactoryMethods inherited from class io.github.slimjar.app.builder.ApplicationBuilder
appending, build, createInjector, dataProviderFactory, dependencyFileUrl, downloadDirectoryPath, downloaderFactory, enquirerFactory, getApplicationName, getDataProviderFactory, getDependencyFileUrl, getDownloadDirectoryPath, getDownloaderFactory, getEnquirerFactory, getInjectorFactory, getLogger, getMirrorSelector, getPreResolutionDataProviderFactory, getPreResolutionFileUrl, getRelocationHelperFactory, getRelocatorFactory, getResolverFactory, getVerifierFactory, injecting, injectorFactory, isolated, logger, mirrorSelector, preResolutionDataProviderFactory, preResolutionFileUrl, relocationHelperFactory, relocatorFactory, resolverFactory, verifierFactory
-
Constructor Details
-
ModularApplicationBuilder
@Contract(pure=true) public ModularApplicationBuilder(@NotNull @NotNull String applicationName, @NotNull @NotNull Function<T, Injectable> injectableSupplier)
-
-
Method Details
-
create
@Contract(value="_ -> new", pure=true) @NotNull public static @NotNull ModularApplicationBuilder<?> create(@NotNull @NotNull String applicationName) -
create
@Contract(value="_, _ -> new", pure=true) @NotNull public static @NotNull ModularApplicationBuilder<?> create(@NotNull @NotNull String applicationName, @NotNull @NotNull ClassLoader classLoader) -
create
@Contract(value="_, _ -> new", pure=true) @NotNull public static @NotNull ModularApplicationBuilder<?> create(@NotNull @NotNull String applicationName, @NotNull @NotNull Injectable injectable) -
moduleDataProviderFactory
@Contract(value="_ -> this", mutates="this") @NotNull public final T moduleDataProviderFactory(@NotNull @NotNull DependencyDataProviderFactory moduleDataProviderFactory) Factory that produces DataProvider for modules in jar-in-jar classloading. Ignored if not using jar-in-jar/isolated(...) Used to fetch the `slimjar.dat` file of each submodule.- Parameters:
moduleDataProviderFactory- Factory that produces DataProvider for modules in jar-in-jar- Returns:
this
-
modulePreResolutionDataProviderFactory
@Contract(value="_ -> this", mutates="this") @NotNull public final T modulePreResolutionDataProviderFactory(@NotNull @NotNull PreResolutionDataProviderFactory modulePreResolutionDataProviderFactory) Factory that producesPreResolutionDataProviderfor modules in jar-in-jar classloading. Ignored if not using jar-in-jar/isolated(...) Used to fetch the `slimjar.dat` file of each submodule.- Parameters:
modulePreResolutionDataProviderFactory- Factory that produces DataProvider for modules in jar-in-jar- Returns:
this
-
modules
@Contract(value="_ -> this", mutates="this") @NotNull public T modules(@NotNull @NotNull String... modules) Adds one or more modules to the modular application builder. This method updates the internal list of modules that will be included in the application.- Parameters:
modules- The names of the modules to be added. Must not be null.- Returns:
- The builder instance for method chaining.
-
moduleExtractor
@Contract(value="_ -> this", mutates="this") @NotNull public T moduleExtractor(@NotNull @NotNull ModuleExtractor moduleExtractor) Sets the specifiedModuleExtractorfor the modular application builder. TheModuleExtractoris used to handle the extraction of modules during the application setup process.- Parameters:
moduleExtractor- TheModuleExtractorinstance to be used by the builder. Must not be null.- Returns:
- The builder instance for method chaining.
-
getModules
-
getModuleDataProviderFactory
@Contract(mutates="this") @NotNull protected final @NotNull DependencyDataProviderFactory getModuleDataProviderFactory() -
getModulePreResolutionDataProviderFactory
@Contract(mutates="this") @NotNull protected final @NotNull PreResolutionDataProviderFactory getModulePreResolutionDataProviderFactory() -
buildApplication
- Overrides:
buildApplicationin classInjectingApplicationBuilder<T extends ModularApplicationBuilder<T>>- Throws:
SlimJarException
-
buildApplication
protected Application buildApplication(@NotNull @NotNull Injectable injectable) throws SlimJarException - Throws:
SlimJarException
-