Skip to content

Commit

Permalink
Merge pull request #362 from nebula-plugins/deprecation-logger-util
Browse files Browse the repository at this point in the history
Deprecation logger util for Gradle 6.2+ compatibility
  • Loading branch information
rpalcolea committed Jan 28, 2020
2 parents 483f8d0 + 590b254 commit f84d4eb
Show file tree
Hide file tree
Showing 8 changed files with 49 additions and 15 deletions.
4 changes: 2 additions & 2 deletions src/main/groovy/com/netflix/gradle/plugins/deb/Deb.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@ package com.netflix.gradle.plugins.deb
import com.netflix.gradle.plugins.packaging.AbstractPackagingCopyAction
import com.netflix.gradle.plugins.packaging.Dependency
import com.netflix.gradle.plugins.packaging.SystemPackagingTask
import com.netflix.gradle.plugins.utils.DeprecationLoggerUtils
import org.gradle.api.internal.ConventionMapping
import org.gradle.api.internal.IConventionAware
import org.gradle.api.tasks.CacheableTask
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.Optional
import org.gradle.api.tasks.OutputFile
import org.gradle.util.DeprecationLogger

@CacheableTask
class Deb extends SystemPackagingTask {
Expand All @@ -37,7 +37,7 @@ class Deb extends SystemPackagingTask {
@Override
String assembleArchiveName() {
String name = getPackageName();
DeprecationLogger.whileDisabled {
DeprecationLoggerUtils.whileDisabled {
name += getVersion() ? "_${getVersion()}" : ''
name += getRelease() ? "-${getRelease()}" : ''
name += getArchString() ? "_${getArchString()}" : ''
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@ import com.netflix.gradle.plugins.packaging.Dependency
import com.netflix.gradle.plugins.packaging.Directory
import com.netflix.gradle.plugins.packaging.Link
import com.netflix.gradle.plugins.utils.ApacheCommonsFileSystemActions
import com.netflix.gradle.plugins.utils.DeprecationLoggerUtils
import groovy.transform.Canonical
import org.apache.commons.lang3.StringUtils
import org.apache.commons.lang3.time.DateFormatUtils
import org.gradle.api.GradleException
import org.gradle.api.internal.file.copy.CopyAction
import org.gradle.api.internal.file.copy.FileCopyDetailsInternal
import org.gradle.util.DeprecationLogger
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.vafer.jdeb.Compression
Expand Down Expand Up @@ -303,7 +303,7 @@ class DebCopyAction extends AbstractPackagingCopyAction<Deb> {
*/
def Map toContext() {
Map context = [:]
DeprecationLogger.whileDisabled {
DeprecationLoggerUtils.whileDisabled {
context = [
name: task.getPackageName(),
version: task.getVersion(),
Expand Down Expand Up @@ -342,7 +342,7 @@ class DebCopyAction extends AbstractPackagingCopyAction<Deb> {
private String buildFullVersion() {
StringBuilder fullVersion = new StringBuilder()

DeprecationLogger.whileDisabled {
DeprecationLoggerUtils.whileDisabled {
if (task.getEpoch() != 0) {
fullVersion <<= task.getEpoch()
fullVersion <<= ':'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@ package com.netflix.gradle.plugins.deb.validation
import com.netflix.gradle.plugins.deb.Deb
import com.netflix.gradle.plugins.packaging.validation.SystemPackagingAttributeValidator
import com.netflix.gradle.plugins.packaging.validation.SystemPackagingTaskPropertiesValidator
import com.netflix.gradle.plugins.utils.DeprecationLoggerUtils
import org.gradle.api.InvalidUserDataException
import org.gradle.util.DeprecationLogger

class DebTaskPropertiesValidator implements SystemPackagingTaskPropertiesValidator<Deb> {
private final SystemPackagingAttributeValidator versionValidator = new DebVersionAttributeValidator()
private final SystemPackagingAttributeValidator packageNameValidator = new DebPackageNameAttributeValidator()

@Override
void validate(Deb task) {
DeprecationLogger.whileDisabled {
DeprecationLoggerUtils.whileDisabled {
if(task.getVersion() != 'unspecified' && !versionValidator.validate(task.getVersion())) {
throw new InvalidUserDataException(versionValidator.getErrorMessage(task.getVersion()))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.Optional
import org.gradle.api.tasks.PathSensitive
import org.gradle.api.tasks.PathSensitivity
import org.gradle.util.DeprecationLogger
import org.redline_rpm.header.Architecture
import org.redline_rpm.header.Os
import org.redline_rpm.header.RpmType
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

package com.netflix.gradle.plugins.packaging

import com.netflix.gradle.plugins.utils.DeprecationLoggerUtils
import groovy.transform.CompileDynamic
import org.gradle.api.file.DuplicatesStrategy
import org.gradle.api.file.FileCollection
Expand All @@ -26,7 +27,6 @@ import org.gradle.api.model.ObjectFactory
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.*
import org.gradle.api.tasks.bundling.AbstractArchiveTask
import org.gradle.util.DeprecationLogger
import org.redline_rpm.header.Architecture
import org.gradle.api.provider.Property

Expand Down Expand Up @@ -76,7 +76,7 @@ abstract class SystemPackagingTask extends AbstractArchiveTask {
// to pull from the parentExten. And only then would we fallback on some other value.
ConventionMapping mapping = ((IConventionAware) this).getConventionMapping()

DeprecationLogger.whileDisabled {
DeprecationLoggerUtils.whileDisabled {


// Could come from extension
Expand Down Expand Up @@ -122,6 +122,7 @@ abstract class SystemPackagingTask extends AbstractArchiveTask {
mapping.map('archiveName', { assembleArchiveName() })
mapping.map('archivePath', { determineArchivePath() })
mapping.map('archiveFile', { determineArchiveFile() })
mapping.map('archiveVersion', { determineArchiveVersion() })
}
}

Expand All @@ -137,6 +138,13 @@ abstract class SystemPackagingTask extends AbstractArchiveTask {
return regularFile
}

Provider<String> determineArchiveVersion() {
String version = sanitizeVersion(parentExten?.getVersion() ?: project.getVersion().toString())
Property<String> archiveVersion = objectFactory.property(String)
archiveVersion.set(version)
return archiveVersion
}

File determineArchivePath() {
return determineArchiveFile().get().asFile
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/groovy/com/netflix/gradle/plugins/rpm/Rpm.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ package com.netflix.gradle.plugins.rpm

import com.netflix.gradle.plugins.packaging.AbstractPackagingCopyAction
import com.netflix.gradle.plugins.packaging.SystemPackagingTask
import com.netflix.gradle.plugins.utils.DeprecationLoggerUtils
import org.gradle.api.tasks.CacheableTask
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.Optional
import org.gradle.api.tasks.PathSensitive
import org.gradle.api.tasks.PathSensitivity
import org.gradle.util.DeprecationLogger
import org.redline_rpm.header.Architecture
import org.redline_rpm.header.Os
import org.redline_rpm.header.RpmType
Expand All @@ -43,7 +43,7 @@ class Rpm extends SystemPackagingTask {
@Override
String assembleArchiveName() {
String name = getPackageName();
DeprecationLogger.whileDisabled {
DeprecationLoggerUtils.whileDisabled {
name += getVersion() ? "-${getVersion()}" : ''
name += getRelease() ? "-${getRelease()}" : ''
name += getArchString() ? ".${getArchString()}" : ''
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ import com.netflix.gradle.plugins.packaging.Dependency
import com.netflix.gradle.plugins.packaging.Directory
import com.netflix.gradle.plugins.packaging.Link
import com.netflix.gradle.plugins.rpm.validation.RpmTaskPropertiesValidator
import com.netflix.gradle.plugins.utils.DeprecationLoggerUtils
import groovy.transform.CompileDynamic
import org.apache.commons.lang3.StringUtils
import org.gradle.api.internal.file.copy.CopyAction
import org.gradle.api.internal.file.copy.FileCopyDetailsInternal
import org.gradle.util.DeprecationLogger
import org.redline_rpm.Builder
import org.redline_rpm.header.Architecture
import org.redline_rpm.header.Header.HeaderTag
Expand Down Expand Up @@ -54,7 +54,7 @@ class RpmCopyAction extends AbstractPackagingCopyAction<Rpm> {
@Override
void startVisit(CopyAction action) {
super.startVisit(action)
DeprecationLogger.whileDisabled {
DeprecationLoggerUtils.whileDisabled {

assert task.getVersion() != null, 'RPM requires a version string'
if ([task.preInstallFile, task.postInstallFile, task.preUninstallFile, task.postUninstallFile].any()) {
Expand Down Expand Up @@ -217,7 +217,7 @@ class RpmCopyAction extends AbstractPackagingCopyAction<Rpm> {

String standardScriptDefines() {
String result
DeprecationLogger.whileDisabled {
DeprecationLoggerUtils.whileDisabled {
result = includeStandardDefines ?
String.format(" RPM_ARCH=%s \n RPM_OS=%s \n RPM_PACKAGE_NAME=%s \n RPM_PACKAGE_VERSION=%s \n RPM_PACKAGE_RELEASE=%s \n\n",
task.getArchString(),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.netflix.gradle.plugins.utils

import groovy.transform.CompileDynamic
import org.gradle.api.GradleException
import org.gradle.util.GradleVersion

import java.lang.reflect.InvocationTargetException

@CompileDynamic
class DeprecationLoggerUtils {

private static final String LEGACY_DEPRECATION_LOGGER_CLASS = 'org.gradle.util.DeprecationLogger'

private static final String DEPRECATION_LOGGER_CLASS = 'org.gradle.internal.deprecation.DeprecationLogger'

static void whileDisabled(Runnable action) {
String gradleDeprecationLoggerClassName = (GradleVersion.current() >= GradleVersion.version('6.2') || GradleVersion.current().version.startsWith('6.2')) ? DEPRECATION_LOGGER_CLASS : LEGACY_DEPRECATION_LOGGER_CLASS
try {
Class clazz = Class.forName(gradleDeprecationLoggerClassName)
clazz.getMethod("whileDisabled", Runnable).invoke(this, action)
} catch(ClassNotFoundException e) {
throw new GradleException("Could not execute whileDisabled runnable action for $gradleDeprecationLoggerClassName | $e.message", e)
} catch(InvocationTargetException e) {
throw e.targetException
}
}
}

0 comments on commit f84d4eb

Please sign in to comment.