Skip to content

Commit cf69a51

Browse files
committed
Use ArchiveOperations when avalible
1 parent c332551 commit cf69a51

File tree

3 files changed

+28
-5
lines changed

3 files changed

+28
-5
lines changed

build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ java {
2727
//withJavadocJar()
2828
}
2929

30+
/*
3031
configurations {
3132
// Applies the "Gradle Plugin API Version" attribute to configuration
3233
// This was added in Gradle 7, gives consumers useful errors if they are on an old version
@@ -38,6 +39,7 @@ configurations {
3839
3940
named('runtimeElements', applyGradleVersionAttribute)
4041
}
42+
*/
4143

4244
dependencies {
4345
// Static Analysis

settings.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ dependencyResolutionManagement {
99
repositories {
1010
//mavenLocal()
1111
mavenCentral()
12-
maven { url = 'https://maven.moddinglegacy.com' } // Gradle API
12+
maven { url = 'https://maven.minecraftforge.net' } // Gradle API
1313
}
1414

1515
versionCatalogs.register('libs') {
@@ -25,7 +25,7 @@ dependencyResolutionManagement {
2525
// Gradle API
2626
// Original: https://github.com/remal-gradle-api/packages/packages/760197?version=7.0.2
2727
// Mirror: https://repos.moddinglegacy.com/#/modding-legacy/name/remal/gradle-api/gradle-api/7.0.2
28-
version 'gradle', '4.3'
28+
version 'gradle', '6.6'// We want '4.3' but we need access to ArchiveOperations
2929
library 'gradle', 'name.remal.gradle-api', 'gradle-api' versionRef 'gradle'
3030
}
3131
}

src/main/java/net/minecraftforge/gradlejarsigner/SignTask.java

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,20 @@
2020
import java.util.Objects;
2121
import java.util.Set;
2222
import java.util.Map.Entry;
23+
import java.util.function.Function;
2324
import java.util.jar.JarOutputStream;
2425
import java.util.zip.ZipEntry;
2526
import java.util.zip.ZipFile;
2627

28+
import javax.inject.Inject;
29+
2730
import org.codehaus.groovy.runtime.InvokerHelper;
2831
import org.gradle.api.Task;
2932
import org.gradle.api.file.RegularFile;
3033
import org.gradle.api.provider.Provider;
3134
import org.gradle.api.tasks.TaskInputs;
35+
import org.gradle.api.file.ArchiveOperations;
36+
import org.gradle.api.file.FileTree;
3237
import org.gradle.api.file.FileTreeElement;
3338
import org.gradle.api.file.FileVisitDetails;
3439
import org.gradle.api.file.FileVisitor;
@@ -39,6 +44,7 @@
3944
import org.gradle.api.tasks.bundling.Zip;
4045
import org.gradle.api.tasks.util.PatternFilterable;
4146
import org.gradle.api.tasks.util.PatternSet;
47+
import org.gradle.util.GradleVersion;
4248

4349
import groovy.lang.Closure;
4450
import groovy.util.MapEntry;
@@ -59,6 +65,7 @@ public class SignTask implements PatternFilterable {
5965
private final Property<String> providerClass;
6066
private final Property<String> providerArg;
6167
private final PatternSet patternSet = new PatternSet();
68+
private final Function<Object, FileTree> zipTree;
6269

6370
@SuppressWarnings("serial")
6471
SignTask(GradleJarSignerExtension ext, Zip parent, Closure<SignTask> config) {
@@ -68,6 +75,11 @@ public class SignTask implements PatternFilterable {
6875
if (this.config != null)
6976
this.config.setDelegate(this);
7077

78+
if (GradleVersion.current().compareTo(GradleVersion.version("6.6")) >= 0)
79+
zipTree = this.parent.getProject().getObjects().newInstance(ArchiveOperationsAccess.class);
80+
else
81+
zipTree = this.parent.getProject()::zipTree;
82+
7183
ObjectFactory objs = this.parent.getProject().getObjects();
7284

7385
this.alias = objs.property(String.class);
@@ -94,6 +106,15 @@ public Object doCall() {
94106
this.parent.doLast(this::signSafe);
95107
}
96108

109+
public static abstract class ArchiveOperationsAccess implements Function<Object, FileTree> {
110+
@Inject public abstract ArchiveOperations getArchiveOperations();
111+
112+
@Override
113+
public FileTree apply(Object t) {
114+
return getArchiveOperations().zipTree(t);
115+
}
116+
}
117+
97118
private Object addProperties() {
98119
TaskInputs in = this.parent.getInputs();
99120
if (!patternSet.isEmpty()) {
@@ -133,7 +154,7 @@ private boolean hasEnoughInfo() {
133154
(this.keyStoreData.isPresent() || this.keyStoreFile.isPresent());
134155
}
135156

136-
@SuppressWarnings("unchecked")
157+
@SuppressWarnings({ "unchecked", "deprecation" })
137158
private static File getTaskArchiveFile(Zip task) {
138159
try {
139160
// Try getting the new thing first, to avoid potential deprecation methods
@@ -205,7 +226,7 @@ private <T extends Task> void sign(T task) throws IOException {
205226
map.put("providerarg", this.providerArg.get());
206227

207228
try {
208-
this.parent.getProject().getAnt().invokeMethod("signjar", map);
229+
this.parent.getAnt().invokeMethod("signjar", map);
209230
} finally {
210231
if (!this.keyStoreFile.isPresent())
211232
keyStore.delete();
@@ -220,7 +241,7 @@ private void processInputJar(File input, File output, final Map<String, Entry<by
220241

221242
output.getParentFile().mkdirs();
222243
try (JarOutputStream outs = new JarOutputStream(new BufferedOutputStream(new FileOutputStream(output)))){
223-
this.parent.getProject().zipTree(input).visit(new FileVisitor() {
244+
this.zipTree.apply(input).visit(new FileVisitor() {
224245
@Override
225246
public void visitDir(FileVisitDetails details) {
226247
try {

0 commit comments

Comments
 (0)