【问题标题】:Can't find javers integration for quarkus projects找不到 quarkus 项目的 javers 集成
【发布时间】:2023-01-10 21:50:27
【问题描述】:

我正在尝试将用于审计的 JaVers 集成到 quarkus 中,但几乎没有资源。 这甚至受支持吗? 任何人都可以指出我的资源吗?

【问题讨论】:

  • 一般来说,我们可以使用quarkus中的任何依赖,只要我们不进行原生编译即可。没有专门的 quarkus 或 quarkiverse 扩展,所以如果我们需要本地编译,我们可能必须自己编写扩展。

标签: quarkus javers


【解决方案1】:

从来没有听说过夸克斯。在 Javers 中肯定没有对它的特殊支持。 Javers 是开源的——如果你想在 javers 中创建这样的功能,请在此处免费打开一个新的设计讨论——https://github.com/javers/javers/discussions

【讨论】:

    【解决方案2】:

    我查看了 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 {}
    
    

    【讨论】:

      猜你喜欢
      • 2019-08-18
      • 2019-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-13
      • 1970-01-01
      • 2012-06-29
      • 1970-01-01
      相关资源
      最近更新 更多