Skip to content

Commit

Permalink
feat!: merge composite event additions
Browse files Browse the repository at this point in the history
Merges #2495

Signed-off-by: Gabriel Harris-Rouquette <[email protected]>
  • Loading branch information
gabizou committed Jan 12, 2025
2 parents 0557374 + a9b2770 commit 937b326
Show file tree
Hide file tree
Showing 89 changed files with 493 additions and 592 deletions.
1 change: 1 addition & 0 deletions .checkstyle/checkstyle-suppressions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,5 @@
<suppress checks="MethodTypeParameterName"/>
<suppress checks="CommentsIndentation"/>
<suppress checks="InterfaceTypeParameterName"/>
<suppress files="[\\/]generated[\\/]" checks="[a-zA-Z0-9]*"/>
</suppressions>
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ MANIFEST.MF
dependency-reduced-pom.xml
.checkstyle
!.checkstyle/
# We exclude the generated events from git to avoid
# temptation to edit said generated files.
src/generated/
src/main/generated/

# Compiled #
############
Expand Down
80 changes: 49 additions & 31 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,13 +1,7 @@
import net.ltgt.gradle.errorprone.errorprone
import org.jetbrains.gradle.ext.delegateActions
import org.jetbrains.gradle.ext.settings
import org.jetbrains.gradle.ext.taskTriggers

buildscript {
dependencies {
classpath(libs.spoon) // bump for EIG
}
}

plugins {
eclipse
Expand All @@ -16,12 +10,14 @@ plugins {
alias(libs.plugins.indra.crossdoc)
alias(libs.plugins.indra.publishing)
alias(libs.plugins.indra.publishing.sonatype)
alias(libs.plugins.eventImplGen)
alias(libs.plugins.ideaExt)
alias(libs.plugins.errorprone)
alias(libs.plugins.nexusPublish)
}

// Enable event generation to be considered part of
// the main source set
val generatedEventSourcesDir = project.file("src/main/generated")
val javaTarget: String by project
val ap by sourceSets.registering {
compileClasspath += sourceSets.main.get().compileClasspath + sourceSets.main.get().output
Expand All @@ -34,12 +30,32 @@ configurations {
}
}
}
tasks {
register("printSourceDirs") {
doLast {
sourceSets.forEach { set ->
println("SourceSet: ${set.name}")
println("Java Source Dirs: ${set.java.srcDirs}" )
}
}
}
}

sourceSets {
main {
java {
srcDirs(generatedEventSourcesDir)
}
}
}

// Project dependencies
dependencies {
// Directly tied to what's available from Minecraft
api(libs.log4j.api)
api(libs.gson)
api(libs.eventImplGen.annotations)
annotationProcessor(libs.eventImplGen.processor)

// Adventure
api(platform(libs.adventure.bom))
Expand Down Expand Up @@ -130,27 +146,23 @@ dependencies {
testImplementation(libs.mockito)
}

spotless {
java {
target("src/main/java/**/*.java")
targetExclude("src/main/generated/**/*.java")
}
}

tasks {
genEventImpl {
sourceCompatibility = "17" // TODO use javaTarget here
destinationDirectory = project.layout.buildDirectory.dir("generated/event-factory")

outputFactory = "org.spongepowered.api.event.SpongeEventFactory"
include("org/spongepowered/api/event/*/**/*")
exclude("org/spongepowered/api/event/action/InteractEvent.java")
exclude("org/spongepowered/api/event/cause/")
exclude("org/spongepowered/api/event/entity/AffectEntityEvent.java")
exclude("org/spongepowered/api/event/filter/")
exclude("org/spongepowered/api/event/impl/")
exclude("org/spongepowered/api/event/lifecycle/ProvideServiceEvent.java")
exclude("org/spongepowered/api/event/lifecycle/RegisterBuilderEvent.java")
exclude("org/spongepowered/api/event/lifecycle/RegisterRegistryEvent.java")
exclude("org/spongepowered/api/event/lifecycle/RegisterRegistryValueEvent.java")
exclude("org/spongepowered/api/event/lifecycle/RegisterCommandEvent.java")
exclude("org/spongepowered/api/event/lifecycle/RegisterFactoryEvent.java")
exclude("org/spongepowered/api/event/lifecycle/RegisterWorldEvent.java")
inclusiveAnnotations = setOf("org.spongepowered.api.util.annotation.eventgen.GenerateFactoryMethod")
exclusiveAnnotations = setOf("org.spongepowered.api.util.annotation.eventgen.NoFactoryMethod")

compileJava {
options.generatedSourceOutputDirectory = generatedEventSourcesDir
options.compilerArgs.addAll(listOf(
"-AeventGenInclusiveFolders=org/spongepowered/api/event",
"-AeventGenExclusiveFolders=org/spongepowered/api/event/cause,org/spongepowered/api/event/filter,org/spongepowered/api/event/impl,org/spongepowered/api/event/lifecycle",
"-AeventGenFactory=org.spongepowered.api.event.SpongeEventFactory",
"-AeventGenDebug=true",
))
}

jar {
Expand All @@ -166,6 +178,15 @@ tasks {
indraGit.applyVcsInformationToManifest(this)
}
}
checkstyleMain {
dependsOn(compileJava)
}
spotlessJava {
dependsOn(compileJava)
}
sourcesJar {
dependsOn(compileJava)
}

withType(JavaCompile::class).configureEach {
options.apply {
Expand Down Expand Up @@ -215,15 +236,12 @@ idea {
delegateBuildRunToGradle = false
testRunner = org.jetbrains.gradle.ext.ActionDelegationConfig.TestRunner.PLATFORM
}
taskTriggers {
beforeBuild(tasks.genEventImpl)
}
}
}
}

eclipse {
synchronizationTasks(tasks.genEventImpl)
// synchronizationTasks(tasks.genEventImpl)
}

val organization: String by project
Expand Down
3 changes: 2 additions & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,14 @@ guice = { module = "com.google.inject:guice", version.ref = "guice" }
log4j-api = { module = "org.apache.logging.log4j:log4j-api", version.ref = "log4j" }
math = { module = "org.spongepowered:math", version.ref = "math" }
pluginSpi = { module = "org.spongepowered:plugin-spi", version.ref = "pluginSpi" }
eventImplGen-processor = {module = "org.spongepowered:event-impl-gen", version = "8.0.0"}
eventImplGen-annotations = { module = "org.spongepowered:event-impl-gen-annotations", version = "8.0.0"}

# build-time/annotations

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

# testing

Expand Down
94 changes: 94 additions & 0 deletions gradle/verification-metadata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,30 @@
<sha256 value="893d56afcea1b22f83220fd7e49a6668c5b8901e39bd59dc57b42f55673721ce" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.dagger" name="dagger" version="2.42">
<artifact name="dagger-2.42.jar">
<sha256 value="7ad8147fdb5dfb481b7cde8c70da73afbaa21430ce757fcd96709fcfb6a4d56b" origin="Generated by Gradle"/>
</artifact>
<artifact name="dagger-2.42.pom">
<sha256 value="ca6529bd6d79090f0ab6f5da452eb4fbb29377b48e6a806e7612396dcb2998e0" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.dagger" name="dagger" version="2.52">
<artifact name="dagger-2.52.jar">
<sha256 value="dfb8e83020786daefbd64335ce0e0ebf01646a1b407fb77a27e052baf42df458" origin="Generated by Gradle"/>
</artifact>
<artifact name="dagger-2.52.pom">
<sha256 value="5cb60843f46bbccf97bd832d5490d26ab192af2e663fad7e5971969bf20fb94e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.dagger" name="dagger" version="2.54">
<artifact name="dagger-2.54.jar">
<sha256 value="7ab0d8278a532888de19025dc6ee70a80ecd4567778a6a7e7ec256a2073e40a3" origin="Generated by Gradle"/>
</artifact>
<artifact name="dagger-2.54.pom">
<sha256 value="af43413fd91fc49532884ca32191ab31bec609c344d4939aece9d3efef699f81" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.errorprone" name="error_prone_annotation" version="2.24.1">
<artifact name="error_prone_annotation-2.24.1.jar">
<sha256 value="dc202da451680aa8cdda7c68d959f27c112dca8f8fdeaf7c597de73cb2b1a0a6" origin="Generated by Gradle"/>
Expand Down Expand Up @@ -549,6 +573,14 @@
<sha256 value="9acf56a8579c05bedd819d99232363e2bf327e8f73c67598dbd9885a845a3c69" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.palantir.javapoet" name="javapoet" version="0.6.0">
<artifact name="javapoet-0.6.0.jar">
<sha256 value="1c8dd1cc4404b9eeb5c54fef8a1cf2be7a138a42783b9460fbae9caf85ed5b2f" origin="Generated by Gradle"/>
</artifact>
<artifact name="javapoet-0.6.0.pom">
<sha256 value="f6e34a26ac09a3a68a91cc9235cb1f8c7736b07fe89db59a324acd8d57d9e797" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.puppycrawl.tools" name="checkstyle" version="10.12.7">
<artifact name="checkstyle-10.12.7.jar">
<sha256 value="767cc2393169f0abe4292e59c3b62317149f900a472cd6b01f74346f6bdae581" origin="Generated by Gradle"/>
Expand All @@ -557,6 +589,14 @@
<sha256 value="f6ac2b6de9ed3823c8d68977df6352f3936af5db7baeb12303cdc9d3c4f46590" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.squareup" name="javapoet" version="1.13.0">
<artifact name="javapoet-1.13.0.jar">
<sha256 value="4c7517e848a71b36d069d12bb3bf46a70fd4cda3105d822b0ed2e19c00b69291" origin="Generated by Gradle"/>
</artifact>
<artifact name="javapoet-1.13.0.pom">
<sha256 value="54a34fa8502a46bc90efdb49262600591fa80bf9a34f5a4c798311aec16ca977" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.squareup.okhttp3" name="okhttp" version="4.10.0">
<artifact name="okhttp-4.10.0.jar">
<sha256 value="7580f14fa1691206e37081ad3f92063b1603b328da0bb316f2fef02e0562e7ec" origin="Generated by Gradle"/>
Expand Down Expand Up @@ -728,6 +768,22 @@
<sha256 value="5a65e06a159d20d3b4800624a570c646dbee710b2b539b3449a268558c289e9c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="io.soabase.java-composer" name="java-composer" version="1.0">
<artifact name="java-composer-1.0.jar">
<sha256 value="d914e52079c41509cde32d8fa03b5a865d8a227867ed6fd5d8121639518d28a1" origin="Generated by Gradle"/>
</artifact>
<artifact name="java-composer-1.0.pom">
<sha256 value="741a35966a3055c80c10631736c6cfec82d7b5e4212b3f72ded29f98935bbb5e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="jakarta.inject" name="jakarta.inject-api" version="2.0.1">
<artifact name="jakarta.inject-api-2.0.1.jar">
<sha256 value="f7dc98062fccf14126abb751b64fab12c312566e8cbdc8483598bffcea93af7c" origin="Generated by Gradle"/>
</artifact>
<artifact name="jakarta.inject-api-2.0.1.pom">
<sha256 value="e7fd7232e96307a575b2494c9367d68cf43ec98244aace3ccc23e1773ffa6fda" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="jakarta.platform" name="jakarta.jakartaee-bom" version="9.1.0">
<artifact name="jakarta.jakartaee-bom-9.1.0.pom">
<sha256 value="df98e0266219fdbb82562826d79a3a20776a8ba02aa787f0f0765a538654c8a4" origin="Generated by Gradle"/>
Expand Down Expand Up @@ -1492,6 +1548,9 @@
<artifact name="apiguardian-api-1.1.2.module">
<sha256 value="e08028131375b357d1d28734e9a4fb4216da84b240641cb3ef7e7c7d628223fc" origin="Generated by Gradle"/>
</artifact>
<artifact name="apiguardian-api-1.1.2.pom">
<sha256 value="32355081d109095c3d5d374d5a43b4f4c1b75d549e983ef50723e2772e5302a0" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.checkerframework" name="checker-qual" version="2.10.0">
<artifact name="checker-qual-2.10.0.jar">
Expand All @@ -1505,6 +1564,9 @@
<artifact name="checker-qual-3.19.0.module">
<sha256 value="53e1899dde3c513ca1efd376abffac0e6907e8e84abd5f966242634c95e4d157" origin="Generated by Gradle"/>
</artifact>
<artifact name="checker-qual-3.19.0.pom">
<sha256 value="29ba9c5ce1a94b700bd823c4ed612f5827b590f19a49775fd7eb8f997f8aa371" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.checkerframework" name="checker-qual" version="3.33.0">
<artifact name="checker-qual-3.33.0.jar">
Expand Down Expand Up @@ -1601,6 +1663,11 @@
<sha256 value="5e583878df905b5f33a230ef690a52b8f19dab9cc892bedee069f3d8af4e960a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.eclipse.ee4j" name="project" version="1.0.6">
<artifact name="project-1.0.6.pom">
<sha256 value="4e7d8329d8da7dcf30779d824241be145f27108932f5a5a24eb907677bc8d72d" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.eclipse.ee4j" name="project" version="1.0.7">
<artifact name="project-1.0.7.pom">
<sha256 value="205c039a42cbae3556efbeb04a483eb3a3cf9550bd75bf84260dc8f28218f105" origin="Generated by Gradle"/>
Expand Down Expand Up @@ -1758,6 +1825,14 @@
<sha256 value="33b8c22f2424c2903241a7fea258fc41ab0c4d6889776576c519047562ee43a5" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.jspecify" name="jspecify" version="1.0.0">
<artifact name="jspecify-1.0.0.jar">
<sha256 value="1fad6e6be7557781e4d33729d49ae1cdc8fdda6fe477bb0cc68ce351eafdfbab" origin="Generated by Gradle"/>
</artifact>
<artifact name="jspecify-1.0.0.module">
<sha256 value="d307ca77a54e18ac1ef1aaed4e5bbe014bd2f49f29e1d2f813e47c278283195b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.junit" name="junit-bom" version="5.10.0">
<artifact name="junit-bom-5.10.0.module">
<sha256 value="eb3ee6127608010694a898056e7407d117296003aba5f5db801df430b9887fcf" origin="Generated by Gradle"/>
Expand Down Expand Up @@ -2082,6 +2157,25 @@
<sha256 value="b68149d290f328b6b54d0f7f7d304adab5148cedd6ae18dc3baae8bf9f1757c6" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.spongepowered" name="event-impl-gen" version="8.0.0">
<artifact name="event-impl-gen-8.0.0.jar">
<sha256 value="6e26ff9a8d9f5a9fe39fe3e64781061bf068405c04095d78c044719ac2918992" origin="Generated by Gradle"/>
</artifact>
<artifact name="event-impl-gen-8.0.0.module">
<sha256 value="5b919469a6bead6b6107212e4bf441c7576fc52f0b590db4bc13f742ebbfd983" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.spongepowered" name="event-impl-gen-annotations" version="8.0.0">
<artifact name="event-impl-gen-annotations-8.0.0-javadoc.jar">
<sha256 value="6f4b8d62436da73bedb9baf543180f5068e99b77d38f15fbd463d4df7251d4d9" origin="Generated by Gradle"/>
</artifact>
<artifact name="event-impl-gen-annotations-8.0.0.jar">
<sha256 value="278e01efedb92a95be74714ea2bec08d29326b4893f6e957aa3bd39a15840776" origin="Generated by Gradle"/>
</artifact>
<artifact name="event-impl-gen-annotations-8.0.0.module">
<sha256 value="b0fddddd441038c0889450e8c0ebac970f0d606b246db99fd59c23c73e7ba534" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="org.spongepowered" name="math" version="2.0.1">
<artifact name="math-2.0.1-javadoc.jar">
<sha256 value="eef4d1e6421cd975ebdb7ae6be8632c0e89c0e8b671ee0fb542d8e6ddad2df12" origin="Generated by Gradle"/>
Expand Down
3 changes: 3 additions & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ plugins {
}

dependencyResolutionManagement {
repositories {
mavenLocal()
}
repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOS
pluginManagement.repositories.forEach(repositories::add)
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
import org.spongepowered.api.data.value.Value;
import org.spongepowered.api.data.value.ValueContainer;
import org.spongepowered.api.entity.Entity;
import org.spongepowered.api.util.annotation.eventgen.TransformWith;
import org.spongepowered.api.world.World;
import org.spongepowered.eventgen.annotations.TransformWith;

import java.util.Arrays;
import java.util.Objects;
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/spongepowered/api/event/Cancellable.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
*/
package org.spongepowered.api.event;

import org.spongepowered.api.util.annotation.eventgen.PropertySettings;
import org.spongepowered.eventgen.annotations.PropertySettings;

/**
* Represents an event that can be cancelled.
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/org/spongepowered/api/event/Cause.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import org.checkerframework.checker.nullness.qual.Nullable;
import org.spongepowered.api.util.CopyableBuilder;
import org.spongepowered.api.util.annotation.DoNotStore;
import org.spongepowered.eventgen.annotations.NoFactoryMethod;

import java.util.ArrayList;
import java.util.Arrays;
Expand Down Expand Up @@ -54,6 +55,7 @@
*/
@DoNotStore
@SuppressWarnings("unchecked")
@NoFactoryMethod
public final class Cause implements Iterable<Object> {

/**
Expand Down
Loading

0 comments on commit 937b326

Please sign in to comment.