Skip to content

Commit 560b0f5

Browse files
committed
Update gradle deps and switch to a maintained version of javapoet
1 parent eef90c7 commit 560b0f5

14 files changed

+84
-84
lines changed

annotation-processor/build.gradle

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ plugins {
22
id 'java'
33
}
44

5-
group 'mekanism.annotation-processor'
6-
version '2.0.0'
5+
group = 'mekanism.annotation-processor'
6+
version = '2.0.0'
77
java.toolchain.languageVersion = JavaLanguageVersion.of("${java_version}")
88

99
repositories {
@@ -24,5 +24,5 @@ dependencies {
2424
implementation('org.openzen.zencode:JavaAnnotations:0.3.8')
2525
//Version of GSON used by vanilla (and thus packed and already downloaded)
2626
implementation('com.google.code.gson:gson:2.10.1')
27-
implementation('com.squareup:javapoet:1.13.0')
27+
implementation('com.palantir.javapoet:javapoet:0.6.0')
2828
}

annotation-processor/src/main/java/mekanism/ComputerMethodProcessor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package mekanism;
22

3-
import com.squareup.javapoet.JavaFile;
3+
import com.palantir.javapoet.JavaFile;
44
import java.io.IOException;
55
import java.util.ArrayList;
66
import java.util.HashMap;

annotation-processor/src/main/java/mekanism/MekAnnotationProcessors.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package mekanism;
22

3-
import com.squareup.javapoet.ClassName;
3+
import com.palantir.javapoet.ClassName;
44

55
public class MekAnnotationProcessors {
66

annotation-processor/src/main/java/mekanism/MethodFactoryProcessor.java

+9-7
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package mekanism;
22

3-
import com.squareup.javapoet.ClassName;
4-
import com.squareup.javapoet.CodeBlock;
5-
import com.squareup.javapoet.JavaFile;
6-
import com.squareup.javapoet.MethodSpec;
7-
import com.squareup.javapoet.TypeSpec;
3+
import com.palantir.javapoet.ClassName;
4+
import com.palantir.javapoet.CodeBlock;
5+
import com.palantir.javapoet.JavaFile;
6+
import com.palantir.javapoet.MethodSpec;
7+
import com.palantir.javapoet.TypeSpec;
88
import java.io.IOException;
99
import java.io.Writer;
1010
import java.util.ArrayList;
@@ -56,6 +56,7 @@ public boolean process(Set<? extends TypeElement> annotatedTypes, RoundEnvironme
5656
TypeSpec.Builder registryType = TypeSpec.classBuilder("ComputerMethodRegistry_" + mekModule)
5757
.addModifiers(Modifier.PUBLIC)
5858
.addSuperinterface(methodRegistryInterface);
59+
boolean hasOriginatingElements = false;
5960

6061
//this should only ever be 1 annotation
6162
for (Element element : roundEnvironment.getElementsAnnotatedWithAny(annotatedTypes.toArray(new TypeElement[0]))) {
@@ -73,12 +74,13 @@ public boolean process(Set<? extends TypeElement> annotatedTypes, RoundEnvironme
7374
continue;
7475
}
7576
registryType.addOriginatingElement(factoryTypeEl);
77+
hasOriginatingElements = true;
7678
AnnotationHelper helper = new AnnotationHelper(processingEnv.getElementUtils(), annotationMirror);
7779
addHandlerToRegistry((TypeElement) typeUtils().asElement(helper.getClassValue("target")), ClassName.get(factoryTypeEl));
7880
}
7981
}
8082

81-
if (!registryType.originatingElements.isEmpty()) {
83+
if (hasOriginatingElements) {
8284
registryType.addMethod(registryInit.build());
8385
TypeSpec registrySpec = registryType.build();
8486
String packageName = "mekanism.generated." + mekModule;
@@ -88,7 +90,7 @@ public boolean process(Set<? extends TypeElement> annotatedTypes, RoundEnvironme
8890
throw new RuntimeException(e);
8991
}
9092
try (Writer serviceWriter = processingEnv.getFiler().createResource(StandardLocation.CLASS_OUTPUT, "", "META-INF/services/" + methodRegistryInterface.canonicalName()).openWriter()) {
91-
serviceWriter.write(packageName + "." + registrySpec.name);
93+
serviceWriter.write(packageName + "." + registrySpec.name());
9294
} catch (IOException e) {
9395
throw new RuntimeException(e);
9496
}

annotation-processor/src/main/java/mekanism/builder/ComputerHandlerBuilder.java

+11-11
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package mekanism.builder;
22

3-
import com.squareup.javapoet.AnnotationSpec;
4-
import com.squareup.javapoet.ClassName;
5-
import com.squareup.javapoet.CodeBlock;
6-
import com.squareup.javapoet.FieldSpec;
7-
import com.squareup.javapoet.JavaFile;
8-
import com.squareup.javapoet.MethodSpec;
9-
import com.squareup.javapoet.ParameterSpec;
10-
import com.squareup.javapoet.ParameterizedTypeName;
11-
import com.squareup.javapoet.TypeName;
12-
import com.squareup.javapoet.TypeSpec;
3+
import com.palantir.javapoet.AnnotationSpec;
4+
import com.palantir.javapoet.ClassName;
5+
import com.palantir.javapoet.CodeBlock;
6+
import com.palantir.javapoet.FieldSpec;
7+
import com.palantir.javapoet.JavaFile;
8+
import com.palantir.javapoet.MethodSpec;
9+
import com.palantir.javapoet.ParameterSpec;
10+
import com.palantir.javapoet.ParameterizedTypeName;
11+
import com.palantir.javapoet.TypeName;
12+
import com.palantir.javapoet.TypeSpec;
1313
import java.lang.invoke.MethodHandle;
1414
import java.lang.invoke.WrongMethodTypeException;
1515
import java.util.ArrayList;
@@ -451,7 +451,7 @@ private MethodSpec getMethodProxy(String annotatedName, ExecutableElement execut
451451
.returns(returnType)
452452
.beginControlFlow("try")
453453
//invoke the method handle
454-
.addStatement("return ($T)$N.invokeExact($L)", returnType, methodHandleField, proxyParams.stream().map(param -> param.name).collect(Collectors.joining(", ")))
454+
.addStatement("return ($T)$N.invokeExact($L)", returnType, methodHandleField, proxyParams.stream().map(ParameterSpec::name).collect(Collectors.joining(", ")))
455455
//catch a failing method handle (throw as RuntimeException)
456456
.nextControlFlow("catch ($T wmte)", WrongMethodTypeException.class)
457457
.addStatement("throw new $T($S, wmte)", RuntimeException.class, "Method not bound correctly")

annotation-processor/src/main/java/mekanism/visitors/AnnotationHelper.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package mekanism.visitors;
22

3-
import com.squareup.javapoet.CodeBlock;
3+
import com.palantir.javapoet.CodeBlock;
44
import java.util.ArrayList;
55
import java.util.HashMap;
66
import java.util.List;

annotation-processor/src/main/java/mekanism/visitors/AnnotationValueToLiteralVisitor.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package mekanism.visitors;
22

3-
import com.squareup.javapoet.ClassName;
4-
import com.squareup.javapoet.CodeBlock;
3+
import com.palantir.javapoet.ClassName;
4+
import com.palantir.javapoet.CodeBlock;
55
import java.util.List;
66
import javax.lang.model.element.AnnotationMirror;
77
import javax.lang.model.element.AnnotationValue;

annotation-processor/src/main/java/mekanism/visitors/ParamToHelperMapper.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package mekanism.visitors;
22

3-
import com.squareup.javapoet.ClassName;
4-
import com.squareup.javapoet.CodeBlock;
5-
import com.squareup.javapoet.ParameterSpec;
3+
import com.palantir.javapoet.ClassName;
4+
import com.palantir.javapoet.CodeBlock;
5+
import com.palantir.javapoet.ParameterSpec;
66
import javax.lang.model.element.ElementKind;
77
import javax.lang.model.element.TypeElement;
88
import javax.lang.model.type.DeclaredType;

build.gradle

+47-48
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import java.util.function.Consumer
1414

1515
plugins {
1616
id('org.ajoberstar.grgit.service')//Version declared in buildSrc
17-
id('net.darkhax.curseforgegradle') version('1.1.25')
17+
id('net.darkhax.curseforgegradle') version('1.1.26')
1818
id('com.modrinth.minotaur') version('2.8.7')
1919
id('java')
2020
id('eclipse')
@@ -23,9 +23,9 @@ plugins {
2323
id('net.neoforged.gradle.userdev') version('7.0.154')//https://projects.neoforged.net/neoforged/neogradle
2424
}
2525

26-
tasks.named('wrapper', Wrapper).configure {
26+
tasks.named('wrapper', Wrapper) {
2727
//Define wrapper values here so as to not have to always do so when updating gradlew.properties
28-
gradleVersion = '8.10'
28+
gradleVersion = '8.12'
2929
distributionType = Wrapper.DistributionType.ALL
3030
}
3131

@@ -184,43 +184,42 @@ for (String name : secondaryModules) {
184184
}
185185

186186
def setupTasks(SourceSet sourceSet) {
187-
def compileTask = tasks.named(sourceSet.compileJavaTaskName, JavaCompile)
187+
def compileTask = tasks.named(sourceSet.compileJavaTaskName, JavaCompile) {
188+
//Configure specific compile tasks to have the proper annotation processor info
189+
setGroup('compile')
190+
options.annotationProcessorPath = configurations.annotationProcessor
191+
options.compilerArgs.addAll([
192+
"-AmekanismModule=mekanism${sourceSet == sourceSets.main ? '' : sourceSet.name}",//annotation processor param
193+
'-parameters'
194+
])
195+
}
188196
//Set the various variables/settings for the different process resources tasks
189-
tasks.named(sourceSet.processResourcesTaskName, ProcessResources).configure { ProcessResources process ->
190-
process.setGroup('process resources')
191-
process.duplicatesStrategy(DuplicatesStrategy.FAIL)
197+
tasks.named(sourceSet.processResourcesTaskName, ProcessResources) {
198+
setGroup('process resources')
199+
duplicatesStrategy = DuplicatesStrategy.FAIL
192200
var versionProperties = ['version': mod_version, 'mc_version': minecraft_version_range, 'forge_version': forge_version_range, 'loader_version': loader_version_range,
193201
'jei_version': jei_version_range]
194202
//Mark the properties as inputs so that when they change things update
195-
process.inputs.properties(versionProperties)
196-
process.filesMatching('META-INF/neoforge.mods.toml') { expand(versionProperties) }
197-
process.from("${projectDir}") { include('logo.png') }
203+
inputs.properties(versionProperties)
204+
filesMatching('META-INF/neoforge.mods.toml') { expand(versionProperties) }
205+
from("${projectDir}") { include('logo.png') }
198206
//Depend on the compile task so that we can map the computer methods as needed
199-
process.dependsOn(compileTask)
207+
dependsOn(compileTask)
200208
def files = fileTree(dir: outputs.files.asPath, includes: ['**/*.json', '**/*.mcmeta'])
201-
process.doLast {
209+
doLast {
202210
for (def file : files) {
203211
file.text = JsonOutput.toJson(new JsonSlurper().parse(file))
204212
}
205213
}
206214
}
207-
tasks.named(sourceSet.compileJavaTaskName, JavaCompile).configure { setGroup('compile') }
215+
tasks.named(sourceSet.compileJavaTaskName, JavaCompile) { setGroup('compile') }
208216
for (String extraType : extraTypes) {
209217
def extraSourceSet = getExtraSourceSet(sourceSet, extraType).get()
210-
tasks.named(extraSourceSet.processResourcesTaskName, ProcessResources).configure {
218+
tasks.named(extraSourceSet.processResourcesTaskName, ProcessResources) {
211219
setGroup('process resources')
212220
dependsOn(compileTask)
213221
}
214-
tasks.named(extraSourceSet.compileJavaTaskName, JavaCompile).configure { setGroup('compile') }
215-
}
216-
//Configure specific compile tasks to have the proper annotation processor info
217-
compileTask.configure { JavaCompile task ->
218-
setGroup('compile')
219-
task.options.annotationProcessorPath = configurations.annotationProcessor
220-
task.options.compilerArgs.addAll([
221-
"-AmekanismModule=mekanism${sourceSet == sourceSets.main ? '' : sourceSet.name}",//annotation processor param
222-
'-parameters'
223-
])
222+
tasks.named(extraSourceSet.compileJavaTaskName, JavaCompile) { setGroup('compile') }
224223
}
225224
}
226225

@@ -342,9 +341,9 @@ repositories { RepositoryHandler handler ->
342341
exclusiveRepo(handler, 'https://maven.parchmentmc.org/', 'org.parchmentmc.data')
343342
}
344343

345-
tasks.named('test').configure {
344+
tasks.named('test') {
346345
//Disable builtin test task as we use and build uses testJunit so there is no point in having it also attempt to run an empty test task
347-
enabled(false)
346+
enabled = false
348347
}
349348

350349
dependencies {
@@ -438,39 +437,39 @@ def getManifestAttributes(String title) {
438437
]
439438
}
440439

441-
tasks.named('jar', Jar).configure { Jar jar ->
442-
jar.duplicatesStrategy(DuplicatesStrategy.FAIL)
443-
jar.from([sourceSets.api.output, sourceSets.main.output])
444-
jar.exclude('crafttweaker_parameter_names.json')
445-
jar.manifest.attributes(getManifestAttributes('Mekanism'))
440+
tasks.named('jar', Jar) {
441+
duplicatesStrategy = DuplicatesStrategy.FAIL
442+
from([sourceSets.api.output, sourceSets.main.output])
443+
exclude('crafttweaker_parameter_names.json')
444+
manifest.attributes(getManifestAttributes('Mekanism'))
446445
}
447446

448-
tasks.named('sourcesJar', Jar).configure { Jar jar ->
447+
tasks.named('sourcesJar', Jar) {
449448
dependsOn(classes, apiClasses, additionsClasses, generatorsClasses, toolsClasses)
450-
jar.duplicatesStrategy(DuplicatesStrategy.FAIL)
449+
duplicatesStrategy = DuplicatesStrategy.FAIL
451450
//Note: Already contains main source set's sources by default
452-
jar.from(sourceSets.api.allJava, sourceSets.additions.allJava, sourceSets.generators.allJava, sourceSets.tools.allJava)
453-
jar.manifest.attributes(getManifestAttributes('Mekanism'))
451+
from(sourceSets.api.allJava, sourceSets.additions.allJava, sourceSets.generators.allJava, sourceSets.tools.allJava)
452+
manifest.attributes(getManifestAttributes('Mekanism'))
454453
}
455454

456455
def secondaryJar(SourceSet sourceSet, String title) {
457-
return tasks.register(sourceSet.jarTaskName, Jar, {
458-
duplicatesStrategy(DuplicatesStrategy.FAIL)
456+
return tasks.register(sourceSet.jarTaskName, Jar) {
457+
duplicatesStrategy = DuplicatesStrategy.FAIL
459458
archiveClassifier.set(sourceSet.name)
460459
from(sourceSet.output)
461460
if (!title.isEmpty()) {
462461
archiveFileName.set("${title}-${project.version}.jar")
463462
}
464463
manifest.attributes(getManifestAttributes(title.isEmpty() ? 'Mekanism' : title))
465-
})
464+
}
466465
}
467466

468467
def apiJar = secondaryJar(sourceSets.api, '')
469468
def additionsJar = secondaryJar(sourceSets.additions, 'MekanismAdditions')
470469
def generatorsJar = secondaryJar(sourceSets.generators, 'MekanismGenerators')
471470
def toolsJar = secondaryJar(sourceSets.tools, 'MekanismTools')
472471

473-
def mergeModuleResources = tasks.register('mergeModuleResources', MergeModuleResources, {
472+
def mergeModuleResources = tasks.register('mergeModuleResources', MergeModuleResources) {
474473
dependsOn('classes', 'apiClasses', 'additionsClasses', 'generatorsClasses', 'toolsClasses')
475474
mustRunAfter('clean')
476475
//Note: Get the resources from the output of process resources, so that any expands that need to happen we know have already happened
@@ -485,11 +484,11 @@ def mergeModuleResources = tasks.register('mergeModuleResources', MergeModuleRes
485484
}
486485
//Only look at generated service files as a restriction for our input
487486
annotationGenerated = annotationGenerated.asFileTree.matching(serviceFilter)
488-
})
487+
}
489488

490-
def allJar = tasks.register('allJar', AllJar, {
489+
def allJar = tasks.register('allJar', AllJar) {
491490
dependsOn(mergeModuleResources)
492-
duplicatesStrategy(DuplicatesStrategy.FAIL)
491+
duplicatesStrategy = DuplicatesStrategy.FAIL
493492
archiveClassifier.set('all')
494493
manifest.attributes(getManifestAttributes('MekanismAll'))
495494
pathsToExclude.set(mergeModuleResources.flatMap(m -> m.pathsToExclude))
@@ -498,7 +497,7 @@ def allJar = tasks.register('allJar', AllJar, {
498497
for (String name : secondaryModules) {
499498
secondaryModuleOutputs += sourceSets.named(name).get().output
500499
}
501-
})
500+
}
502501

503502
tasks.withType(JavaCompile).configureEach({
504503
options.encoding = 'UTF-8'
@@ -603,7 +602,7 @@ outputChangelog.configure { OutputChangelog out ->
603602

604603
if (System.getenv('CURSEFORGE_KEY') != null || project.hasProperty('curseforgeKey')) {
605604
logger.lifecycle('Enabling Curseforge config')
606-
tasks.register('curseforge', TaskPublishCurseForge, { task ->
605+
tasks.register('curseforge', TaskPublishCurseForge) { task ->
607606
dependsOn(outputChangelog)
608607
setGroup('publishing')
609608
setDescription('Upload Mekanism to CurseForge')
@@ -655,7 +654,7 @@ if (System.getenv('CURSEFORGE_KEY') != null || project.hasProperty('curseforgeKe
655654
logger.quiet('https://www.curseforge.com/minecraft/mc-mods/mekanism-generators/files/{}', (Object) generatorsCfUpload.curseFileId)
656655
logger.quiet('https://www.curseforge.com/minecraft/mc-mods/mekanism-tools/files/{}', (Object) toolsCfUpload.curseFileId)
657656
}
658-
})
657+
}
659658
}
660659

661660
void setGenericCurseArtifactData(UploadArtifact artifact, Provider<RegularFile> changelog) {
@@ -679,7 +678,7 @@ if (System.getenv('MODRINTH_TOKEN') != null || project.hasProperty('modrinthToke
679678
def additionsModrinth = createSecondaryModrinthUpload('additions', 'a6F3uASn', additionsJar)
680679
def generatorsModrinth = createSecondaryModrinthUpload('generators', 'OFVYKsAk', generatorsJar)
681680
def toolsModrinth = createSecondaryModrinthUpload('tools', 'tqQpq1lt', toolsJar)
682-
tasks.named('modrinth').configure {
681+
tasks.named('modrinth') {
683682
dependsOn(jar, apiJar, outputChangelog)
684683
finalizedBy(additionsModrinth, generatorsModrinth, toolsModrinth)
685684
notCompatibleWithConfigurationCache('Not yet compatible')//TODO: Remove when possible
@@ -725,7 +724,7 @@ if (System.getenv('MODRINTH_TOKEN') != null || project.hasProperty('modrinthToke
725724
}
726725

727726
def createSecondaryModrinthUpload(String output, String targetProjectId, TaskProvider<Jar> sourceSetJar) {
728-
return tasks.register("${output}Modrinth", TaskModrinthUpload, {
727+
return tasks.register("${output}Modrinth", TaskModrinthUpload) {
729728
setGroup('publishing')
730729
setDescription("Upload Mekanism ${output} to Modrinth")
731730
dependsOn(tasks.named('modrinth'), sourceSetJar)
@@ -747,5 +746,5 @@ def createSecondaryModrinthUpload(String output, String targetProjectId, TaskPro
747746
}
748747
logger.lifecycle('Updated Modrinth extension')
749748
}
750-
})
749+
}
751750
}

buildSrc/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ repositories {
33
}
44

55
dependencies {
6-
implementation('org.ajoberstar.grgit:grgit-gradle:5.2.2')
6+
implementation('org.ajoberstar.grgit:grgit-gradle:5.3.0')
77
}

gradle.properties

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ junit_version=5.11.0
2424
jqwik_version=1.9.0
2525

2626
#NeoGradle Settings
27-
neogradle.subsystems.parchment.minecraftVersion=1.21
28-
neogradle.subsystems.parchment.mappingsVersion=2024.07.28
27+
neogradle.subsystems.parchment.minecraftVersion=1.21.1
28+
neogradle.subsystems.parchment.mappingsVersion=2024.11.17
2929
neogradle.subsystems.conventions.sourcesets.enabled=false
3030

3131
#misc settings

gradle/wrapper/gradle-wrapper.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-all.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

0 commit comments

Comments
 (0)