Skip to content

Commit

Permalink
Mark ShadowJar.dependencyFilter as Input (#1206)
Browse files Browse the repository at this point in the history
* Mark dependencyFilter as Input

* Mark stats as intenral modifier

* Mark DependencyFilter as Serializable

* Mark Transient, Optional, and Input for keyTransformer

* Revert "Mark Transient, Optional, and Input for keyTransformer"

This reverts commit 58564d3.

* Comment it

* Update changelog
  • Loading branch information
Goooler authored Jan 28, 2025
1 parent 0359eb9 commit 83ca343
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 12 deletions.
4 changes: 1 addition & 3 deletions api/shadow.api
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public class com/github/jengelman/gradle/plugins/shadow/impl/RelocatorRemapper :
public fun mapValue (Ljava/lang/Object;)Ljava/lang/Object;
}

public abstract interface class com/github/jengelman/gradle/plugins/shadow/internal/DependencyFilter {
public abstract interface class com/github/jengelman/gradle/plugins/shadow/internal/DependencyFilter : java/io/Serializable {
public abstract fun dependency (Ljava/lang/Object;)Lorg/gradle/api/specs/Spec;
public abstract fun dependency (Lorg/gradle/api/artifacts/Dependency;)Lorg/gradle/api/specs/Spec;
public abstract fun exclude (Lorg/gradle/api/specs/Spec;)Lcom/github/jengelman/gradle/plugins/shadow/internal/DependencyFilter;
Expand Down Expand Up @@ -317,7 +317,6 @@ public abstract class com/github/jengelman/gradle/plugins/shadow/tasks/ShadowJar
public fun getRelocators ()Lorg/gradle/api/provider/SetProperty;
protected fun getRootPatternSet ()Lorg/gradle/api/tasks/util/PatternSet;
public fun getSourceSetsClassesDirs ()Lorg/gradle/api/file/ConfigurableFileCollection;
public fun getStats ()Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;
public fun getToMinimize ()Lorg/gradle/api/file/ConfigurableFileCollection;
public fun getTransformers ()Lorg/gradle/api/provider/SetProperty;
public fun mergeGroovyExtensionModules ()Lcom/github/jengelman/gradle/plugins/shadow/tasks/ShadowJar;
Expand Down Expand Up @@ -354,7 +353,6 @@ public abstract interface class com/github/jengelman/gradle/plugins/shadow/tasks
public abstract fun append (Ljava/lang/String;)Lcom/github/jengelman/gradle/plugins/shadow/tasks/ShadowSpec;
public abstract fun append (Ljava/lang/String;Ljava/lang/String;)Lcom/github/jengelman/gradle/plugins/shadow/tasks/ShadowSpec;
public abstract fun dependencies (Lorg/gradle/api/Action;)Lcom/github/jengelman/gradle/plugins/shadow/tasks/ShadowSpec;
public abstract fun getStats ()Lcom/github/jengelman/gradle/plugins/shadow/ShadowStats;
public abstract fun mergeGroovyExtensionModules ()Lcom/github/jengelman/gradle/plugins/shadow/tasks/ShadowSpec;
public abstract fun mergeServiceFiles ()Lcom/github/jengelman/gradle/plugins/shadow/tasks/ShadowSpec;
public abstract fun mergeServiceFiles (Ljava/lang/String;)Lcom/github/jengelman/gradle/plugins/shadow/tasks/ShadowSpec;
Expand Down
2 changes: 2 additions & 0 deletions src/docs/changes/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@

- Update start script templates. ([#1183](https://github.com/GradleUp/shadow/pull/1183))
- Mark more `Transformer`s cacheable. ([#1210](https://github.com/GradleUp/shadow/pull/1210))
- Mark `ShadowJar.dependencyFilter` as `@Input`. ([#1206](https://github.com/GradleUp/shadow/pull/1206))
`ShadowSpec.stats` is removed and `ShadowJar.stats` is `internal` for now.

**Fixed**

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package com.github.jengelman.gradle.plugins.shadow.internal

import java.io.Serializable
import org.gradle.api.artifacts.Configuration
import org.gradle.api.artifacts.Dependency
import org.gradle.api.artifacts.ResolvedDependency
import org.gradle.api.file.FileCollection
import org.gradle.api.specs.Spec

public interface DependencyFilter {
// DependencyFilter is used as Gradle Input in ShadowJar, so it must be Serializable.
public interface DependencyFilter : Serializable {
/**
* Resolve a [configuration] against the [include]/[exclude] rules in the filter.
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,6 @@ public abstract class ShadowJar :
}
}

@get:Internal
override val stats: ShadowStats = ShadowStats()

/**
* Minimize the jar by removing unused classes.
*
Expand Down Expand Up @@ -105,6 +102,9 @@ public abstract class ShadowJar :
}
}

@get:Internal
internal val stats: ShadowStats = ShadowStats()

@get:Internal
protected open val rootPatternSet: PatternSet
get() = (mainSpec.buildRootResolver() as DefaultCopySpec.DefaultCopySpecResolver).patternSet
Expand All @@ -129,7 +129,7 @@ public abstract class ShadowJar :
@get:Optional
public open val configurations: SetProperty<Configuration> = objectFactory.setProperty()

@get:Internal
@get:Input
public open val dependencyFilter: Property<DependencyFilter> =
objectFactory.property(DefaultDependencyFilter(project))

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.github.jengelman.gradle.plugins.shadow.tasks

import com.github.jengelman.gradle.plugins.shadow.ShadowStats
import com.github.jengelman.gradle.plugins.shadow.internal.DependencyFilter
import com.github.jengelman.gradle.plugins.shadow.relocation.Relocator
import com.github.jengelman.gradle.plugins.shadow.relocation.SimpleRelocator
Expand Down Expand Up @@ -68,6 +67,4 @@ public interface ShadowSpec : CopySpec {
InvocationTargetException::class,
)
public fun <R : Relocator> relocate(clazz: Class<R>, action: Action<R>?): ShadowSpec

public val stats: ShadowStats
}
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ public open class PropertiesFileTransformer @Inject constructor(
@get:Input
public open val charsetName: Property<String> = objectFactory.property(Charsets.ISO_8859_1.name())

@get:Internal
@get:Internal // TODO: should be @Input, but it can't be serialized, see https://github.com/GradleUp/shadow/pull/1208.
public open var keyTransformer: (String) -> String = IDENTITY

override fun canTransformResource(element: FileTreeElement): Boolean {
Expand Down

0 comments on commit 83ca343

Please sign in to comment.