【发布时间】:2023-01-10 21:50:27
【问题描述】:
我正在尝试将用于审计的 JaVers 集成到 quarkus 中,但几乎没有资源。 这甚至受支持吗? 任何人都可以指出我的资源吗?
【问题讨论】:
-
一般来说,我们可以使用quarkus中的任何依赖,只要我们不进行原生编译即可。没有专门的 quarkus 或 quarkiverse 扩展,所以如果我们需要本地编译,我们可能必须自己编写扩展。
我正在尝试将用于审计的 JaVers 集成到 quarkus 中,但几乎没有资源。 这甚至受支持吗? 任何人都可以指出我的资源吗?
【问题讨论】:
从来没有听说过夸克斯。在 Javers 中肯定没有对它的特殊支持。 Javers 是开源的——如果你想在 javers 中创建这样的功能,请在此处免费打开一个新的设计讨论——https://github.com/javers/javers/discussions
【讨论】:
我查看了 InstantiatingModule 的各个类,它们使用 #getImplementations() 实现了一般需要用于反射的类列表。从那时起,我通过错误消息磨掉了缺失的类。根据 MappingStyle(Field 或 Bean),可能仍然存在差异。以此为起点:
import io.quarkus.runtime.annotations.RegisterForReflection;
@RegisterForReflection(
classNames = {
"org.javers.core.JaversCore",
"org.javers.core.JaversCore",
"org.javers.core.commit.CommitFactory",
"org.javers.core.commit.CommitIdFactory",
"org.javers.core.commit.CommitSeqGenerator",
"org.javers.core.commit.DistributedCommitSeqGenerator",
"org.javers.core.diff.DiffFactory",
"org.javers.core.diff.appenders.ArrayChangeAppender",
"org.javers.core.diff.appenders.CollectionAsListChangeAppender",
"org.javers.core.diff.appenders.CorePropertyChangeAppender",
"org.javers.core.diff.appenders.DiffAppendersModule",
"org.javers.core.diff.appenders.HashWrapper",
"org.javers.core.diff.appenders.ListAsSetChangeAppender",
"org.javers.core.diff.appenders.ListToMapAppenderAdapter",
"org.javers.core.diff.appenders.MapChangeAppender",
"org.javers.core.diff.appenders.MapChangesToListChangesFunction",
"org.javers.core.diff.appenders.NewObjectAppender",
"org.javers.core.diff.appenders.NodeChangeAppender",
"org.javers.core.diff.appenders.ObjectRemovedAppender",
"org.javers.core.diff.appenders.OptionalChangeAppender",
"org.javers.core.diff.appenders.PropertyChangeAppender",
"org.javers.core.diff.appenders.ReferenceChangeAppender",
"org.javers.core.diff.appenders.SetChangeAppender",
"org.javers.core.diff.appenders.SimpleListChangeAppender",
"org.javers.core.diff.appenders.ValueChangeAppender",
"org.javers.core.graph.CollectionsCdoFactory",
"org.javers.core.graph.LiveCdoFactory",
"org.javers.core.graph.LiveGraphFactory",
"org.javers.core.graph.ObjectAccessHookDoNothingImpl",
"org.javers.core.graph.ObjectGraphBuilder",
"org.javers.core.graph.ObjectHasher",
"org.javers.core.graph.TailoredJaversFieldFactory",
"org.javers.core.graph.TailoredJaversMethodFactory",
"org.javers.core.json.JsonConverterBuilder",
"org.javers.core.json.typeadapter.change.ArrayChangeTypeAdapter",
"org.javers.core.json.typeadapter.change.ChangeTypeAdapter",
"org.javers.core.json.typeadapter.change.ChangeTypeAdaptersModule",
"org.javers.core.json.typeadapter.change.ContainerChangeTypeAdapter",
"org.javers.core.json.typeadapter.change.ListChangeTypeAdapter",
"org.javers.core.json.typeadapter.change.MapChangeTypeAdapter",
"org.javers.core.json.typeadapter.change.NewObjectTypeAdapter",
"org.javers.core.json.typeadapter.change.ObjectRemovedTypeAdapter",
"org.javers.core.json.typeadapter.change.ReferenceChangeTypeAdapter",
"org.javers.core.json.typeadapter.change.SetChangeTypeAdapter",
"org.javers.core.json.typeadapter.change.ValueChangeTypeAdapter",
"org.javers.core.json.typeadapter.commit.CdoSnapshotAssembler",
"org.javers.core.json.typeadapter.commit.CdoSnapshotStateDeserializer",
"org.javers.core.json.typeadapter.commit.CdoSnapshotStateTypeAdapter",
"org.javers.core.json.typeadapter.commit.CdoSnapshotTypeAdapter",
"org.javers.core.json.typeadapter.commit.CommitIdTypeAdapter",
"org.javers.core.json.typeadapter.commit.CommitMetadataTypeAdapter",
"org.javers.core.json.typeadapter.commit.CommitPropertiesConverter",
"org.javers.core.json.typeadapter.commit.CommitTypeAdaptersModule",
"org.javers.core.json.typeadapter.commit.DiffTypeDeserializer",
"org.javers.core.json.typeadapter.commit.GlobalIdTypeAdapter",
"org.javers.core.json.typeadapter.commit.JsonElementFakeAdapter",
"org.javers.core.metamodel.object.GlobalIdFactory",
"org.javers.core.metamodel.scanner.AnnotationNamesProvider",
"org.javers.core.metamodel.scanner.AnnotationsNameSpace",
"org.javers.core.metamodel.scanner.BeanBasedPropertyScanner",
"org.javers.core.metamodel.scanner.ClassAnnotationsScan",
"org.javers.core.metamodel.scanner.ClassAnnotationsScanner",
"org.javers.core.metamodel.scanner.ClassScan",
"org.javers.core.metamodel.scanner.ClassScanner",
"org.javers.core.metamodel.scanner.FieldBasedPropertyScanner",
"org.javers.core.metamodel.scanner.JPAAnnotationsNameSpace",
"org.javers.core.metamodel.scanner.JaversAnnotationsNameSpace",
"org.javers.core.metamodel.scanner.PropertyScan",
"org.javers.core.metamodel.scanner.PropertyScanner",
"org.javers.core.metamodel.scanner.ScannerModule",
"org.javers.core.metamodel.scanner.TypeFromAnnotation",
"org.javers.core.metamodel.type.ArrayType",
"org.javers.core.metamodel.type.ClassType",
"org.javers.core.metamodel.type.CollectionType",
"org.javers.core.metamodel.type.ContainerType",
"org.javers.core.metamodel.type.CustomComparableType",
"org.javers.core.metamodel.type.CustomType",
"org.javers.core.metamodel.type.DehydratedTypeFactory",
"org.javers.core.metamodel.type.DuckType",
"org.javers.core.metamodel.type.EntityType",
"org.javers.core.metamodel.type.EntityTypeFactory",
"org.javers.core.metamodel.type.EnumerableType",
"org.javers.core.metamodel.type.IgnoredType",
"org.javers.core.metamodel.type.JaversType",
"org.javers.core.metamodel.type.KeyValueType",
"org.javers.core.metamodel.type.ListAsSetType",
"org.javers.core.metamodel.type.ListType",
"org.javers.core.metamodel.type.ManagedType",
"org.javers.core.metamodel.type.MapContentType",
"org.javers.core.metamodel.type.MapType",
"org.javers.core.metamodel.type.OptionalType",
"org.javers.core.metamodel.type.ParametrizedDehydratedType",
"org.javers.core.metamodel.type.PrimitiveOrValueType",
"org.javers.core.metamodel.type.PrimitiveType",
"org.javers.core.metamodel.type.SetType",
"org.javers.core.metamodel.type.ShallowReferenceType",
"org.javers.core.metamodel.type.TokenType",
"org.javers.core.metamodel.type.TypeFactory",
"org.javers.core.metamodel.type.TypeMapper",
"org.javers.core.metamodel.type.TypeMapper",
"org.javers.core.metamodel.type.TypeMapper",
"org.javers.core.metamodel.type.TypeMapperEngine",
"org.javers.core.metamodel.type.TypeMapperLazy",
"org.javers.core.metamodel.type.TypeMapperLazy",
"org.javers.core.metamodel.type.TypeMapperModule",
"org.javers.core.metamodel.type.UnknownType",
"org.javers.core.metamodel.type.ValueObjectType",
"org.javers.core.metamodel.type.ValueType",
"org.javers.core.snapshot.ChangedCdoSnapshotsFactory",
"org.javers.core.snapshot.SnapshotDiffer",
"org.javers.core.snapshot.SnapshotFactory",
"org.javers.core.snapshot.SnapshotGraphFactory",
"org.javers.guava.MultimapChangeAppender",
"org.javers.guava.MultisetChangeAppender",
"org.javers.repository.api.JaversExtendedRepository",
"org.javers.repository.jql.ChangesQueryRunner",
"org.javers.repository.jql.QueryCompiler",
"org.javers.repository.jql.QueryRunner",
"org.javers.repository.jql.ShadowQueryRunner",
"org.javers.repository.jql.ShadowStreamQueryRunner",
"org.javers.repository.jql.SnapshotQueryRunner",
"org.javers.shadow.ShadowFactory",
}
)
public class QuarkusJaversConfig {}
【讨论】: