Skip to content

Commit

Permalink
Cleanups
Browse files Browse the repository at this point in the history
  • Loading branch information
Goooler committed Sep 22, 2024
1 parent 5c73474 commit 4222b6c
Show file tree
Hide file tree
Showing 20 changed files with 129 additions and 197 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.github.jengelman.gradle.plugins.shadow.internal
package com.github.jengelman.gradle.plugins.shadow

import groovy.lang.Closure
import org.gradle.api.artifacts.Dependency
Expand All @@ -20,35 +20,35 @@ interface DependencyFilter {
/**
* Exclude dependencies that match the provided spec.
*/
fun exclude(spec: Spec<in ResolvedDependency>): DependencyFilter
fun exclude(spec: Spec<ResolvedDependency>): DependencyFilter

/**
* Include dependencies that match the provided spec.
*/
fun include(spec: Spec<in ResolvedDependency>): DependencyFilter
fun include(spec: Spec<ResolvedDependency>): DependencyFilter

/**
* Create a spec that matches the provided project notation on group, name, and version
*/
fun project(notation: Map<String, *>): Spec<in ResolvedDependency>
fun project(notation: Map<String, *>): Spec<ResolvedDependency>

/**
* Create a spec that matches the default configuration for the provided project path on group, name, and version
*/
fun project(notation: String): Spec<in ResolvedDependency>
fun project(notation: String): Spec<ResolvedDependency>

/**
* Create a spec that matches dependencies using the provided notation on group, name, and version
*/
fun dependency(notation: Any): Spec<in ResolvedDependency>
fun dependency(notation: Any): Spec<ResolvedDependency>

/**
* Create a spec that matches the provided dependency on group, name, and version
*/
fun dependency(dependency: Dependency): Spec<in ResolvedDependency>
fun dependency(dependency: Dependency): Spec<ResolvedDependency>

/**
* Create a spec that matches the provided closure
*/
fun dependency(spec: Closure<*>): Spec<in ResolvedDependency>
fun dependency(spec: Closure<*>): Spec<ResolvedDependency>
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.github.jengelman.gradle.plugins.shadow

import com.github.jengelman.gradle.plugins.shadow.internal.JavaJarExec
import com.github.jengelman.gradle.plugins.shadow.internal.Utils
import com.github.jengelman.gradle.plugins.shadow.internal.requireResourceAsText
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import java.io.File
import org.gradle.api.GradleException
Expand Down Expand Up @@ -74,9 +74,9 @@ class ShadowApplicationPlugin : Plugin<Project> {
private fun addCreateScriptsTask(project: Project) {
project.tasks.register(SHADOW_SCRIPTS_TASK_NAME, CreateStartScripts::class.java) { startScripts ->
(startScripts.unixStartScriptGenerator as DefaultTemplateBasedStartScriptGenerator).template =
project.resources.text.fromString(Utils.requireResourceAsText("internal/unixStartScript.txt"))
project.resources.text.fromString(requireResourceAsText("internal/unixStartScript.txt"))
(startScripts.windowsStartScriptGenerator as DefaultTemplateBasedStartScriptGenerator).template =
project.resources.text.fromString(Utils.requireResourceAsText("internal/windowsStartScript.txt"))
project.resources.text.fromString(requireResourceAsText("internal/windowsStartScript.txt"))
startScripts.description =
"Creates OS specific scripts to run the project as a JVM application using the shadow jar"
startScripts.group = ApplicationPlugin.APPLICATION_GROUP
Expand Down Expand Up @@ -107,9 +107,11 @@ class ShadowApplicationPlugin : Plugin<Project> {
}
}
task.doLast {
task.eachFile {
if (it.path == "bin/${javaApplication.applicationName}") {
it.mode = 0x755
task.eachFile { file ->
if (file.path == "bin/${javaApplication.applicationName}") {
file.permissions {
it.unix(0x755)
}
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.github.jengelman.gradle.plugins.shadow.internal
package com.github.jengelman.gradle.plugins.shadow

import org.gradle.api.internal.file.archive.compression.ArchiveOutputStreamFactory

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

import com.github.jengelman.gradle.plugins.shadow.DependencyFilter
import groovy.lang.Closure
import org.gradle.api.Project
import org.gradle.api.artifacts.Configuration
Expand All @@ -11,9 +12,8 @@ import org.gradle.api.specs.Spec
import org.gradle.api.specs.Specs

internal abstract class AbstractDependencyFilter(protected val project: Project) : DependencyFilter {

protected val includeSpecs: MutableList<Spec<in ResolvedDependency>> = mutableListOf()
protected val excludeSpecs: MutableList<Spec<in ResolvedDependency>> = mutableListOf()
private val includeSpecs = mutableListOf<Spec<ResolvedDependency>>()
private val excludeSpecs = mutableListOf<Spec<ResolvedDependency>>()

protected abstract fun resolve(
dependencies: Set<ResolvedDependency>,
Expand All @@ -38,37 +38,35 @@ internal abstract class AbstractDependencyFilter(protected val project: Project)
?: project.files()
}

override fun exclude(spec: Spec<in ResolvedDependency>): DependencyFilter {
override fun exclude(spec: Spec<ResolvedDependency>): DependencyFilter = apply {
excludeSpecs.add(spec)
return this
}

override fun include(spec: Spec<in ResolvedDependency>): DependencyFilter {
override fun include(spec: Spec<ResolvedDependency>): DependencyFilter = apply {
includeSpecs.add(spec)
return this
}

override fun project(notation: Map<String, *>): Spec<in ResolvedDependency> {
override fun project(notation: Map<String, *>): Spec<ResolvedDependency> {
return dependency(project.dependencies.project(notation))
}

override fun project(notation: String): Spec<in ResolvedDependency> {
override fun project(notation: String): Spec<ResolvedDependency> {
return dependency(project.dependencies.project(mapOf("path" to notation, "configuration" to "default")))
}

override fun dependency(notation: Any): Spec<in ResolvedDependency> {
override fun dependency(notation: Any): Spec<ResolvedDependency> {
return dependency(project.dependencies.create(notation))
}

override fun dependency(dependency: Dependency): Spec<in ResolvedDependency> {
override fun dependency(dependency: Dependency): Spec<ResolvedDependency> {
return dependency { it: ResolvedDependency ->
(dependency.group == null || it.moduleGroup.matches(dependency.group!!.toRegex())) &&
(it.moduleName.matches(dependency.name.toRegex())) &&
(dependency.version == null || it.moduleVersion.matches(dependency.version!!.toRegex()))
}
}

override fun dependency(spec: Closure<*>): Spec<in ResolvedDependency> {
override fun dependency(spec: Closure<*>): Spec<ResolvedDependency> {
return Specs.convertClosureToSpec(spec)
}

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

import com.github.jengelman.gradle.plugins.shadow.tasks.InheritManifest
import org.gradle.api.Action
import org.gradle.api.internal.file.FileResolver
import org.gradle.api.java.archives.Manifest
import org.gradle.api.java.archives.internal.DefaultManifest
import org.gradle.api.java.archives.internal.DefaultManifestMergeSpec

internal class DefaultInheritManifest(
private val fileResolver: FileResolver,
private val internalManifest: Manifest = DefaultManifest(fileResolver),
) : InheritManifest,
Manifest by internalManifest {
private val inheritMergeSpecs: MutableList<DefaultManifestMergeSpec> = ArrayList()

override fun inheritFrom(vararg inheritPaths: Any): InheritManifest = apply {
inheritFrom(inheritPaths, action = null)
}

override fun inheritFrom(vararg inheritPaths: Any, action: Action<InheritManifest>?): InheritManifest = apply {
val mergeSpec = DefaultManifestMergeSpec()
mergeSpec.from(inheritPaths)
inheritMergeSpecs.add(mergeSpec)
action?.execute(this)
}

override fun getEffectiveManifest(): DefaultManifest {
var base = DefaultManifest(fileResolver)
inheritMergeSpecs.forEach {
base = it.merge(base, fileResolver)
}
base.from(internalManifest)
return base.effectiveManifest
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.github.jengelman.gradle.plugins.shadow.internal

import com.github.jengelman.gradle.plugins.shadow.ZipCompressor
import java.io.File
import org.apache.tools.zip.Zip64Mode
import org.apache.tools.zip.ZipOutputStream
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

package com.github.jengelman.gradle.plugins.shadow.impl
package com.github.jengelman.gradle.plugins.shadow.internal

import com.github.jengelman.gradle.plugins.shadow.ShadowStats
import com.github.jengelman.gradle.plugins.shadow.relocation.RelocateClassContext
Expand All @@ -14,7 +13,7 @@ import org.objectweb.asm.commons.Remapper
*
* @author John Engelman
*/
class RelocatorRemapper(
internal class RelocatorRemapper(
internal val relocators: List<Relocator>,
internal val stats: ShadowStats,
) : Remapper() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.github.jengelman.gradle.plugins.shadow.tasks
package com.github.jengelman.gradle.plugins.shadow.internal

import com.github.jengelman.gradle.plugins.shadow.DependencyFilter
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
import com.github.jengelman.gradle.plugins.shadow.transformers.ServiceFileTransformer
Expand Down Expand Up @@ -57,7 +57,7 @@ internal interface ShadowSpec : CopySpec {
NoSuchMethodException::class,
InvocationTargetException::class,
)
fun relocate(clazz: Class<out Relocator>): ShadowSpec
fun relocate(clazz: Class<Relocator>): ShadowSpec

@Throws(
InstantiationException::class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import org.vafer.jdependency.Clazzpath
import org.vafer.jdependency.ClazzpathUnit

/** Tracks unused classes in the project classpath. */
class UnusedTracker private constructor(
internal class UnusedTracker private constructor(
classDirs: Iterable<File>,
classJars: FileCollection,
@InputFiles val toMinimize: FileCollection,
Expand Down Expand Up @@ -40,7 +40,6 @@ class UnusedTracker private constructor(
}

companion object {
@JvmStatic
fun forProject(
apiJars: FileCollection,
sourceSetsClassesDirs: Iterable<File>,
Expand All @@ -49,7 +48,6 @@ class UnusedTracker private constructor(
return UnusedTracker(sourceSetsClassesDirs, apiJars, toMinimize)
}

@JvmStatic
fun getApiJarsFromProject(project: Project): FileCollection {
val apiDependencies = project.configurations.findByName("api")?.dependencies
?: return project.files()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,21 @@ package com.github.jengelman.gradle.plugins.shadow.internal

import java.io.InputStream

internal object Utils {
internal fun requireResourceAsText(name: String): String {
return requireResourceAsStream(name).bufferedReader().readText()
}

fun requireResourceAsText(name: String): String {
return requireResourceAsStream(name).bufferedReader().readText()
internal inline fun <R> runOrThrow(
error: (e: Exception) -> Nothing = { throw RuntimeException(it) },
block: () -> R,
): R {
return try {
block()
} catch (e: Exception) {
error(e)
}
}

private fun requireResourceAsStream(name: String): InputStream {
return this::class.java.getResourceAsStream(name) ?: error("Resource $name not found.")
}
private fun requireResourceAsStream(name: String): InputStream {
return Unit::class.java.getResourceAsStream(name) ?: error("Resource $name not found.")
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,14 +61,12 @@ class SimpleRelocator @JvmOverloads constructor(
this.excludes += normalizePatterns(excludes)
}

fun include(pattern: String): SimpleRelocator {
fun include(pattern: String): SimpleRelocator = apply {
includes.addAll(normalizePatterns(listOf(pattern)))
return this
}

fun exclude(pattern: String): SimpleRelocator {
fun exclude(pattern: String): SimpleRelocator = apply {
excludes.addAll(normalizePatterns(listOf(pattern)))
return this
}

override fun canRelocatePath(path: String): Boolean {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,5 @@ import org.gradle.api.java.archives.Manifest

interface InheritManifest : Manifest {
fun inheritFrom(vararg inheritPaths: Any): InheritManifest

fun inheritFrom(vararg inheritPaths: Any, action: Action<InheritManifest>?): InheritManifest
}
Loading

0 comments on commit 4222b6c

Please sign in to comment.