File tree Expand file tree Collapse file tree 7 files changed +116
-56
lines changed
groovy/org/seasar/doma/gradle/compile
java/org/seasar/doma/gradle/compile Expand file tree Collapse file tree 7 files changed +116
-56
lines changed Original file line number Diff line number Diff line change @@ -44,9 +44,10 @@ The Doma Compile Plugin is a Gradle plugin that allows annotation processors to
4444
4545### Project Structure
4646- ** compile/** : Main plugin implementation
47- - ` CompilePlugin.java ` : Entry point that applies configurations
48- - ` ConfigureJava.java ` : Configures Java compilation to include resource directories in sourcepath
49- - ` ConfigureKotlin.groovy ` : Configures Kotlin/KAPT to include resource directories
47+ - ` CompilePlugin.java ` : Entry point that delegates to CompileConfigurator
48+ - ` CompileConfigurator.java ` : Central configuration manager that coordinates Java and Kotlin configuration
49+ - ` JavaCompileConfigurator.java ` : Configures Java compilation tasks to include resource directories in sourcepath
50+ - ` KotlinCompileConfigurator.groovy ` : Configures Kotlin/KAPT tasks to include resource directories
5051
5152- ** Test Projects** : Three separate Gradle projects for testing different scenarios
5253 - ` compile-java-test/ ` : Tests plugin with pure Java
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 1+ package org.seasar.doma.gradle.compile
2+
3+ import org.gradle.api.Project
4+ import org.gradle.api.tasks.SourceSet
5+
6+ /**
7+ * Configures Kotlin/KAPT compilation tasks for Doma annotation processing.
8+ */
9+ class KotlinCompileConfigurator {
10+
11+ private static final String KOTLIN_KAPT_PLUGIN_ID = ' kotlin-kapt'
12+ private static final String KAPT_EXTENSION_NAME = ' kapt'
13+ private static final String SOURCE_PATH_OPTION = ' --source-path'
14+ private static final String PARAMETERS_OPTION = ' -parameters'
15+
16+ private final Project project
17+
18+ KotlinCompileConfigurator (Project project ) {
19+ this . project = Objects . requireNonNull(project)
20+ }
21+
22+ void configure (SourceSet sourceSet ) {
23+ project. plugins. withId(KOTLIN_KAPT_PLUGIN_ID ) {
24+ configureKapt(sourceSet)
25+ }
26+ }
27+
28+ private void configureKapt (SourceSet sourceSet ) {
29+ def kapt = project. extensions. getByName(KAPT_EXTENSION_NAME )
30+ def resourceDirs = sourceSet. resources. srcDirs
31+ def sourcePath = resourceDirs. join(File . pathSeparator)
32+
33+ kapt. javacOptions {
34+ option SOURCE_PATH_OPTION , sourcePath
35+ option PARAMETERS_OPTION , ' '
36+ }
37+ }
38+ }
Original file line number Diff line number Diff line change 1+ package org .seasar .doma .gradle .compile ;
2+
3+ import java .util .Objects ;
4+ import org .gradle .api .Project ;
5+ import org .gradle .api .plugins .JavaPluginExtension ;
6+ import org .gradle .api .tasks .SourceSet ;
7+
8+ /** Configures compilation tasks for Doma annotation processing. */
9+ class CompileConfigurator {
10+
11+ private final Project project ;
12+ private final JavaCompileConfigurator javaConfigurator ;
13+ private final KotlinCompileConfigurator kotlinConfigurator ;
14+
15+ CompileConfigurator (Project project ) {
16+ this .project = Objects .requireNonNull (project );
17+ this .javaConfigurator = new JavaCompileConfigurator (project );
18+ this .kotlinConfigurator = new KotlinCompileConfigurator (project );
19+ }
20+
21+ void configure () {
22+ var javaExtension = project .getExtensions ().getByType (JavaPluginExtension .class );
23+ var mainSourceSet = javaExtension .getSourceSets ().getByName (SourceSet .MAIN_SOURCE_SET_NAME );
24+
25+ configureSourceSet (mainSourceSet );
26+ }
27+
28+ private void configureSourceSet (SourceSet sourceSet ) {
29+ javaConfigurator .configure (sourceSet );
30+ kotlinConfigurator .configure (sourceSet );
31+ }
32+ }
Original file line number Diff line number Diff line change 33import org .gradle .api .Plugin ;
44import org .gradle .api .Project ;
55import org .gradle .api .plugins .JavaPlugin ;
6- import org .gradle .api .plugins .JavaPluginExtension ;
7- import org .gradle .api .tasks .SourceSet ;
86
7+ /**
8+ * Gradle plugin that configures annotation processors to read Doma resources at compile-time. This
9+ * plugin automatically configures both Java and Kotlin compilation tasks.
10+ */
911public class CompilePlugin implements Plugin <Project > {
1012
1113 @ Override
1214 public void apply (Project project ) {
13- project
14- .getPlugins ()
15- .withType (
16- JavaPlugin .class ,
17- javaPlugin -> {
18- JavaPluginExtension javaPluginExtension =
19- project .getExtensions ().getByType (JavaPluginExtension .class );
20- SourceSet mainSourceSet =
21- javaPluginExtension .getSourceSets ().getByName (SourceSet .MAIN_SOURCE_SET_NAME );
22- ConfigureJava .configure (project , mainSourceSet );
23- ConfigureKotlin .configure (project , mainSourceSet );
24- });
15+ project .getPlugins ().withType (JavaPlugin .class , javaPlugin -> configureProject (project ));
16+ }
17+
18+ private void configureProject (Project project ) {
19+ var configurator = new CompileConfigurator (project );
20+ configurator .configure ();
2521 }
2622}
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 1+ package org .seasar .doma .gradle .compile ;
2+
3+ import java .util .Objects ;
4+ import org .gradle .api .Project ;
5+ import org .gradle .api .tasks .SourceSet ;
6+ import org .gradle .api .tasks .compile .JavaCompile ;
7+
8+ /** Configures Java compilation tasks for Doma annotation processing. */
9+ class JavaCompileConfigurator {
10+
11+ private static final String PARAMETERS_COMPILER_ARG = "-parameters" ;
12+
13+ private final Project project ;
14+
15+ JavaCompileConfigurator (Project project ) {
16+ this .project = Objects .requireNonNull (project );
17+ }
18+
19+ void configure (SourceSet sourceSet ) {
20+ var resourceDirs = sourceSet .getResources ().getSrcDirs ();
21+ var compileTaskName = sourceSet .getCompileJavaTaskName ();
22+
23+ project
24+ .getTasks ()
25+ .named (compileTaskName , JavaCompile .class )
26+ .configure (
27+ javaCompile -> {
28+ javaCompile .getOptions ().setSourcepath (project .files (resourceDirs ));
29+ javaCompile .getOptions ().getCompilerArgs ().add (PARAMETERS_COMPILER_ARG );
30+ });
31+ }
32+ }
You can’t perform that action at this time.
0 commit comments