Skip to content
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
1 change: 1 addition & 0 deletions .checkstyle/checkstyle.xml
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@
<!-- https://checkstyle.org/config_imports.html#IllegalImport -->
<module name="IllegalImport">
<property name="illegalPkgs" value="sun, jdk, com.sun"/>
<property name="illegalClasses" value="org.jetbrains.annotations.NotNull, org.jetbrains.annotations.Nullable" />
</module>

<!-- https://checkstyle.org/config_coding.html#IllegalTokenText -->
Expand Down
8 changes: 6 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,9 @@ tasks.jar {
}

dependencies {
implementation(libs.mammoth)
implementation(libs.mammoth) {
exclude(group = "org.jetbrains", module = "annotations")
}
"workerClasspathCompileOnly"(libs.pebble)
"workerClasspathCompileOnly"(libs.snakeyamlEngine)
"workerClasspathCompileOnly"(workerShared.map { it.output })
Expand All @@ -62,7 +64,9 @@ dependencies {
privateRuntime.name(workerShared.map { it.output })
compileOnly(libs.ideaExtPlugin)

testImplementation(libs.mammoth.test)
testImplementation(libs.mammoth.test) {
exclude(group = "org.jetbrains", module = "annotations")
}
testImplementation(platform(libs.junit.bom))
testImplementation(libs.junit.api)
testRuntimeOnly(libs.junit.engine)
Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ checkstyle = "10.26.1"
ideaExt = "1.1.10"
indra = "3.1.3"
junit = "5.13.4"
mammoth = "1.4.0"
mammoth = "1.5.0"
pebble = "3.2.4"
snakeyaml = "2.9"
spotless = "7.0.4"
Expand Down
19 changes: 10 additions & 9 deletions src/main/java/net/kyori/blossom/Blossom.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@
import org.gradle.plugins.ide.eclipse.model.EclipseModel;
import org.gradle.plugins.ide.idea.model.IdeaModel;
import org.gradle.util.GradleVersion;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.gradle.ext.ProjectSettings;
import org.jetbrains.gradle.ext.TaskTriggersConfig;
import org.jspecify.annotations.NullMarked;
import org.jspecify.annotations.Nullable;

/**
* A template processor for Gradle projects.
Expand All @@ -56,6 +56,7 @@
*
* @since 2.0.0
*/
@NullMarked
public class Blossom implements ProjectPlugin {
private static final String GENERATION_GROUP = "blossom";
private static final String EXTENSION_NAME = "blossom";
Expand All @@ -65,10 +66,10 @@ public class Blossom implements ProjectPlugin {

@Override
public void apply(
final @NotNull Project project,
final @NotNull PluginContainer plugins,
final @NotNull ExtensionContainer extensions,
final @NotNull TaskContainer tasks
final Project project,
final PluginContainer plugins,
final ExtensionContainer extensions,
final TaskContainer tasks
) {
plugins.withType(JavaBasePlugin.class, $ -> {
final SetProperty<File> outputDirs = project.getObjects().setProperty(File.class);
Expand Down Expand Up @@ -121,18 +122,18 @@ private void registerGenerateAllTask(final Project project, final TaskContainer

IdeConfigurer.apply(project, new IdeConfigurer.IdeImportAction() {
@Override
public void idea(final @NotNull Project project, final @NotNull IdeaModel idea, final @NotNull ProjectSettings ideaExtension) {
public void idea(final Project project, final IdeaModel idea, final ProjectSettings ideaExtension) {
((ExtensionAware) ideaExtension).getExtensions().getByType(TaskTriggersConfig.class).afterSync(generateTemplates);
project.afterEvaluate(p -> {
final @Nullable IdeaModel projectIdea = p.getExtensions().getByType(IdeaModel.class);
final IdeaModel projectIdea = p.getExtensions().getByType(IdeaModel.class);
if (projectIdea.getModule() != null) {
projectIdea.getModule().getGeneratedSourceDirs().addAll(outputDirs.get());
}
});
}

@Override
public void eclipse(final @NotNull Project project, final @NotNull EclipseModel eclipse) {
public void eclipse(final Project project, final EclipseModel eclipse) {
eclipse.synchronizationTasks(generateTemplates);
}
});
Expand Down
34 changes: 17 additions & 17 deletions src/main/java/net/kyori/blossom/BlossomExtension.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
import org.gradle.api.Action;
import org.gradle.api.NamedDomainObjectProvider;
import org.gradle.api.PolymorphicDomainObjectContainer;
import org.jetbrains.annotations.NotNull;
import org.jspecify.annotations.NullMarked;

import static java.util.Objects.requireNonNull;

Expand All @@ -35,6 +35,7 @@
*
* @since 2.0.0
*/
@NullMarked
public interface BlossomExtension {
String RESOURCE_TEMPLATE_SET_NAME = "resource";
String GROOVY_SOURCES_TEMPLATE_SET_NAME = "groovy";
Expand All @@ -48,7 +49,7 @@ public interface BlossomExtension {
* @return the resource template set for configuration
* @since 2.0.0
*/
default @NotNull NamedDomainObjectProvider<ResourceTemplateSet> resources() {
default NamedDomainObjectProvider<ResourceTemplateSet> resources() {
return this.customResources(RESOURCE_TEMPLATE_SET_NAME);
}

Expand All @@ -58,7 +59,7 @@ public interface BlossomExtension {
* @param configureAction the action to perform on the primary resource template set
* @since 2.0.0
*/
default void resources(final @NotNull Action<? super ResourceTemplateSet> configureAction) {
default void resources(final Action<? super ResourceTemplateSet> configureAction) {
this.resources().configure(requireNonNull(configureAction, "configureAction"));
}

Expand All @@ -71,7 +72,7 @@ default void resources(final @NotNull Action<? super ResourceTemplateSet> config
* @return the resource template set for configuration
* @since 2.1.0
*/
default @NotNull NamedDomainObjectProvider<ResourceTemplateSet> customResources(final @NotNull String setName) {
default NamedDomainObjectProvider<ResourceTemplateSet> customResources(final String setName) {
requireNonNull(setName, "setName");
if (this.getTemplateSets().getNames().contains(setName)) {
return this.getTemplateSets().named(setName, ResourceTemplateSet.class);
Expand All @@ -89,7 +90,7 @@ default void resources(final @NotNull Action<? super ResourceTemplateSet> config
* @param configureAction the action to perform on the primary resource template set
* @since 2.1.0
*/
default void customResources(final @NotNull String setName, final @NotNull Action<? super ResourceTemplateSet> configureAction) {
default void customResources(final String setName, final Action<? super ResourceTemplateSet> configureAction) {
this.customResources(setName).configure(requireNonNull(configureAction, "configureAction"));
}

Expand All @@ -109,7 +110,7 @@ private NamedDomainObjectProvider<SourceTemplateSet> registerSourceTemplateSet(f
* @return the groovy source template set.
* @since 2.0.0
*/
default @NotNull NamedDomainObjectProvider<SourceTemplateSet> groovySources() {
default NamedDomainObjectProvider<SourceTemplateSet> groovySources() {
return this.registerSourceTemplateSet(GROOVY_SOURCES_TEMPLATE_SET_NAME, SourceTemplateSet::groovy);
}

Expand All @@ -121,7 +122,7 @@ private NamedDomainObjectProvider<SourceTemplateSet> registerSourceTemplateSet(f
* @param configureAction the action to configure the set with
* @since 2.0.0
*/
default void groovySources(final @NotNull Action<? super SourceTemplateSet> configureAction) {
default void groovySources(final Action<? super SourceTemplateSet> configureAction) {
this.registerSourceTemplateSet(GROOVY_SOURCES_TEMPLATE_SET_NAME, SourceTemplateSet::groovy).configure(requireNonNull(configureAction, "configureAction"));
}

Expand All @@ -133,7 +134,7 @@ default void groovySources(final @NotNull Action<? super SourceTemplateSet> conf
* @return the java source template set.
* @since 2.0.0
*/
default @NotNull NamedDomainObjectProvider<SourceTemplateSet> javaSources() {
default NamedDomainObjectProvider<SourceTemplateSet> javaSources() {
return this.registerSourceTemplateSet(JAVA_SOURCES_TEMPLATE_SET_NAME, SourceTemplateSet::java);
}

Expand All @@ -145,7 +146,7 @@ default void groovySources(final @NotNull Action<? super SourceTemplateSet> conf
* @param configureAction the action to configure the set with
* @since 2.0.0
*/
default void javaSources(final @NotNull Action<? super SourceTemplateSet> configureAction) {
default void javaSources(final Action<? super SourceTemplateSet> configureAction) {
this.registerSourceTemplateSet(JAVA_SOURCES_TEMPLATE_SET_NAME, SourceTemplateSet::java).configure(requireNonNull(configureAction, "configureAction"));
}

Expand All @@ -157,7 +158,7 @@ default void javaSources(final @NotNull Action<? super SourceTemplateSet> config
* @return the kotlin source template set.
* @since 2.0.0
*/
default @NotNull NamedDomainObjectProvider<SourceTemplateSet> kotlinSources() {
default NamedDomainObjectProvider<SourceTemplateSet> kotlinSources() {
return this.registerSourceTemplateSet(KOTLIN_SOURCES_TEMPLATE_SET_NAME, SourceTemplateSet::kotlin);
}

Expand All @@ -169,7 +170,7 @@ default void javaSources(final @NotNull Action<? super SourceTemplateSet> config
* @param configureAction the action to configure the set with
* @since 2.0.0
*/
default void kotlinSources(final @NotNull Action<? super SourceTemplateSet> configureAction) {
default void kotlinSources(final Action<? super SourceTemplateSet> configureAction) {
this.registerSourceTemplateSet(KOTLIN_SOURCES_TEMPLATE_SET_NAME, SourceTemplateSet::kotlin).configure(requireNonNull(configureAction, "configureAction"));
}

Expand All @@ -181,7 +182,7 @@ default void kotlinSources(final @NotNull Action<? super SourceTemplateSet> conf
* @return the scala source template set.
* @since 2.0.0
*/
default @NotNull NamedDomainObjectProvider<SourceTemplateSet> scalaSources() {
default NamedDomainObjectProvider<SourceTemplateSet> scalaSources() {
return this.registerSourceTemplateSet(SCALA_SOURCES_TEMPLATE_SET_NAME, SourceTemplateSet::scala);
}

Expand All @@ -193,7 +194,7 @@ default void kotlinSources(final @NotNull Action<? super SourceTemplateSet> conf
* @param configureAction the action to configure the set with
* @since 2.0.0
*/
default void scalaSources(final @NotNull Action<? super SourceTemplateSet> configureAction) {
default void scalaSources(final Action<? super SourceTemplateSet> configureAction) {
this.registerSourceTemplateSet(SCALA_SOURCES_TEMPLATE_SET_NAME, SourceTemplateSet::scala).configure(requireNonNull(configureAction, "configureAction"));
}

Expand All @@ -209,7 +210,7 @@ default void scalaSources(final @NotNull Action<? super SourceTemplateSet> confi
* @return the source template set
* @since 2.1.0
*/
default @NotNull NamedDomainObjectProvider<SourceTemplateSet> customSources(final @NotNull String setName, final @NotNull Action<? super SourceTemplateSet> configureAction) {
default NamedDomainObjectProvider<SourceTemplateSet> customSources(final String setName, final Action<? super SourceTemplateSet> configureAction) {
requireNonNull(setName, "setName");
final NamedDomainObjectProvider<SourceTemplateSet> setProvider;
if (this.getTemplateSets().getNames().contains(setName)) {
Expand All @@ -221,22 +222,21 @@ default void scalaSources(final @NotNull Action<? super SourceTemplateSet> confi
return setProvider;
}


/**
* Get all currently registered template sets for this source set.
*
* @return the template sets
* @since 2.0.0
*/
@NotNull PolymorphicDomainObjectContainer<TemplateSet> getTemplateSets();
PolymorphicDomainObjectContainer<TemplateSet> getTemplateSets();

/**
* Configure template sets that apply to this source set.
*
* @param configurer the action to perform
* @since 2.0.0
*/
default void templateSets(final @NotNull Action<PolymorphicDomainObjectContainer<TemplateSet>> configurer) {
default void templateSets(final Action<PolymorphicDomainObjectContainer<TemplateSet>> configurer) {
Configurable.configure(this.getTemplateSets(), configurer);
}
}
11 changes: 6 additions & 5 deletions src/main/java/net/kyori/blossom/GenerateTemplates.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,14 @@
import org.gradle.api.tasks.SkipWhenEmpty;
import org.gradle.api.tasks.TaskAction;
import org.gradle.workers.WorkerExecutor;
import org.jetbrains.annotations.NotNull;
import org.jspecify.annotations.NullMarked;

/**
* Generate real files based on templates and input parameters.
*
* @since 2.0.0
*/
@NullMarked
public abstract class GenerateTemplates extends DefaultTask {

/**
Expand All @@ -55,7 +56,7 @@ public abstract class GenerateTemplates extends DefaultTask {
* @since 2.0.0
*/
@Nested
public abstract @NotNull Property<TemplateSet> getBaseSet();
public abstract Property<TemplateSet> getBaseSet();

/**
* Files that can be included in templates, but that are not themselves templates.
Expand All @@ -66,7 +67,7 @@ public abstract class GenerateTemplates extends DefaultTask {
* @since 2.0.0
*/
@InputFiles
protected abstract @NotNull ConfigurableFileCollection getIncludesDirectories();
protected abstract ConfigurableFileCollection getIncludesDirectories();

/**
* Source directory for templates to process.
Expand All @@ -76,7 +77,7 @@ public abstract class GenerateTemplates extends DefaultTask {
*/
@InputFiles
@SkipWhenEmpty
protected abstract @NotNull ConfigurableFileCollection getSourceDirectories();
protected abstract ConfigurableFileCollection getSourceDirectories();

/**
* Destination directory for template output.
Expand All @@ -85,7 +86,7 @@ public abstract class GenerateTemplates extends DefaultTask {
* @since 2.0.0
*/
@OutputDirectory
public abstract @NotNull DirectoryProperty getOutputDir();
public abstract DirectoryProperty getOutputDir();

/**
* The worker classpath. This should include Pebble and SnakeYAML engine.
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/net/kyori/blossom/ResourceTemplateSet.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,13 @@
*/
package net.kyori.blossom;

import org.jspecify.annotations.NullMarked;

/**
* A template set type targeting resources.
*
* @since 2.0.0
*/
@NullMarked
public interface ResourceTemplateSet extends TemplateSet {
}
5 changes: 3 additions & 2 deletions src/main/java/net/kyori/blossom/SourceTemplateSet.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,14 @@
*/
package net.kyori.blossom;

import org.jetbrains.annotations.NotNull;
import org.jspecify.annotations.NullMarked;

/**
* A template set for sources.
*
* @since 2.0.0
*/
@NullMarked
public interface SourceTemplateSet extends TemplateSet {
/**
* Configure to generate templates contributing to Groovy sources.
Expand Down Expand Up @@ -68,5 +69,5 @@ default void scala() {
* @param name the name of the language extension
* @since 2.0.0
*/
void namedLanguageExtension(final @NotNull String name);
void namedLanguageExtension(final String name);
}
Loading