From 77dedf6816fe74f65535ca8d5e5354bea9b0d1f2 Mon Sep 17 00:00:00 2001 From: doni Date: Tue, 20 Oct 2020 09:38:50 +0700 Subject: [PATCH 1/4] move some field to configuration phase --- build.gradle | 10 +- gradle/wrapper/gradle-wrapper.jar | Bin 54448 -> 56177 bytes gradle/wrapper/gradle-wrapper.properties | 3 +- gradlew.bat | 168 +++++++++--------- .../internal/GenerateHensonNavigatorTask.java | 49 ++--- .../henson/plugin/internal/TaskManager.java | 126 ++++++++----- .../src/main/resources/build.properties | 2 +- 7 files changed, 183 insertions(+), 175 deletions(-) diff --git a/build.gradle b/build.gradle index 4e69ee78..67437cd3 100644 --- a/build.gradle +++ b/build.gradle @@ -23,7 +23,7 @@ buildscript { truth: 'com.google.truth:truth:0.36', robolectric: 'org.robolectric:robolectric:2.4', compiletesting: 'com.google.testing.compile:compile-testing:0.12', - spotless: 'com.diffplug.spotless:spotless-plugin-gradle:3.6.0', + spotless: 'com.diffplug.spotless:spotless-plugin-gradle:4.5.1', ] repositories { @@ -48,10 +48,10 @@ subprojects { apply plugin: "com.diffplug.gradle.spotless" - def checkSubTask = project.tasks.findByName('check') - if(checkSubTask) { - tasks['check'].dependsOn checkSubTask - } +// def checkSubTask = project.tasks.findByName('check') +// if(checkSubTask) { +// tasks['check'].dependsOn checkSubTask +// } def installSubTask = project.tasks.findByName('install') if(installSubTask) { tasks['install'].dependsOn installSubTask diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index b977425959be8a1c3881dc5e1e1922d9379c95c5..94336fcae912db8a11d55634156fa011f4686124 100644 GIT binary patch delta 50389 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 MNDuom_RnwsA8ZJg-~a#s delta 48669 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∓!lOEQxsRJR-cEqks(gA3-n|8XxK=1w6P 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 MrH2#f{pZ;K192UOw*UYD diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0589484f..be52383e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Wed Dec 06 17:59:39 PST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-all.zip diff --git a/gradlew.bat b/gradlew.bat index f9553162..e95643d6 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,84 +1,84 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/henson-plugin/src/main/java/dart/henson/plugin/internal/GenerateHensonNavigatorTask.java b/henson-plugin/src/main/java/dart/henson/plugin/internal/GenerateHensonNavigatorTask.java index 333449f6..8d0e84e3 100644 --- a/henson-plugin/src/main/java/dart/henson/plugin/internal/GenerateHensonNavigatorTask.java +++ b/henson-plugin/src/main/java/dart/henson/plugin/internal/GenerateHensonNavigatorTask.java @@ -34,44 +34,23 @@ import java.util.Set; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; -import org.gradle.api.Action; + import org.gradle.api.DefaultTask; -import org.gradle.api.Project; -import org.gradle.api.attributes.AttributeContainer; + import org.gradle.api.file.FileCollection; -import org.gradle.api.internal.file.UnionFileCollection; + import org.gradle.api.logging.Logger; import org.gradle.api.tasks.CacheableTask; -import org.gradle.api.tasks.Classpath; + import org.gradle.api.tasks.Input; -import org.gradle.api.tasks.InputFiles; + import org.gradle.api.tasks.OutputFile; import org.gradle.api.tasks.TaskAction; -import org.gradle.api.tasks.TaskProvider; -import org.gradle.api.tasks.compile.JavaCompile; + @CacheableTask public class GenerateHensonNavigatorTask extends DefaultTask { - @InputFiles - @Classpath - FileCollection getJarDependencies() { - //Thanks to Xavier Durcrohet for this - //https://android.googlesource.com/platform/tools/base/+/gradle_3.0.0/build-system/gradle-core/src/main/java/com/android/build/gradle/internal/scope/VariantScopeImpl.java#1037 - Action attributes = - container -> - container.attribute(ARTIFACT_TYPE, AndroidArtifacts.ArtifactType.CLASSES.getType()); - boolean lenientMode = false; - return variant - .getCompileConfiguration() - .getIncoming() - .artifactView( - config -> { - config.attributes(attributes); - config.lenient(lenientMode); - }) - .getArtifacts() - .getArtifactFiles(); - } + @Input String hensonNavigatorPackageName; @@ -85,19 +64,17 @@ public File getHensonNavigatorSourceFile() { return new File(generatedFolder, "HensonNavigator.java"); } - BaseVariant variant; - Project project; + + + FileCollection variantCompileClasspath; Logger logger; + HensonNavigatorGenerator hensonNavigatorGenerator; @TaskAction public void generateHensonNavigator() { - TaskProvider javaCompiler = variant.getJavaCompileProvider(); - FileCollection variantCompileClasspath = getJarDependencies(); - FileCollection uft = - new UnionFileCollection( - javaCompiler.get().getSource(), project.fileTree(destinationFolder)); - javaCompiler.get().setSource(uft); + + logger.debug("Analyzing configuration: " + variantCompileClasspath.getFiles()); Set targetActivities = new HashSet<>(); Streams.stream(variantCompileClasspath) diff --git a/henson-plugin/src/main/java/dart/henson/plugin/internal/TaskManager.java b/henson-plugin/src/main/java/dart/henson/plugin/internal/TaskManager.java index 06cff4ee..8d3f8517 100644 --- a/henson-plugin/src/main/java/dart/henson/plugin/internal/TaskManager.java +++ b/henson-plugin/src/main/java/dart/henson/plugin/internal/TaskManager.java @@ -17,63 +17,95 @@ package dart.henson.plugin.internal; +import static com.android.build.gradle.internal.publishing.AndroidArtifacts.ARTIFACT_TYPE; import static dart.henson.plugin.util.StringUtil.capitalize; import com.android.build.gradle.api.BaseVariant; +import com.android.build.gradle.internal.publishing.AndroidArtifacts; + import dart.henson.plugin.generator.HensonNavigatorGenerator; + import java.io.File; + import org.gradle.api.Action; import org.gradle.api.Project; +import org.gradle.api.attributes.AttributeContainer; +import org.gradle.api.file.FileCollection; +import org.gradle.api.internal.file.FileCollectionInternal; +import org.gradle.api.internal.file.UnionFileCollection; import org.gradle.api.logging.Logger; import org.gradle.api.tasks.TaskProvider; +import org.gradle.api.tasks.compile.JavaCompile; public class TaskManager { - private Project project; - private Logger logger; - private HensonNavigatorGenerator hensonNavigatorGenerator; - - public TaskManager(Project project, Logger logger) { - this.project = project; - this.logger = logger; - this.hensonNavigatorGenerator = new HensonNavigatorGenerator(); - } - - /** - * A henson navigator is a class that helps a consumer to consume the navigation api that it - * declares in its dependencies. The henson navigator will wrap the intent builders. Thus, a - * henson navigator, is driven by consumption of intent builders, whereas the henson classes are - * driven by the production of an intent builder. - * - *

This task is created per android variant: - * - *

- * - * @param variant the variant for which to create a builder. - * @param hensonNavigatorPackageName the package name in which we create the class. - */ - public TaskProvider createHensonNavigatorGenerationTask( - BaseVariant variant, String hensonNavigatorPackageName, File destinationFolder) { - TaskProvider generateHensonNavigatorTask = - project - .getTasks() - .register( - "generate" + capitalize(variant.getName()) + "HensonNavigator", - GenerateHensonNavigatorTask.class, - (Action) - generateHensonNavigatorTask1 -> { - generateHensonNavigatorTask1.hensonNavigatorPackageName = - hensonNavigatorPackageName; - generateHensonNavigatorTask1.destinationFolder = destinationFolder; - generateHensonNavigatorTask1.variant = variant; - generateHensonNavigatorTask1.logger = logger; - generateHensonNavigatorTask1.project = project; - generateHensonNavigatorTask1.hensonNavigatorGenerator = - hensonNavigatorGenerator; - }); - return generateHensonNavigatorTask; - } + private Project project; + private Logger logger; + private HensonNavigatorGenerator hensonNavigatorGenerator; + + public TaskManager(Project project, Logger logger) { + this.project = project; + this.logger = logger; + this.hensonNavigatorGenerator = new HensonNavigatorGenerator(); + } + + /** + * A henson navigator is a class that helps a consumer to consume the navigation api that it + * declares in its dependencies. The henson navigator will wrap the intent builders. Thus, a + * henson navigator, is driven by consumption of intent builders, whereas the henson classes are + * driven by the production of an intent builder. + * + *

This task is created per android variant: + * + *

    + *
  • we scan the variant compile configuration for navigation api dependencies + *
  • we generate a henson navigator class for this variant that wraps the intent builders + *
+ * + * @param variant the variant for which to create a builder. + * @param hensonNavigatorPackageName the package name in which we create the class. + */ + public TaskProvider createHensonNavigatorGenerationTask( + BaseVariant variant, String hensonNavigatorPackageName, File destinationFolder) { + + Action attributes = + container -> + container.attribute(ARTIFACT_TYPE, AndroidArtifacts.ArtifactType.CLASSES.getType()); + + + TaskProvider javaCompiler = variant.getJavaCompileProvider(); + + FileCollection uft = + new UnionFileCollection( + (FileCollectionInternal) javaCompiler.get().getSource(), (FileCollectionInternal) project.fileTree(destinationFolder)); + + javaCompiler.get().setSource(uft); + + TaskProvider generateHensonNavigatorTask = + project + .getTasks() + .register( + "generate" + capitalize(variant.getName()) + "HensonNavigator", + GenerateHensonNavigatorTask.class, + (Action) + generateHensonNavigatorTask1 -> { + generateHensonNavigatorTask1.hensonNavigatorPackageName = + hensonNavigatorPackageName; + generateHensonNavigatorTask1.variantCompileClasspath = variant + .getCompileConfiguration() + .getIncoming() + .artifactView( + config -> { + config.attributes(attributes); + config.lenient(false); + }) + .getArtifacts() + .getArtifactFiles(); + generateHensonNavigatorTask1.destinationFolder = destinationFolder; + generateHensonNavigatorTask1.logger = logger; + generateHensonNavigatorTask1.hensonNavigatorGenerator = + hensonNavigatorGenerator; + }); + return generateHensonNavigatorTask; + } } diff --git a/henson-plugin/src/main/resources/build.properties b/henson-plugin/src/main/resources/build.properties index f8e6c215..a30111df 100644 --- a/henson-plugin/src/main/resources/build.properties +++ b/henson-plugin/src/main/resources/build.properties @@ -1,2 +1,2 @@ -#Tue Jul 02 10:47:11 PDT 2019 +#Tue Oct 20 09:36:46 WIB 2020 dart.version=3.1.4-SNAPSHOT From 759ad0bae8439aa1c1876a5b3166d8a941127e3b Mon Sep 17 00:00:00 2001 From: doni Date: Tue, 20 Oct 2020 11:45:34 +0700 Subject: [PATCH 2/4] change passing data --- .../internal/GenerateHensonNavigatorTask.java | 18 +++++++++++------- .../henson/plugin/internal/TaskManager.java | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/henson-plugin/src/main/java/dart/henson/plugin/internal/GenerateHensonNavigatorTask.java b/henson-plugin/src/main/java/dart/henson/plugin/internal/GenerateHensonNavigatorTask.java index 8d0e84e3..a5144d14 100644 --- a/henson-plugin/src/main/java/dart/henson/plugin/internal/GenerateHensonNavigatorTask.java +++ b/henson-plugin/src/main/java/dart/henson/plugin/internal/GenerateHensonNavigatorTask.java @@ -17,11 +17,8 @@ package dart.henson.plugin.internal; -import static com.android.build.gradle.internal.publishing.AndroidArtifacts.ARTIFACT_TYPE; import static java.util.Collections.singletonList; -import com.android.build.gradle.api.BaseVariant; -import com.android.build.gradle.internal.publishing.AndroidArtifacts; import com.google.common.collect.Streams; import dart.henson.plugin.generator.HensonNavigatorGenerator; import java.io.File; @@ -42,8 +39,10 @@ import org.gradle.api.logging.Logger; import org.gradle.api.tasks.CacheableTask; +import org.gradle.api.tasks.Classpath; import org.gradle.api.tasks.Input; +import org.gradle.api.tasks.InputFiles; import org.gradle.api.tasks.OutputFile; import org.gradle.api.tasks.TaskAction; @@ -52,6 +51,11 @@ public class GenerateHensonNavigatorTask extends DefaultTask { + @InputFiles + @Classpath + FileCollection getJarDependencies() { + return jarDependencies; + } @Input String hensonNavigatorPackageName; File destinationFolder; @@ -66,18 +70,18 @@ public File getHensonNavigatorSourceFile() { - FileCollection variantCompileClasspath; + FileCollection jarDependencies; Logger logger; HensonNavigatorGenerator hensonNavigatorGenerator; @TaskAction public void generateHensonNavigator() { + FileCollection variantCompileClasspath = getJarDependencies(); - - logger.debug("Analyzing configuration: " + variantCompileClasspath.getFiles()); + logger.debug("Analyzing configuration: " + jarDependencies.getFiles()); Set targetActivities = new HashSet<>(); - Streams.stream(variantCompileClasspath) + Streams.stream(jarDependencies) .forEach( dependency -> { logger.debug("Detected dependency: {}", dependency.getAbsolutePath()); diff --git a/henson-plugin/src/main/java/dart/henson/plugin/internal/TaskManager.java b/henson-plugin/src/main/java/dart/henson/plugin/internal/TaskManager.java index 8d3f8517..79267d05 100644 --- a/henson-plugin/src/main/java/dart/henson/plugin/internal/TaskManager.java +++ b/henson-plugin/src/main/java/dart/henson/plugin/internal/TaskManager.java @@ -91,7 +91,7 @@ public TaskProvider createHensonNavigatorGeneration generateHensonNavigatorTask1 -> { generateHensonNavigatorTask1.hensonNavigatorPackageName = hensonNavigatorPackageName; - generateHensonNavigatorTask1.variantCompileClasspath = variant + generateHensonNavigatorTask1.jarDependencies = variant .getCompileConfiguration() .getIncoming() .artifactView( From c138c1213490d9199f82d01b91dd11907affb8c8 Mon Sep 17 00:00:00 2001 From: doni Date: Mon, 30 Nov 2020 21:17:41 +0700 Subject: [PATCH 3/4] fix indentation --- .../henson/plugin/internal/TaskManager.java | 137 +++++++++--------- .../src/main/resources/build.properties | 2 +- 2 files changed, 69 insertions(+), 70 deletions(-) diff --git a/henson-plugin/src/main/java/dart/henson/plugin/internal/TaskManager.java b/henson-plugin/src/main/java/dart/henson/plugin/internal/TaskManager.java index 79267d05..d74f29fe 100644 --- a/henson-plugin/src/main/java/dart/henson/plugin/internal/TaskManager.java +++ b/henson-plugin/src/main/java/dart/henson/plugin/internal/TaskManager.java @@ -39,73 +39,72 @@ public class TaskManager { - private Project project; - private Logger logger; - private HensonNavigatorGenerator hensonNavigatorGenerator; - - public TaskManager(Project project, Logger logger) { - this.project = project; - this.logger = logger; - this.hensonNavigatorGenerator = new HensonNavigatorGenerator(); - } - - /** - * A henson navigator is a class that helps a consumer to consume the navigation api that it - * declares in its dependencies. The henson navigator will wrap the intent builders. Thus, a - * henson navigator, is driven by consumption of intent builders, whereas the henson classes are - * driven by the production of an intent builder. - * - *

This task is created per android variant: - * - *

    - *
  • we scan the variant compile configuration for navigation api dependencies - *
  • we generate a henson navigator class for this variant that wraps the intent builders - *
- * - * @param variant the variant for which to create a builder. - * @param hensonNavigatorPackageName the package name in which we create the class. - */ - public TaskProvider createHensonNavigatorGenerationTask( - BaseVariant variant, String hensonNavigatorPackageName, File destinationFolder) { - - Action attributes = - container -> - container.attribute(ARTIFACT_TYPE, AndroidArtifacts.ArtifactType.CLASSES.getType()); - - - TaskProvider javaCompiler = variant.getJavaCompileProvider(); - - FileCollection uft = - new UnionFileCollection( - (FileCollectionInternal) javaCompiler.get().getSource(), (FileCollectionInternal) project.fileTree(destinationFolder)); - - javaCompiler.get().setSource(uft); - - TaskProvider generateHensonNavigatorTask = - project - .getTasks() - .register( - "generate" + capitalize(variant.getName()) + "HensonNavigator", - GenerateHensonNavigatorTask.class, - (Action) - generateHensonNavigatorTask1 -> { - generateHensonNavigatorTask1.hensonNavigatorPackageName = - hensonNavigatorPackageName; - generateHensonNavigatorTask1.jarDependencies = variant - .getCompileConfiguration() - .getIncoming() - .artifactView( - config -> { - config.attributes(attributes); - config.lenient(false); - }) - .getArtifacts() - .getArtifactFiles(); - generateHensonNavigatorTask1.destinationFolder = destinationFolder; - generateHensonNavigatorTask1.logger = logger; - generateHensonNavigatorTask1.hensonNavigatorGenerator = - hensonNavigatorGenerator; - }); - return generateHensonNavigatorTask; - } + private Project project; + private Logger logger; + private HensonNavigatorGenerator hensonNavigatorGenerator; + + public TaskManager(Project project, Logger logger) { + this.project = project; + this.logger = logger; + this.hensonNavigatorGenerator = new HensonNavigatorGenerator(); + } + + /** + * A henson navigator is a class that helps a consumer to consume the navigation api that it + * declares in its dependencies. The henson navigator will wrap the intent builders. Thus, a + * henson navigator, is driven by consumption of intent builders, whereas the henson classes are + * driven by the production of an intent builder. + * + *

This task is created per android variant: + * + *

    + *
  • we scan the variant compile configuration for navigation api dependencies + *
  • we generate a henson navigator class for this variant that wraps the intent builders + *
+ * + * @param variant the variant for which to create a builder. + * @param hensonNavigatorPackageName the package name in which we create the class. + */ + public TaskProvider createHensonNavigatorGenerationTask( + BaseVariant variant, String hensonNavigatorPackageName, File destinationFolder) { + Action attributes = + container -> + container.attribute(ARTIFACT_TYPE, AndroidArtifacts.ArtifactType.CLASSES.getType()); + + + TaskProvider javaCompiler = variant.getJavaCompileProvider(); + + FileCollection uft = + new UnionFileCollection( + (FileCollectionInternal) javaCompiler.get().getSource(), (FileCollectionInternal) project.fileTree(destinationFolder)); + + javaCompiler.get().setSource(uft); + + TaskProvider generateHensonNavigatorTask = + project + .getTasks() + .register( + "generate" + capitalize(variant.getName()) + "HensonNavigator", + GenerateHensonNavigatorTask.class, + (Action) + generateHensonNavigatorTask1 -> { + generateHensonNavigatorTask1.hensonNavigatorPackageName = + hensonNavigatorPackageName; + generateHensonNavigatorTask1.jarDependencies = variant + .getCompileConfiguration() + .getIncoming() + .artifactView( + config -> { + config.attributes(attributes); + config.lenient(false); + }) + .getArtifacts() + .getArtifactFiles(); + generateHensonNavigatorTask1.destinationFolder = destinationFolder; + generateHensonNavigatorTask1.logger = logger; + generateHensonNavigatorTask1.hensonNavigatorGenerator = + hensonNavigatorGenerator; + }); + return generateHensonNavigatorTask; + } } diff --git a/henson-plugin/src/main/resources/build.properties b/henson-plugin/src/main/resources/build.properties index a30111df..f8e6c215 100644 --- a/henson-plugin/src/main/resources/build.properties +++ b/henson-plugin/src/main/resources/build.properties @@ -1,2 +1,2 @@ -#Tue Oct 20 09:36:46 WIB 2020 +#Tue Jul 02 10:47:11 PDT 2019 dart.version=3.1.4-SNAPSHOT From 75c2ee3116745ee4c6c23c0db00f72f53799a4d5 Mon Sep 17 00:00:00 2001 From: doni Date: Mon, 30 Nov 2020 21:23:13 +0700 Subject: [PATCH 4/4] remove empty space --- .../henson/plugin/internal/GenerateHensonNavigatorTask.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/henson-plugin/src/main/java/dart/henson/plugin/internal/GenerateHensonNavigatorTask.java b/henson-plugin/src/main/java/dart/henson/plugin/internal/GenerateHensonNavigatorTask.java index a5144d14..1c6f31ad 100644 --- a/henson-plugin/src/main/java/dart/henson/plugin/internal/GenerateHensonNavigatorTask.java +++ b/henson-plugin/src/main/java/dart/henson/plugin/internal/GenerateHensonNavigatorTask.java @@ -49,8 +49,6 @@ @CacheableTask public class GenerateHensonNavigatorTask extends DefaultTask { - - @InputFiles @Classpath FileCollection getJarDependencies() { @@ -69,7 +67,6 @@ public File getHensonNavigatorSourceFile() { } - FileCollection jarDependencies; Logger logger;