Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import com.github.jengelman.gradle.plugins.shadow.ShadowBasePlugin.Companion.SHA
import com.github.jengelman.gradle.plugins.shadow.ShadowBasePlugin.Companion.shadow
import com.github.jengelman.gradle.plugins.shadow.internal.applicationExtension
import com.github.jengelman.gradle.plugins.shadow.internal.distributions
import com.github.jengelman.gradle.plugins.shadow.internal.gradleError
import com.github.jengelman.gradle.plugins.shadow.internal.javaPluginExtension
import com.github.jengelman.gradle.plugins.shadow.internal.javaToolchainService
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar.Companion.shadowJar
import java.io.IOException
import org.gradle.api.GradleException
import org.gradle.api.NamedDomainObjectProvider
import org.gradle.api.Plugin
import org.gradle.api.Project
Expand Down Expand Up @@ -95,7 +95,7 @@ public abstract class ShadowApplicationPlugin : Plugin<Project> {
!destinationDir.resolve("bin").isDirectory ||
!destinationDir.resolve(executableDir.get()).isDirectory
) {
throw GradleException(
gradleError(
"The specified installation directory '$destinationDir' is neither empty nor does it contain an installation for '${applicationName.get()}'.\n" +
"If you really want to install to this directory, delete it and run the install task again.\n" +
"Alternatively, choose a different installation directory."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ package com.github.jengelman.gradle.plugins.shadow
import com.github.jengelman.gradle.plugins.shadow.internal.KOTLIN_MULTIPLATFORM_PLUGIN_ID
import com.github.jengelman.gradle.plugins.shadow.internal.addBuildScanCustomValues
import com.github.jengelman.gradle.plugins.shadow.internal.findOptionalProperty
import com.github.jengelman.gradle.plugins.shadow.internal.gradleError
import com.github.jengelman.gradle.plugins.shadow.legacy.LegacyShadowPlugin
import org.gradle.api.GradleException
import org.gradle.api.Plugin
import org.gradle.api.Project

Expand All @@ -19,7 +19,7 @@ public abstract class ShadowPlugin : Plugin<Project> {
withId("org.gradle.application") { apply(ShadowApplicationPlugin::class.java) }
withId(KOTLIN_MULTIPLATFORM_PLUGIN_ID) { apply(ShadowKmpPlugin::class.java) }
withId("com.android.base") {
throw GradleException(
gradleError(
"Shadow does not support being used with AGP. You may need the Android Fused Library plugin instead. " +
"See https://developer.android.com/build/publish-library/fused-library"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.github.jengelman.gradle.plugins.shadow.internal
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import com.gradle.develocity.agent.gradle.DevelocityConfiguration
import java.io.InputStream
import org.gradle.api.GradleException
import org.gradle.api.Project
import org.gradle.api.artifacts.Configuration
import org.gradle.api.distribution.DistributionContainer
Expand All @@ -21,6 +22,10 @@ import org.gradle.api.provider.SetProperty
import org.gradle.api.tasks.SourceSetContainer
import org.gradle.jvm.toolchain.JavaToolchainService

@Suppress("NOTHING_TO_INLINE")
internal inline fun gradleError(message: String, cause: Throwable? = null): Nothing =
throw GradleException(message, cause)

/** Return `runtimeClasspath` or `runtime` configuration. */
internal inline val Project.runtimeConfiguration: Configuration
get() =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import java.io.File
import java.nio.file.StandardCopyOption.REPLACE_EXISTING
import java.util.zip.ZipEntry
import kotlin.io.path.moveTo
import org.gradle.api.GradleException
import org.gradle.api.file.FileCollection
import org.gradle.api.logging.Logger
import org.gradle.api.provider.Provider
Expand Down Expand Up @@ -41,7 +40,7 @@ internal fun minimizeWithR8(
relocators: Iterable<Relocator>,
) {
if (r8Classpath.isEmpty) {
throw GradleException(
gradleError(
"R8 minimization requires a non-empty R8 classpath. Apply the Shadow plugin or configure the shadowR8 configuration."
)
}
Expand All @@ -54,7 +53,7 @@ internal fun minimizeWithR8(
val javaHome =
launcher?.metadata?.installationPath?.asFile?.absolutePath ?: System.getProperty("java.home")
if (javaHome.isNullOrBlank()) {
throw GradleException("R8 minimization requires the java.home system property.")
gradleError("R8 minimization requires the java.home system property.")
}

val r8Args = r8Spec.args.get()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.github.jengelman.gradle.plugins.shadow.internal

import com.github.jengelman.gradle.plugins.shadow.relocation.Relocator
import org.gradle.api.GradleException
import org.gradle.api.file.FileCopyDetails
import org.vafer.jdeb.shaded.objectweb.asm.ClassReader
import org.vafer.jdeb.shaded.objectweb.asm.ClassWriter
Expand Down Expand Up @@ -33,7 +32,7 @@ internal fun FileCopyDetails.remapClass(relocators: Set<Relocator>): ByteArray =
// If we didn't need to change anything, keep the original bytes as-is.
if (modified) cw.toByteArray() else bytes
} catch (t: Throwable) {
throw GradleException("Error in ASM processing class $path", t)
gradleError("Error in ASM processing class $path", t)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import org.apache.tools.zip.UnixStat
import org.apache.tools.zip.Zip64Mode
import org.apache.tools.zip.ZipEntry
import org.apache.tools.zip.ZipOutputStream
import org.gradle.api.GradleException
import org.gradle.api.tasks.bundling.ZipEntryCompression

@JvmInline
Expand Down Expand Up @@ -81,7 +80,7 @@ internal inline fun ZipOutputStream.writeEntry(
write: ZipOutputStream.() -> Unit = {},
) {
if (name.split('/', '\\').any { it == ".." }) {
throw GradleException("Malicious ZIP entry containing path traversal sequence: $name")
gradleError("Malicious ZIP entry containing path traversal sequence: $name")
}

val entry =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ package com.github.jengelman.gradle.plugins.shadow.tasks

import com.github.jengelman.gradle.plugins.shadow.internal.UnixMode
import com.github.jengelman.gradle.plugins.shadow.internal.entries
import com.github.jengelman.gradle.plugins.shadow.internal.gradleError
import com.github.jengelman.gradle.plugins.shadow.internal.inputStream
import com.github.jengelman.gradle.plugins.shadow.internal.parentDirectoryEntries
import com.github.jengelman.gradle.plugins.shadow.internal.remapClass
Expand All @@ -17,7 +18,6 @@ import com.github.jengelman.gradle.plugins.shadow.transformers.TransformerContex
import java.io.File
import org.apache.tools.zip.Zip64RequiredException
import org.apache.tools.zip.ZipOutputStream
import org.gradle.api.GradleException
import org.gradle.api.file.FileCopyDetails
import org.gradle.api.internal.file.CopyActionProcessingStreamAction
import org.gradle.api.internal.file.copy.CopyAction
Expand Down Expand Up @@ -59,7 +59,7 @@ internal constructor(
try {
zosProvider(zipFile)
} catch (e: Exception) {
throw GradleException("Could not create ZIP '$zipFile'.", e)
gradleError("Could not create ZIP '$zipFile'.", e)
},
transformers = transformers,
relocators = relocators,
Expand Down Expand Up @@ -143,7 +143,7 @@ internal constructor(
duplicates.entries.joinToString(separator = "\n") { "${it.key} (${it.value} times)" }
val message = "Duplicate entries found in the shadowed JAR: \n$dupEntries"
if (failOnDuplicateEntries) {
throw GradleException(message)
gradleError(message)
} else {
logger.warn(message)
}
Expand All @@ -164,7 +164,7 @@ internal constructor(
visitFile(details)
}
} catch (e: Exception) {
throw GradleException("Could not add $details to ZIP '$zipFile'.", e)
gradleError("Could not add $details to ZIP '$zipFile'.", e)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import com.github.jengelman.gradle.plugins.shadow.internal.createZipOutputStream
import com.github.jengelman.gradle.plugins.shadow.internal.fileCollection
import com.github.jengelman.gradle.plugins.shadow.internal.findUnusedClasses
import com.github.jengelman.gradle.plugins.shadow.internal.getApiJars
import com.github.jengelman.gradle.plugins.shadow.internal.gradleError
import com.github.jengelman.gradle.plugins.shadow.internal.javaPluginExtension
import com.github.jengelman.gradle.plugins.shadow.internal.javaToolchainService
import com.github.jengelman.gradle.plugins.shadow.internal.mainClassAttributeKey
Expand Down Expand Up @@ -39,7 +40,6 @@ import java.util.zip.ZipException
import javax.inject.Inject
import kotlin.reflect.full.hasAnnotation
import org.gradle.api.Action
import org.gradle.api.GradleException
import org.gradle.api.Project
import org.gradle.api.artifacts.Configuration
import org.gradle.api.file.ArchiveOperations
Expand Down Expand Up @@ -649,7 +649,7 @@ public abstract class ShadowJar : Jar() {
or use Android Fused Library plugin instead. See https://developer.android.com/build/publish-library/fused-library.
"""
.trimIndent()
throw GradleException(message)
gradleError(message)
}
else -> {
logger.debug("Including dependency: {}", file)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.github.jengelman.gradle.plugins.shadow.transformers

import com.github.jengelman.gradle.plugins.shadow.internal.checkDupStrategy
import com.github.jengelman.gradle.plugins.shadow.internal.gradleError
import com.github.jengelman.gradle.plugins.shadow.internal.inputStream
import com.github.jengelman.gradle.plugins.shadow.tasks.FindResourceInClasspath
import java.io.File
Expand All @@ -9,7 +10,6 @@ import java.security.MessageDigest
import java.util.HexFormat
import javax.inject.Inject
import org.apache.tools.zip.ZipOutputStream
import org.gradle.api.GradleException
import org.gradle.api.file.FileTreeElement
import org.gradle.api.model.ObjectFactory
import org.gradle.api.tasks.Internal
Expand Down Expand Up @@ -99,7 +99,7 @@ public open class DeduplicatingResourceTransformer(
}
}
}
throw GradleException(message)
gradleError(message)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.github.jengelman.gradle.plugins.shadow.transformers

import com.github.jengelman.gradle.plugins.shadow.internal.ReproducibleProperties
import com.github.jengelman.gradle.plugins.shadow.internal.checkDupStrategy
import com.github.jengelman.gradle.plugins.shadow.internal.gradleError
import com.github.jengelman.gradle.plugins.shadow.internal.mapProperty
import com.github.jengelman.gradle.plugins.shadow.internal.property
import com.github.jengelman.gradle.plugins.shadow.internal.setProperty
Expand All @@ -11,7 +12,6 @@ import java.nio.charset.Charset
import java.util.Properties
import javax.inject.Inject
import org.apache.tools.zip.ZipOutputStream
import org.gradle.api.GradleException
import org.gradle.api.file.FileTreeElement
import org.gradle.api.model.ObjectFactory
import org.gradle.api.provider.MapProperty
Expand Down Expand Up @@ -219,7 +219,7 @@ constructor(final override val objectFactory: ObjectFactory) : ResourceTransform
.joinToString(separator = "\n * ", prefix = "\n * ")
}
.joinToString(separator = "\n * ", prefix = "\n * ")
throw GradleException(message)
gradleError(message)
}

propertiesEntries.forEach { (path, props) ->
Expand Down