From e291c651f416df594a17480c8834423313b55b56 Mon Sep 17 00:00:00 2001 From: Martin Chalupa Date: Tue, 15 Aug 2023 11:19:38 -0700 Subject: [PATCH] Add extension configuration to enable in memory processing on demand instead of enabled always, it helps workaround certain jar format issues but can cause out of memory for big jars so cannot be enabled all the time --- .../gradle/jakartaee/JakartaEeMigrationExtension.kt | 9 +++++++++ .../gradle/jakartaee/JakartaEeMigrationTransform.kt | 11 ++++++++++- .../com/netflix/gradle/jakartaee/TransformSpec.groovy | 4 ++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/com/netflix/gradle/jakartaee/JakartaEeMigrationExtension.kt b/src/main/kotlin/com/netflix/gradle/jakartaee/JakartaEeMigrationExtension.kt index 1e31e73..acd4049 100644 --- a/src/main/kotlin/com/netflix/gradle/jakartaee/JakartaEeMigrationExtension.kt +++ b/src/main/kotlin/com/netflix/gradle/jakartaee/JakartaEeMigrationExtension.kt @@ -86,6 +86,7 @@ public open class JakartaEeMigrationExtension( private val configuredCapabilities = AtomicBoolean() private val registeredTransform = AtomicBoolean() private val excludeSpecificationsTransform = AtomicBoolean() + private val transformInMemory = AtomicBoolean() private val preventTransformOfProductionConfigurations = AtomicBoolean() private val included = mutableListOf() private val excluded = mutableListOf() @@ -304,8 +305,16 @@ public open class JakartaEeMigrationExtension( .attribute(ARTIFACT_TYPE_ATTRIBUTE, ArtifactTypeDefinition.JAR_TYPE) parameters.setIncludedArtifacts(included) parameters.setExcludedArtifacts(excluded) + parameters.setTransformInMemory(transformInMemory) } } } } + + /** + * Enables inmemory zip processing for migration tool. + */ + public fun transformInMemory() { + transformInMemory.set(true) + } } diff --git a/src/main/kotlin/com/netflix/gradle/jakartaee/JakartaEeMigrationTransform.kt b/src/main/kotlin/com/netflix/gradle/jakartaee/JakartaEeMigrationTransform.kt index a43b9ce..f1f35e9 100644 --- a/src/main/kotlin/com/netflix/gradle/jakartaee/JakartaEeMigrationTransform.kt +++ b/src/main/kotlin/com/netflix/gradle/jakartaee/JakartaEeMigrationTransform.kt @@ -34,6 +34,7 @@ import org.slf4j.LoggerFactory import java.io.FileNotFoundException import java.io.UncheckedIOException import java.nio.file.Files +import java.util.concurrent.atomic.AtomicBoolean import java.util.logging.Handler import java.util.logging.Level import java.util.logging.LogRecord @@ -55,6 +56,10 @@ internal abstract class JakartaEeMigrationTransform : TransformAction fun setIncludedArtifacts(includedArtifact: List) + + @Input + fun getTransformInMemory(): AtomicBoolean + fun setTransformInMemory(transformInMemory: AtomicBoolean) } companion object { @@ -83,6 +88,10 @@ internal abstract class JakartaEeMigrationTransform : TransformAction.toPaths() = flatMap { listOf( "/${it.group}/${it.name}/", // Ivy repository layout. Gradle module cache @@ -116,7 +125,7 @@ internal abstract class JakartaEeMigrationTransform : TransformAction