refactor(pojo-weaver): Move Tweed extension declarations in Weaving to own, inheritable, annotations

This commit is contained in:
2025-11-02 10:40:47 +01:00
parent cd65c52538
commit ca8b36f4e4
14 changed files with 97 additions and 81 deletions

View File

@@ -1,36 +1,18 @@
package de.siphalor.tweed5.coat.bridge.testmod; package de.siphalor.tweed5.coat.bridge.testmod;
import de.siphalor.tweed5.attributesextension.api.AttributesExtension;
import de.siphalor.tweed5.coat.bridge.api.TweedCoatAttributes; import de.siphalor.tweed5.coat.bridge.api.TweedCoatAttributes;
import de.siphalor.tweed5.coat.bridge.api.TweedCoatBridgeExtension; import de.siphalor.tweed5.fabric.helper.api.DefaultTweedMinecraftWeaving;
import de.siphalor.tweed5.data.extension.api.ReadWriteExtension;
import de.siphalor.tweed5.defaultextensions.validation.api.ValidationExtension;
import de.siphalor.tweed5.weaver.pojo.api.annotation.CompoundWeaving; import de.siphalor.tweed5.weaver.pojo.api.annotation.CompoundWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.DefaultWeavingExtensions;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeaving; import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeavingExtension;
import de.siphalor.tweed5.weaver.pojoext.attributes.api.Attribute; import de.siphalor.tweed5.weaver.pojoext.attributes.api.Attribute;
import de.siphalor.tweed5.weaver.pojoext.attributes.api.AttributesPojoWeavingProcessor;
import de.siphalor.tweed5.weaver.pojoext.serde.api.auto.AutoReadWritePojoWeavingProcessor;
import de.siphalor.tweed5.weaver.pojoext.serde.api.auto.DefaultReadWriteMappings;
import de.siphalor.tweed5.weaver.pojoext.validation.api.Validator; import de.siphalor.tweed5.weaver.pojoext.validation.api.Validator;
import de.siphalor.tweed5.weaver.pojoext.validation.api.ValidatorsPojoWeavingProcessor;
import de.siphalor.tweed5.weaver.pojoext.validation.api.validators.WeavableNumberRangeValidator; import de.siphalor.tweed5.weaver.pojoext.validation.api.validators.WeavableNumberRangeValidator;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@PojoWeaving(extensions = { @PojoWeaving
ReadWriteExtension.class, @DefaultTweedMinecraftWeaving
TweedCoatBridgeExtension.class,
ValidationExtension.class,
AttributesExtension.class,
})
@PojoWeavingExtension(AutoReadWritePojoWeavingProcessor.class)
@PojoWeavingExtension(ValidatorsPojoWeavingProcessor.class)
@PojoWeavingExtension(AttributesPojoWeavingProcessor.class)
@DefaultWeavingExtensions
@DefaultReadWriteMappings
@CompoundWeaving(namingFormat = "kebab_case") @CompoundWeaving(namingFormat = "kebab_case")
@Data @Data
public class TweedCoatBridgeTestModConfig { public class TweedCoatBridgeTestModConfig {

View File

@@ -10,6 +10,11 @@ dependencies {
compileOnly("de.siphalor.tweed5:tweed5-default-extensions") compileOnly("de.siphalor.tweed5:tweed5-default-extensions")
compileOnly("de.siphalor.tweed5:tweed5-serde-extension") compileOnly("de.siphalor.tweed5:tweed5-serde-extension")
compileOnly("de.siphalor.tweed5:tweed5-serde-gson") compileOnly("de.siphalor.tweed5:tweed5-serde-gson")
compileOnly("de.siphalor.tweed5:tweed5-weaver-pojo")
compileOnly("de.siphalor.tweed5:tweed5-weaver-pojo-attributes-extension")
compileOnly("de.siphalor.tweed5:tweed5-weaver-pojo-serde-extension")
compileOnly("de.siphalor.tweed5:tweed5-weaver-pojo-validation-extension")
compileOnly("de.siphalor.tweed5:tweed5-weaver-pojo-presets-extension")
listOf("fabric-networking-api-v1", "fabric-lifecycle-events-v1").forEach { listOf("fabric-networking-api-v1", "fabric-lifecycle-events-v1").forEach {
modTestmodImplementation(fabricApi.module(it, mcLibs.versions.fabric.api.get())) modTestmodImplementation(fabricApi.module(it, mcLibs.versions.fabric.api.get()))

View File

@@ -0,0 +1,38 @@
package de.siphalor.tweed5.fabric.helper.api;
import de.siphalor.tweed5.annotationinheritance.api.AnnotationInheritance;
import de.siphalor.tweed5.attributesextension.api.AttributesExtension;
import de.siphalor.tweed5.attributesextension.api.serde.filter.AttributesReadWriteFilterExtension;
import de.siphalor.tweed5.data.extension.api.ReadWriteExtension;
import de.siphalor.tweed5.defaultextensions.presets.api.PresetsExtension;
import de.siphalor.tweed5.defaultextensions.validation.api.ValidationExtension;
import de.siphalor.tweed5.defaultextensions.validationfallback.api.ValidationFallbackExtension;
import de.siphalor.tweed5.weaver.pojo.api.annotation.CompoundWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.DefaultWeavingExtensions;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeavingExtension;
import de.siphalor.tweed5.weaver.pojo.api.annotation.TweedExtension;
import de.siphalor.tweed5.weaver.pojoext.attributes.api.AttributesPojoWeavingProcessor;
import de.siphalor.tweed5.weaver.pojoext.serde.api.auto.AutoReadWritePojoWeavingProcessor;
import de.siphalor.tweed5.weaver.pojoext.serde.api.auto.DefaultReadWriteMappings;
import de.siphalor.tweed5.weaver.pojoext.validation.api.ValidatorsPojoWeavingProcessor;
@AnnotationInheritance(passOn = {
TweedExtension.class,
PojoWeavingExtension.class,
DefaultWeavingExtensions.class,
DefaultReadWriteMappings.class,
CompoundWeaving.class
})
@TweedExtension(ReadWriteExtension.class)
@TweedExtension(ValidationExtension.class)
@TweedExtension(ValidationFallbackExtension.class)
@TweedExtension(AttributesExtension.class)
@TweedExtension(AttributesReadWriteFilterExtension.class)
@PojoWeavingExtension(AutoReadWritePojoWeavingProcessor.class)
@PojoWeavingExtension(ValidatorsPojoWeavingProcessor.class)
@PojoWeavingExtension(AttributesPojoWeavingProcessor.class)
@DefaultWeavingExtensions
@DefaultReadWriteMappings
@CompoundWeaving
public @interface DefaultTweedMinecraftWeaving {
}

View File

@@ -1,31 +1,13 @@
package de.siphalor.tweed5.fabric.helper.testmod; package de.siphalor.tweed5.fabric.helper.testmod;
import de.siphalor.tweed5.attributesextension.api.AttributesExtension; import de.siphalor.tweed5.fabric.helper.api.DefaultTweedMinecraftWeaving;
import de.siphalor.tweed5.attributesextension.api.serde.filter.AttributesReadWriteFilterExtension;
import de.siphalor.tweed5.commentloaderextension.api.CommentLoaderExtension;
import de.siphalor.tweed5.data.extension.api.ReadWriteExtension;
import de.siphalor.tweed5.defaultextensions.patch.api.PatchExtension;
import de.siphalor.tweed5.weaver.pojo.api.annotation.CompoundWeaving; import de.siphalor.tweed5.weaver.pojo.api.annotation.CompoundWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.DefaultWeavingExtensions;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeaving; import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeavingExtension;
import de.siphalor.tweed5.weaver.pojoext.attributes.api.Attribute; import de.siphalor.tweed5.weaver.pojoext.attributes.api.Attribute;
import de.siphalor.tweed5.weaver.pojoext.attributes.api.AttributesPojoWeavingProcessor;
import de.siphalor.tweed5.weaver.pojoext.serde.api.auto.AutoReadWritePojoWeavingProcessor;
import de.siphalor.tweed5.weaver.pojoext.serde.api.auto.DefaultReadWriteMappings;
import lombok.Data; import lombok.Data;
@PojoWeaving(extensions = { @PojoWeaving
CommentLoaderExtension.class, @DefaultTweedMinecraftWeaving
ReadWriteExtension.class,
PatchExtension.class,
AttributesExtension.class,
AttributesReadWriteFilterExtension.class,
})
@PojoWeavingExtension(AutoReadWritePojoWeavingProcessor.class)
@PojoWeavingExtension(AttributesPojoWeavingProcessor.class)
@DefaultWeavingExtensions
@DefaultReadWriteMappings
@CompoundWeaving(namingFormat = "kebab_case") @CompoundWeaving(namingFormat = "kebab_case")
@Data @Data
public class TestModConfig { public class TestModConfig {

View File

@@ -4,10 +4,7 @@ import de.siphalor.tweed5.attributesextension.api.AttributesExtension;
import de.siphalor.tweed5.core.api.container.ConfigContainer; import de.siphalor.tweed5.core.api.container.ConfigContainer;
import de.siphalor.tweed5.core.api.entry.CompoundConfigEntry; import de.siphalor.tweed5.core.api.entry.CompoundConfigEntry;
import de.siphalor.tweed5.core.api.entry.ConfigEntry; import de.siphalor.tweed5.core.api.entry.ConfigEntry;
import de.siphalor.tweed5.weaver.pojo.api.annotation.CompoundWeaving; import de.siphalor.tweed5.weaver.pojo.api.annotation.*;
import de.siphalor.tweed5.weaver.pojo.api.annotation.DefaultWeavingExtensions;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeavingExtension;
import de.siphalor.tweed5.weaver.pojo.impl.weaving.TweedPojoWeaverBootstrapper; import de.siphalor.tweed5.weaver.pojo.impl.weaving.TweedPojoWeaverBootstrapper;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -69,7 +66,8 @@ class AttributesPojoWeavingProcessorTest {
); );
} }
@PojoWeaving(extensions = AttributesExtension.class) @PojoWeaving
@TweedExtension(AttributesExtension.class)
@DefaultWeavingExtensions @DefaultWeavingExtensions
@PojoWeavingExtension(AttributesPojoWeavingProcessor.class) @PojoWeavingExtension(AttributesPojoWeavingProcessor.class)
@CompoundWeaving @CompoundWeaving

View File

@@ -9,10 +9,7 @@ import de.siphalor.tweed5.data.hjson.HjsonReader;
import de.siphalor.tweed5.data.hjson.HjsonWriter; import de.siphalor.tweed5.data.hjson.HjsonWriter;
import de.siphalor.tweed5.dataapi.api.TweedDataVisitor; import de.siphalor.tweed5.dataapi.api.TweedDataVisitor;
import de.siphalor.tweed5.dataapi.api.TweedDataWriteException; import de.siphalor.tweed5.dataapi.api.TweedDataWriteException;
import de.siphalor.tweed5.weaver.pojo.api.annotation.CompoundWeaving; import de.siphalor.tweed5.weaver.pojo.api.annotation.*;
import de.siphalor.tweed5.weaver.pojo.api.annotation.DefaultWeavingExtensions;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeavingExtension;
import de.siphalor.tweed5.weaver.pojo.impl.weaving.TweedPojoWeaverBootstrapper; import de.siphalor.tweed5.weaver.pojo.impl.weaving.TweedPojoWeaverBootstrapper;
import lombok.*; import lombok.*;
import org.jspecify.annotations.Nullable; import org.jspecify.annotations.Nullable;
@@ -79,7 +76,8 @@ class ReadWritePojoWeavingProcessorTest {
} }
} }
@PojoWeaving(extensions = ReadWriteExtension.class) @PojoWeaving
@TweedExtension(ReadWriteExtension.class)
@DefaultWeavingExtensions @DefaultWeavingExtensions
@PojoWeavingExtension(ReadWritePojoWeavingProcessor.class) @PojoWeavingExtension(ReadWritePojoWeavingProcessor.class)
@CompoundWeaving @CompoundWeaving

View File

@@ -9,10 +9,7 @@ import de.siphalor.tweed5.data.extension.api.ReadWriteExtension;
import de.siphalor.tweed5.data.extension.api.readwrite.TweedEntryReaderWriter; import de.siphalor.tweed5.data.extension.api.readwrite.TweedEntryReaderWriter;
import de.siphalor.tweed5.data.extension.impl.TweedEntryReaderWriterImpls; import de.siphalor.tweed5.data.extension.impl.TweedEntryReaderWriterImpls;
import de.siphalor.tweed5.data.hjson.HjsonWriter; import de.siphalor.tweed5.data.hjson.HjsonWriter;
import de.siphalor.tweed5.weaver.pojo.api.annotation.CompoundWeaving; import de.siphalor.tweed5.weaver.pojo.api.annotation.*;
import de.siphalor.tweed5.weaver.pojo.api.annotation.DefaultWeavingExtensions;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeavingExtension;
import de.siphalor.tweed5.weaver.pojo.api.weaving.NullablePojoWeaver; import de.siphalor.tweed5.weaver.pojo.api.weaving.NullablePojoWeaver;
import de.siphalor.tweed5.weaver.pojo.impl.weaving.TweedPojoWeaverBootstrapper; import de.siphalor.tweed5.weaver.pojo.impl.weaving.TweedPojoWeaverBootstrapper;
import lombok.Data; import lombok.Data;
@@ -122,7 +119,8 @@ class AutoReadWritePojoWeavingProcessorTest {
"""); """);
} }
@PojoWeaving(extensions = ReadWriteExtension.class) @PojoWeaving
@TweedExtension(ReadWriteExtension.class)
@PojoWeavingExtension(NullablePojoWeaver.class) @PojoWeavingExtension(NullablePojoWeaver.class)
@DefaultWeavingExtensions @DefaultWeavingExtensions
@PojoWeavingExtension(AutoReadWritePojoWeavingProcessor.class) @PojoWeavingExtension(AutoReadWritePojoWeavingProcessor.class)

View File

@@ -8,10 +8,7 @@ import de.siphalor.tweed5.data.extension.api.TweedEntryWriteException;
import de.siphalor.tweed5.data.extension.impl.TweedEntryReaderWriterImpls; import de.siphalor.tweed5.data.extension.impl.TweedEntryReaderWriterImpls;
import de.siphalor.tweed5.data.hjson.HjsonWriter; import de.siphalor.tweed5.data.hjson.HjsonWriter;
import de.siphalor.tweed5.defaultextensions.pather.api.PatherExtension; import de.siphalor.tweed5.defaultextensions.pather.api.PatherExtension;
import de.siphalor.tweed5.weaver.pojo.api.annotation.CompoundWeaving; import de.siphalor.tweed5.weaver.pojo.api.annotation.*;
import de.siphalor.tweed5.weaver.pojo.api.annotation.DefaultWeavingExtensions;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeavingExtension;
import de.siphalor.tweed5.weaver.pojo.impl.weaving.TweedPojoWeaverBootstrapper; import de.siphalor.tweed5.weaver.pojo.impl.weaving.TweedPojoWeaverBootstrapper;
import de.siphalor.tweed5.weaver.pojoext.serde.api.ReadWritePojoWeavingProcessor; import de.siphalor.tweed5.weaver.pojoext.serde.api.ReadWritePojoWeavingProcessor;
import de.siphalor.tweed5.weaver.pojoext.serde.api.auto.AutoReadWritePojoWeavingProcessor; import de.siphalor.tweed5.weaver.pojoext.serde.api.auto.AutoReadWritePojoWeavingProcessor;
@@ -144,7 +141,9 @@ class AutoNullableReadWritePojoWeavingProcessorTest {
.hasMessageContaining("at .boxedInteger"); .hasMessageContaining("at .boxedInteger");
} }
@PojoWeaving(extensions = {ReadWriteExtension.class, PatherExtension.class}) @PojoWeaving
@TweedExtension(ReadWriteExtension.class)
@TweedExtension(PatherExtension.class)
@DefaultWeavingExtensions @DefaultWeavingExtensions
@PojoWeavingExtension(AutoReadWritePojoWeavingProcessor.class) @PojoWeavingExtension(AutoReadWritePojoWeavingProcessor.class)
@PojoWeavingExtension(ReadWritePojoWeavingProcessor.class) @PojoWeavingExtension(ReadWritePojoWeavingProcessor.class)

View File

@@ -3,10 +3,7 @@ package de.siphalor.tweed5.weaver.pojoext.validation.api;
import de.siphalor.tweed5.core.api.container.ConfigContainer; import de.siphalor.tweed5.core.api.container.ConfigContainer;
import de.siphalor.tweed5.defaultextensions.validation.api.ValidationExtension; import de.siphalor.tweed5.defaultextensions.validation.api.ValidationExtension;
import de.siphalor.tweed5.defaultextensions.validation.api.result.ValidationIssues; import de.siphalor.tweed5.defaultextensions.validation.api.result.ValidationIssues;
import de.siphalor.tweed5.weaver.pojo.api.annotation.CompoundWeaving; import de.siphalor.tweed5.weaver.pojo.api.annotation.*;
import de.siphalor.tweed5.weaver.pojo.api.annotation.DefaultWeavingExtensions;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeavingExtension;
import de.siphalor.tweed5.weaver.pojo.impl.weaving.TweedPojoWeaverBootstrapper; import de.siphalor.tweed5.weaver.pojo.impl.weaving.TweedPojoWeaverBootstrapper;
import de.siphalor.tweed5.weaver.pojoext.validation.api.validators.WeavableNumberRangeValidator; import de.siphalor.tweed5.weaver.pojoext.validation.api.validators.WeavableNumberRangeValidator;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@@ -36,7 +33,8 @@ class ValidatorsPojoWeavingProcessorTest {
} }
} }
@PojoWeaving(extensions = {ValidationExtension.class}) @PojoWeaving
@TweedExtension(ValidationExtension.class)
@DefaultWeavingExtensions @DefaultWeavingExtensions
@PojoWeavingExtension(ValidatorsPojoWeavingProcessor.class) @PojoWeavingExtension(ValidatorsPojoWeavingProcessor.class)
@CompoundWeaving @CompoundWeaving

View File

@@ -1,11 +1,7 @@
package de.siphalor.tweed5.weaver.pojo.api.annotation; package de.siphalor.tweed5.weaver.pojo.api.annotation;
import de.siphalor.tweed5.core.api.container.ConfigContainer; import de.siphalor.tweed5.core.api.container.ConfigContainer;
import de.siphalor.tweed5.core.api.extension.TweedExtension;
import de.siphalor.tweed5.core.impl.DefaultConfigContainer; import de.siphalor.tweed5.core.impl.DefaultConfigContainer;
import de.siphalor.tweed5.weaver.pojo.api.weaving.CompoundPojoWeaver;
import de.siphalor.tweed5.weaver.pojo.api.weaving.TrivialPojoWeaver;
import de.siphalor.tweed5.weaver.pojo.api.weaving.TweedPojoWeavingExtension;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
@@ -16,6 +12,4 @@ import java.lang.annotation.Target;
@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE}) @Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE})
public @interface PojoWeaving { public @interface PojoWeaving {
Class<? extends ConfigContainer> container() default DefaultConfigContainer.class; Class<? extends ConfigContainer> container() default DefaultConfigContainer.class;
Class<? extends TweedExtension>[] extensions() default {};
} }

View File

@@ -0,0 +1,10 @@
package de.siphalor.tweed5.weaver.pojo.api.annotation;
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Repeatable(TweedExtensions.class)
public @interface TweedExtension {
Class<? extends de.siphalor.tweed5.core.api.extension.TweedExtension> value();
}

View File

@@ -0,0 +1,12 @@
package de.siphalor.tweed5.weaver.pojo.api.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE})
public @interface TweedExtensions {
TweedExtension[] value();
}

View File

@@ -8,6 +8,7 @@ import de.siphalor.tweed5.patchwork.api.PatchworkFactory;
import de.siphalor.tweed5.typeutils.api.type.ActualType; import de.siphalor.tweed5.typeutils.api.type.ActualType;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeaving; import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeavingExtension; import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeavingExtension;
import de.siphalor.tweed5.weaver.pojo.api.annotation.TweedExtension;
import de.siphalor.tweed5.weaver.pojo.api.weaving.ProtoWeavingContext; import de.siphalor.tweed5.weaver.pojo.api.weaving.ProtoWeavingContext;
import de.siphalor.tweed5.weaver.pojo.api.weaving.TweedPojoWeavingExtension; import de.siphalor.tweed5.weaver.pojo.api.weaving.TweedPojoWeavingExtension;
import de.siphalor.tweed5.weaver.pojo.api.weaving.WeavingContext; import de.siphalor.tweed5.weaver.pojo.api.weaving.WeavingContext;
@@ -61,7 +62,11 @@ public class TweedPojoWeaverBootstrapper<T> {
configContainer configContainer
= (ConfigContainer<T>) createConfigContainer((Class<? extends ConfigContainer<?>>) rootWeavingConfig.container()); = (ConfigContainer<T>) createConfigContainer((Class<? extends ConfigContainer<?>>) rootWeavingConfig.container());
configContainer.registerExtensions(rootWeavingConfig.extensions()); TweedExtension[] tweedExtensions = pojoAnnotations.getAnnotationsByType(TweedExtension.class);
//noinspection unchecked
configContainer.registerExtensions(
Arrays.stream(tweedExtensions).map(TweedExtension::value).toArray(Class[]::new)
);
configContainer.finishExtensionSetup(); configContainer.finishExtensionSetup();
Collection<TweedPojoWeavingExtension> extensions = loadWeavingExtensions( Collection<TweedPojoWeavingExtension> extensions = loadWeavingExtensions(

View File

@@ -1,11 +1,7 @@
package de.siphalor.tweed5.weaver.pojo.impl.weaving; package de.siphalor.tweed5.weaver.pojo.impl.weaving;
import de.siphalor.tweed5.core.api.container.ConfigContainer; import de.siphalor.tweed5.core.api.container.ConfigContainer;
import de.siphalor.tweed5.core.api.extension.TweedExtension; import de.siphalor.tweed5.weaver.pojo.api.annotation.*;
import de.siphalor.tweed5.weaver.pojo.api.annotation.CompoundWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.DefaultWeavingExtensions;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeaving;
import de.siphalor.tweed5.weaver.pojo.api.annotation.PojoWeavingExtension;
import de.siphalor.tweed5.weaver.pojo.api.weaving.CollectionPojoWeaver; import de.siphalor.tweed5.weaver.pojo.api.weaving.CollectionPojoWeaver;
import lombok.Data; import lombok.Data;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -56,14 +52,15 @@ class TweedPojoWeaverBootstrapperTest {
)); ));
} }
public static class DummyExtension implements TweedExtension { public static class DummyExtension implements de.siphalor.tweed5.core.api.extension.TweedExtension {
@Override @Override
public String getId() { public String getId() {
return "dummy"; return "dummy";
} }
} }
@PojoWeaving(extensions = {DummyExtension.class}) @PojoWeaving
@TweedExtension(DummyExtension.class)
@DefaultWeavingExtensions @DefaultWeavingExtensions
@CompoundWeaving(namingFormat = "camel_case") @CompoundWeaving(namingFormat = "camel_case")
@Data @Data