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