Skip to content

Commit 937b326

Browse files
committed
feat!: merge composite event additions
Merges #2495 Signed-off-by: Gabriel Harris-Rouquette <[email protected]>
2 parents 0557374 + a9b2770 commit 937b326

File tree

89 files changed

+493
-592
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+493
-592
lines changed

.checkstyle/checkstyle-suppressions.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@
1717
<suppress checks="MethodTypeParameterName"/>
1818
<suppress checks="CommentsIndentation"/>
1919
<suppress checks="InterfaceTypeParameterName"/>
20+
<suppress files="[\\/]generated[\\/]" checks="[a-zA-Z0-9]*"/>
2021
</suppressions>

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ MANIFEST.MF
44
dependency-reduced-pom.xml
55
.checkstyle
66
!.checkstyle/
7+
# We exclude the generated events from git to avoid
8+
# temptation to edit said generated files.
9+
src/generated/
10+
src/main/generated/
711

812
# Compiled #
913
############

build.gradle.kts

Lines changed: 49 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
11
import net.ltgt.gradle.errorprone.errorprone
22
import org.jetbrains.gradle.ext.delegateActions
33
import org.jetbrains.gradle.ext.settings
4-
import org.jetbrains.gradle.ext.taskTriggers
54

6-
buildscript {
7-
dependencies {
8-
classpath(libs.spoon) // bump for EIG
9-
}
10-
}
115

126
plugins {
137
eclipse
@@ -16,12 +10,14 @@ plugins {
1610
alias(libs.plugins.indra.crossdoc)
1711
alias(libs.plugins.indra.publishing)
1812
alias(libs.plugins.indra.publishing.sonatype)
19-
alias(libs.plugins.eventImplGen)
2013
alias(libs.plugins.ideaExt)
2114
alias(libs.plugins.errorprone)
2215
alias(libs.plugins.nexusPublish)
2316
}
2417

18+
// Enable event generation to be considered part of
19+
// the main source set
20+
val generatedEventSourcesDir = project.file("src/main/generated")
2521
val javaTarget: String by project
2622
val ap by sourceSets.registering {
2723
compileClasspath += sourceSets.main.get().compileClasspath + sourceSets.main.get().output
@@ -34,12 +30,32 @@ configurations {
3430
}
3531
}
3632
}
33+
tasks {
34+
register("printSourceDirs") {
35+
doLast {
36+
sourceSets.forEach { set ->
37+
println("SourceSet: ${set.name}")
38+
println("Java Source Dirs: ${set.java.srcDirs}" )
39+
}
40+
}
41+
}
42+
}
43+
44+
sourceSets {
45+
main {
46+
java {
47+
srcDirs(generatedEventSourcesDir)
48+
}
49+
}
50+
}
3751

3852
// Project dependencies
3953
dependencies {
4054
// Directly tied to what's available from Minecraft
4155
api(libs.log4j.api)
4256
api(libs.gson)
57+
api(libs.eventImplGen.annotations)
58+
annotationProcessor(libs.eventImplGen.processor)
4359

4460
// Adventure
4561
api(platform(libs.adventure.bom))
@@ -130,27 +146,23 @@ dependencies {
130146
testImplementation(libs.mockito)
131147
}
132148

149+
spotless {
150+
java {
151+
target("src/main/java/**/*.java")
152+
targetExclude("src/main/generated/**/*.java")
153+
}
154+
}
155+
133156
tasks {
134-
genEventImpl {
135-
sourceCompatibility = "17" // TODO use javaTarget here
136-
destinationDirectory = project.layout.buildDirectory.dir("generated/event-factory")
137-
138-
outputFactory = "org.spongepowered.api.event.SpongeEventFactory"
139-
include("org/spongepowered/api/event/*/**/*")
140-
exclude("org/spongepowered/api/event/action/InteractEvent.java")
141-
exclude("org/spongepowered/api/event/cause/")
142-
exclude("org/spongepowered/api/event/entity/AffectEntityEvent.java")
143-
exclude("org/spongepowered/api/event/filter/")
144-
exclude("org/spongepowered/api/event/impl/")
145-
exclude("org/spongepowered/api/event/lifecycle/ProvideServiceEvent.java")
146-
exclude("org/spongepowered/api/event/lifecycle/RegisterBuilderEvent.java")
147-
exclude("org/spongepowered/api/event/lifecycle/RegisterRegistryEvent.java")
148-
exclude("org/spongepowered/api/event/lifecycle/RegisterRegistryValueEvent.java")
149-
exclude("org/spongepowered/api/event/lifecycle/RegisterCommandEvent.java")
150-
exclude("org/spongepowered/api/event/lifecycle/RegisterFactoryEvent.java")
151-
exclude("org/spongepowered/api/event/lifecycle/RegisterWorldEvent.java")
152-
inclusiveAnnotations = setOf("org.spongepowered.api.util.annotation.eventgen.GenerateFactoryMethod")
153-
exclusiveAnnotations = setOf("org.spongepowered.api.util.annotation.eventgen.NoFactoryMethod")
157+
158+
compileJava {
159+
options.generatedSourceOutputDirectory = generatedEventSourcesDir
160+
options.compilerArgs.addAll(listOf(
161+
"-AeventGenInclusiveFolders=org/spongepowered/api/event",
162+
"-AeventGenExclusiveFolders=org/spongepowered/api/event/cause,org/spongepowered/api/event/filter,org/spongepowered/api/event/impl,org/spongepowered/api/event/lifecycle",
163+
"-AeventGenFactory=org.spongepowered.api.event.SpongeEventFactory",
164+
"-AeventGenDebug=true",
165+
))
154166
}
155167

156168
jar {
@@ -166,6 +178,15 @@ tasks {
166178
indraGit.applyVcsInformationToManifest(this)
167179
}
168180
}
181+
checkstyleMain {
182+
dependsOn(compileJava)
183+
}
184+
spotlessJava {
185+
dependsOn(compileJava)
186+
}
187+
sourcesJar {
188+
dependsOn(compileJava)
189+
}
169190

170191
withType(JavaCompile::class).configureEach {
171192
options.apply {
@@ -215,15 +236,12 @@ idea {
215236
delegateBuildRunToGradle = false
216237
testRunner = org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.PLATFORM
217238
}
218-
taskTriggers {
219-
beforeBuild(tasks.genEventImpl)
220-
}
221239
}
222240
}
223241
}
224242

225243
eclipse {
226-
synchronizationTasks(tasks.genEventImpl)
244+
// synchronizationTasks(tasks.genEventImpl)
227245
}
228246

229247
val organization: String by project

gradle/libs.versions.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,14 @@ guice = { module = "com.google.inject:guice", version.ref = "guice" }
3737
log4j-api = { module = "org.apache.logging.log4j:log4j-api", version.ref = "log4j" }
3838
math = { module = "org.spongepowered:math", version.ref = "math" }
3939
pluginSpi = { module = "org.spongepowered:plugin-spi", version.ref = "pluginSpi" }
40+
eventImplGen-processor = {module = "org.spongepowered:event-impl-gen", version = "8.0.0"}
41+
eventImplGen-annotations = { module = "org.spongepowered:event-impl-gen-annotations", version = "8.0.0"}
4042

4143
# build-time/annotations
4244

4345
checkerQual = { module = "org.checkerframework:checker-qual", version.ref = "checker" }
4446
errorprone = { module = "com.google.errorprone:error_prone_core", version.ref = "errorprone" }
4547
errorprone-annotations = { module = "com.google.errorprone:error_prone_annotations", version.ref = "errorprone" }
46-
spoon = { module = "fr.inria.gforge.spoon:spoon-core", version = "10.4.2" } # bump for EIG
4748

4849
# testing
4950

gradle/verification-metadata.xml

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,30 @@
252252
<sha256 value="893d56afcea1b22f83220fd7e49a6668c5b8901e39bd59dc57b42f55673721ce" origin="Generated by Gradle"/>
253253
</artifact>
254254
</component>
255+
<component group="com.google.dagger" name="dagger" version="2.42">
256+
<artifact name="dagger-2.42.jar">
257+
<sha256 value="7ad8147fdb5dfb481b7cde8c70da73afbaa21430ce757fcd96709fcfb6a4d56b" origin="Generated by Gradle"/>
258+
</artifact>
259+
<artifact name="dagger-2.42.pom">
260+
<sha256 value="ca6529bd6d79090f0ab6f5da452eb4fbb29377b48e6a806e7612396dcb2998e0" origin="Generated by Gradle"/>
261+
</artifact>
262+
</component>
263+
<component group="com.google.dagger" name="dagger" version="2.52">
264+
<artifact name="dagger-2.52.jar">
265+
<sha256 value="dfb8e83020786daefbd64335ce0e0ebf01646a1b407fb77a27e052baf42df458" origin="Generated by Gradle"/>
266+
</artifact>
267+
<artifact name="dagger-2.52.pom">
268+
<sha256 value="5cb60843f46bbccf97bd832d5490d26ab192af2e663fad7e5971969bf20fb94e" origin="Generated by Gradle"/>
269+
</artifact>
270+
</component>
271+
<component group="com.google.dagger" name="dagger" version="2.54">
272+
<artifact name="dagger-2.54.jar">
273+
<sha256 value="7ab0d8278a532888de19025dc6ee70a80ecd4567778a6a7e7ec256a2073e40a3" origin="Generated by Gradle"/>
274+
</artifact>
275+
<artifact name="dagger-2.54.pom">
276+
<sha256 value="af43413fd91fc49532884ca32191ab31bec609c344d4939aece9d3efef699f81" origin="Generated by Gradle"/>
277+
</artifact>
278+
</component>
255279
<component group="com.google.errorprone" name="error_prone_annotation" version="2.24.1">
256280
<artifact name="error_prone_annotation-2.24.1.jar">
257281
<sha256 value="dc202da451680aa8cdda7c68d959f27c112dca8f8fdeaf7c597de73cb2b1a0a6" origin="Generated by Gradle"/>
@@ -549,6 +573,14 @@
549573
<sha256 value="9acf56a8579c05bedd819d99232363e2bf327e8f73c67598dbd9885a845a3c69" origin="Generated by Gradle"/>
550574
</artifact>
551575
</component>
576+
<component group="com.palantir.javapoet" name="javapoet" version="0.6.0">
577+
<artifact name="javapoet-0.6.0.jar">
578+
<sha256 value="1c8dd1cc4404b9eeb5c54fef8a1cf2be7a138a42783b9460fbae9caf85ed5b2f" origin="Generated by Gradle"/>
579+
</artifact>
580+
<artifact name="javapoet-0.6.0.pom">
581+
<sha256 value="f6e34a26ac09a3a68a91cc9235cb1f8c7736b07fe89db59a324acd8d57d9e797" origin="Generated by Gradle"/>
582+
</artifact>
583+
</component>
552584
<component group="com.puppycrawl.tools" name="checkstyle" version="10.12.7">
553585
<artifact name="checkstyle-10.12.7.jar">
554586
<sha256 value="767cc2393169f0abe4292e59c3b62317149f900a472cd6b01f74346f6bdae581" origin="Generated by Gradle"/>
@@ -557,6 +589,14 @@
557589
<sha256 value="f6ac2b6de9ed3823c8d68977df6352f3936af5db7baeb12303cdc9d3c4f46590" origin="Generated by Gradle"/>
558590
</artifact>
559591
</component>
592+
<component group="com.squareup" name="javapoet" version="1.13.0">
593+
<artifact name="javapoet-1.13.0.jar">
594+
<sha256 value="4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291" origin="Generated by Gradle"/>
595+
</artifact>
596+
<artifact name="javapoet-1.13.0.pom">
597+
<sha256 value="54a34fa8502a46bc90efdb49262600591fa80bf9a34f5a4c798311aec16ca977" origin="Generated by Gradle"/>
598+
</artifact>
599+
</component>
560600
<component group="com.squareup.okhttp3" name="okhttp" version="4.10.0">
561601
<artifact name="okhttp-4.10.0.jar">
562602
<sha256 value="7580f14fa1691206e37081ad3f92063b1603b328da0bb316f2fef02e0562e7ec" origin="Generated by Gradle"/>
@@ -728,6 +768,22 @@
728768
<sha256 value="5a65e06a159d20d3b4800624a570c646dbee710b2b539b3449a268558c289e9c" origin="Generated by Gradle"/>
729769
</artifact>
730770
</component>
771+
<component group="io.soabase.java-composer" name="java-composer" version="1.0">
772+
<artifact name="java-composer-1.0.jar">
773+
<sha256 value="d914e52079c41509cde32d8fa03b5a865d8a227867ed6fd5d8121639518d28a1" origin="Generated by Gradle"/>
774+
</artifact>
775+
<artifact name="java-composer-1.0.pom">
776+
<sha256 value="741a35966a3055c80c10631736c6cfec82d7b5e4212b3f72ded29f98935bbb5e" origin="Generated by Gradle"/>
777+
</artifact>
778+
</component>
779+
<component group="jakarta.inject" name="jakarta.inject-api" version="2.0.1">
780+
<artifact name="jakarta.inject-api-2.0.1.jar">
781+
<sha256 value="f7dc98062fccf14126abb751b64fab12c312566e8cbdc8483598bffcea93af7c" origin="Generated by Gradle"/>
782+
</artifact>
783+
<artifact name="jakarta.inject-api-2.0.1.pom">
784+
<sha256 value="e7fd7232e96307a575b2494c9367d68cf43ec98244aace3ccc23e1773ffa6fda" origin="Generated by Gradle"/>
785+
</artifact>
786+
</component>
731787
<component group="jakarta.platform" name="jakarta.jakartaee-bom" version="9.1.0">
732788
<artifact name="jakarta.jakartaee-bom-9.1.0.pom">
733789
<sha256 value="df98e0266219fdbb82562826d79a3a20776a8ba02aa787f0f0765a538654c8a4" origin="Generated by Gradle"/>
@@ -1492,6 +1548,9 @@
14921548
<artifact name="apiguardian-api-1.1.2.module">
14931549
<sha256 value="e08028131375b357d1d28734e9a4fb4216da84b240641cb3ef7e7c7d628223fc" origin="Generated by Gradle"/>
14941550
</artifact>
1551+
<artifact name="apiguardian-api-1.1.2.pom">
1552+
<sha256 value="32355081d109095c3d5d374d5a43b4f4c1b75d549e983ef50723e2772e5302a0" origin="Generated by Gradle"/>
1553+
</artifact>
14951554
</component>
14961555
<component group="org.checkerframework" name="checker-qual" version="2.10.0">
14971556
<artifact name="checker-qual-2.10.0.jar">
@@ -1505,6 +1564,9 @@
15051564
<artifact name="checker-qual-3.19.0.module">
15061565
<sha256 value="53e1899dde3c513ca1efd376abffac0e6907e8e84abd5f966242634c95e4d157" origin="Generated by Gradle"/>
15071566
</artifact>
1567+
<artifact name="checker-qual-3.19.0.pom">
1568+
<sha256 value="29ba9c5ce1a94b700bd823c4ed612f5827b590f19a49775fd7eb8f997f8aa371" origin="Generated by Gradle"/>
1569+
</artifact>
15081570
</component>
15091571
<component group="org.checkerframework" name="checker-qual" version="3.33.0">
15101572
<artifact name="checker-qual-3.33.0.jar">
@@ -1601,6 +1663,11 @@
16011663
<sha256 value="5e583878df905b5f33a230ef690a52b8f19dab9cc892bedee069f3d8af4e960a" origin="Generated by Gradle"/>
16021664
</artifact>
16031665
</component>
1666+
<component group="org.eclipse.ee4j" name="project" version="1.0.6">
1667+
<artifact name="project-1.0.6.pom">
1668+
<sha256 value="4e7d8329d8da7dcf30779d824241be145f27108932f5a5a24eb907677bc8d72d" origin="Generated by Gradle"/>
1669+
</artifact>
1670+
</component>
16041671
<component group="org.eclipse.ee4j" name="project" version="1.0.7">
16051672
<artifact name="project-1.0.7.pom">
16061673
<sha256 value="205c039a42cbae3556efbeb04a483eb3a3cf9550bd75bf84260dc8f28218f105" origin="Generated by Gradle"/>
@@ -1758,6 +1825,14 @@
17581825
<sha256 value="33b8c22f2424c2903241a7fea258fc41ab0c4d6889776576c519047562ee43a5" origin="Generated by Gradle"/>
17591826
</artifact>
17601827
</component>
1828+
<component group="org.jspecify" name="jspecify" version="1.0.0">
1829+
<artifact name="jspecify-1.0.0.jar">
1830+
<sha256 value="1fad6e6be7557781e4d33729d49ae1cdc8fdda6fe477bb0cc68ce351eafdfbab" origin="Generated by Gradle"/>
1831+
</artifact>
1832+
<artifact name="jspecify-1.0.0.module">
1833+
<sha256 value="d307ca77a54e18ac1ef1aaed4e5bbe014bd2f49f29e1d2f813e47c278283195b" origin="Generated by Gradle"/>
1834+
</artifact>
1835+
</component>
17611836
<component group="org.junit" name="junit-bom" version="5.10.0">
17621837
<artifact name="junit-bom-5.10.0.module">
17631838
<sha256 value="eb3ee6127608010694a898056e7407d117296003aba5f5db801df430b9887fcf" origin="Generated by Gradle"/>
@@ -2082,6 +2157,25 @@
20822157
<sha256 value="b68149d290f328b6b54d0f7f7d304adab5148cedd6ae18dc3baae8bf9f1757c6" origin="Generated by Gradle"/>
20832158
</artifact>
20842159
</component>
2160+
<component group="org.spongepowered" name="event-impl-gen" version="8.0.0">
2161+
<artifact name="event-impl-gen-8.0.0.jar">
2162+
<sha256 value="6e26ff9a8d9f5a9fe39fe3e64781061bf068405c04095d78c044719ac2918992" origin="Generated by Gradle"/>
2163+
</artifact>
2164+
<artifact name="event-impl-gen-8.0.0.module">
2165+
<sha256 value="5b919469a6bead6b6107212e4bf441c7576fc52f0b590db4bc13f742ebbfd983" origin="Generated by Gradle"/>
2166+
</artifact>
2167+
</component>
2168+
<component group="org.spongepowered" name="event-impl-gen-annotations" version="8.0.0">
2169+
<artifact name="event-impl-gen-annotations-8.0.0-javadoc.jar">
2170+
<sha256 value="6f4b8d62436da73bedb9baf543180f5068e99b77d38f15fbd463d4df7251d4d9" origin="Generated by Gradle"/>
2171+
</artifact>
2172+
<artifact name="event-impl-gen-annotations-8.0.0.jar">
2173+
<sha256 value="278e01efedb92a95be74714ea2bec08d29326b4893f6e957aa3bd39a15840776" origin="Generated by Gradle"/>
2174+
</artifact>
2175+
<artifact name="event-impl-gen-annotations-8.0.0.module">
2176+
<sha256 value="b0fddddd441038c0889450e8c0ebac970f0d606b246db99fd59c23c73e7ba534" origin="Generated by Gradle"/>
2177+
</artifact>
2178+
</component>
20852179
<component group="org.spongepowered" name="math" version="2.0.1">
20862180
<artifact name="math-2.0.1-javadoc.jar">
20872181
<sha256 value="eef4d1e6421cd975ebdb7ae6be8632c0e89c0e8b671ee0fb542d8e6ddad2df12" origin="Generated by Gradle"/>

settings.gradle.kts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ plugins {
1313
}
1414

1515
dependencyResolutionManagement {
16+
repositories {
17+
mavenLocal()
18+
}
1619
repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOS
1720
pluginManagement.repositories.forEach(repositories::add)
1821
}

src/main/java/org/spongepowered/api/data/DataManipulator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
import org.spongepowered.api.data.value.Value;
3131
import org.spongepowered.api.data.value.ValueContainer;
3232
import org.spongepowered.api.entity.Entity;
33-
import org.spongepowered.api.util.annotation.eventgen.TransformWith;
3433
import org.spongepowered.api.world.World;
34+
import org.spongepowered.eventgen.annotations.TransformWith;
3535

3636
import java.util.Arrays;
3737
import java.util.Objects;

src/main/java/org/spongepowered/api/event/Cancellable.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
*/
2525
package org.spongepowered.api.event;
2626

27-
import org.spongepowered.api.util.annotation.eventgen.PropertySettings;
27+
import org.spongepowered.eventgen.annotations.PropertySettings;
2828

2929
/**
3030
* Represents an event that can be cancelled.

src/main/java/org/spongepowered/api/event/Cause.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.checkerframework.checker.nullness.qual.Nullable;
2828
import org.spongepowered.api.util.CopyableBuilder;
2929
import org.spongepowered.api.util.annotation.DoNotStore;
30+
import org.spongepowered.eventgen.annotations.NoFactoryMethod;
3031

3132
import java.util.ArrayList;
3233
import java.util.Arrays;
@@ -54,6 +55,7 @@
5455
*/
5556
@DoNotStore
5657
@SuppressWarnings("unchecked")
58+
@NoFactoryMethod
5759
public final class Cause implements Iterable<Object> {
5860

5961
/**

0 commit comments

Comments
 (0)