Class OnecAutoConfiguration

java.lang.Object
org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration
com.onec.spring.OnecAutoConfiguration
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

@AutoConfiguration(after=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration.class) @EnableConfigurationProperties(OnecProperties.class) @ConditionalOnBean(javax.sql.DataSource.class) public class OnecAutoConfiguration extends org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration
  • Constructor Details

    • OnecAutoConfiguration

      public OnecAutoConfiguration()
  • Method Details

    • onecNamingStrategy

      @Bean public org.springframework.data.relational.core.mapping.NamingStrategy onecNamingStrategy()
    • userConverters

      protected List<?> userConverters()
      Overrides:
      userConverters in class org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration
    • jdbcMappingContext

      public org.springframework.data.jdbc.core.mapping.JdbcMappingContext jdbcMappingContext(Optional<org.springframework.data.relational.core.mapping.NamingStrategy> namingStrategy, org.springframework.data.jdbc.core.convert.JdbcCustomConversions customConversions, org.springframework.data.relational.RelationalManagedTypes jdbcManagedTypes)
      Overrides:
      jdbcMappingContext in class org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration
    • jdbcConverter

      public org.springframework.data.jdbc.core.convert.JdbcConverter jdbcConverter(org.springframework.data.jdbc.core.mapping.JdbcMappingContext mappingContext, org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations operations, @Lazy org.springframework.data.jdbc.core.convert.RelationResolver relationResolver, org.springframework.data.jdbc.core.convert.JdbcCustomConversions conversions, org.springframework.data.relational.core.dialect.Dialect dialect)
      Replaces the default JdbcConverter with OnecJdbcConverter, which maps framework enums to their UUID column type so @Enumeration attributes persist through repository.save(...) (issue #26). The body mirrors AbstractJdbcConfiguration.jdbcConverter(org.springframework.data.jdbc.core.mapping.JdbcMappingContext, org.springframework.jdbc.core.namedparam.NamedParameterJdbcOperations, org.springframework.data.jdbc.core.convert.RelationResolver, org.springframework.data.jdbc.core.convert.JdbcCustomConversions, org.springframework.data.relational.core.dialect.Dialect) so all other behaviour is unchanged.
      Overrides:
      jdbcConverter in class org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration
    • schemaInitializer

      @Bean public SchemaInitializer schemaInitializer(DataSource dataSource, OnecProperties properties, org.springframework.context.ApplicationContext context, org.springframework.beans.factory.ObjectProvider<AppMigration> migrations)
    • onecMetrics

      @Bean public OnecMetrics onecMetrics(org.springframework.beans.factory.ObjectProvider<io.micrometer.core.instrument.MeterRegistry> meterRegistry)
    • secretCipher

      @Bean public SecretCipher secretCipher(OnecProperties properties)
    • onecBeforeConvertCallback

      @Bean public OnecBeforeConvertCallback onecBeforeConvertCallback(MetadataRegistry registry, NumberGenerator numberGenerator, SecretCipher secretCipher, OnecMetrics metrics)
    • entityChangePublisher

      @Bean public EntityChangePublisher entityChangePublisher(org.springframework.context.ApplicationEventPublisher applicationEventPublisher)
      Bridges the framework's EntityChangePublisher SPI onto Spring's ApplicationEventPublisher, so a repository.save/ delete publishes an EntityChangedEvent that application code can @EventListener — the same event the generic controllers emit, so both write paths are observable through one hook (issues #28, #29).
    • clusterEventBus

      @Bean @ConditionalOnMissingBean(ClusterEventBus.class) public ClusterEventBus clusterEventBus()
      Local-only fallback ClusterEventBus. onec-cluster-starter supplies a Postgres LISTEN/NOTIFY bus (its auto-configuration is ordered before this one, so its @ConditionalOnMissingBean bean registers first and this one backs off); an application may override either with its own bean. With this no-op default, the cluster relay/bridge are inert and single-node behaviour is unchanged.
    • clusterEntityChangeRelay

      @Bean public ClusterEntityChangeRelay clusterEntityChangeRelay(ClusterEventBus clusterEventBus)
      Publish side of cross-node live-UI sync: relays each EntityChangedEvent onto the ClusterEventBus for peer nodes (no-op with the default bus).
    • onecAfterSaveCallback

      @Bean public OnecAfterSaveCallback onecAfterSaveCallback(OutboxWriter outboxWriter, MetadataRegistry registry, SecretCipher secretCipher, EntityChangePublisher entityChangePublisher, OnecMetrics metrics)
    • onecAfterConvertCallback

      @Bean public OnecAfterConvertCallback onecAfterConvertCallback(MetadataRegistry registry, SecretCipher secretCipher)
    • onecBeforeDeleteCallback

      @Bean public OnecBeforeDeleteCallback onecBeforeDeleteCallback(OutboxWriter outboxWriter, MetadataRegistry registry, EntityChangePublisher entityChangePublisher)
    • numberGenerator

      @Bean public NumberGenerator numberGenerator(org.jdbi.v3.core.Jdbi jdbi)
    • refResolver

      @Bean public RefResolver refResolver(org.springframework.context.ApplicationContext applicationContext)
    • metadataRegistry

      @Bean public MetadataRegistry metadataRegistry(OnecProperties properties, org.springframework.context.ApplicationContext context)
    • jdbi

      @Bean public org.jdbi.v3.core.Jdbi jdbi(DataSource dataSource)
    • queryEngine

      @Bean public QueryEngine queryEngine(org.jdbi.v3.core.Jdbi jdbi, MetadataRegistry metadataRegistry)
      The unified type-safe query layer: a QueryEngine over catalogs, documents, and registers with Ref-navigation joins. Apps inject it to run query.from(...).select(...).where(...).fetch() queries.
    • outboxWriter

      @Bean public OutboxWriter outboxWriter(org.jdbi.v3.core.Jdbi jdbi)
    • registerPersistenceMap

      @Bean public Map<Class<?>,RegisterPersistence<?>> registerPersistenceMap(org.jdbi.v3.core.Jdbi jdbi, MetadataRegistry registry)
    • registerRepositoryImplMap

      @Bean public Map<Class<?>,RegisterRepositoryImpl<?>> registerRepositoryImplMap(Map<Class<?>,RegisterPersistence<?>> persistenceMap)
    • postEventPublisher

      @Bean public PostEventPublisher postEventPublisher(org.springframework.context.ApplicationEventPublisher applicationEventPublisher)
      Bridges the framework's PostEventPublisher SPI onto Spring's ApplicationEventPublisher, so a successful post/unpost publishes a DocumentPostedEvent/ DocumentUnpostedEvent that application code can @EventListener. This is the Spring-bean-reachable "after post" hook (no Kafka outbox required).
    • postingService

      @Bean public PostingService postingService(org.jdbi.v3.core.Jdbi jdbi, MetadataRegistry registry, Map<Class<?>,RegisterRepositoryImpl<?>> repositoryImplMap, OutboxWriter outboxWriter, PostEventPublisher postEventPublisher, OnecMetrics metrics)
    • informationRegisterRepositoryMap

      @Bean public Map<Class<?>,InformationRegisterRepositoryImpl<?>> informationRegisterRepositoryMap(org.jdbi.v3.core.Jdbi jdbi, MetadataRegistry registry)
    • constantPersistence

      @Bean public ConstantPersistence constantPersistence(org.jdbi.v3.core.Jdbi jdbi)
    • constantManager

      @Bean public ConstantManager constantManager(ConstantPersistence constantPersistence, MetadataRegistry registry)
    • backgroundJobs

      @Bean @ConditionalOnBean(org.jobrunr.scheduling.JobScheduler.class) public BackgroundJobs backgroundJobs(org.jobrunr.scheduling.JobScheduler jobScheduler)
    • scheduledJobRegistrar

      @Bean @ConditionalOnBean(org.jobrunr.scheduling.JobScheduler.class) public ScheduledJobRegistrar scheduledJobRegistrar(org.springframework.context.ApplicationContext applicationContext, org.jobrunr.scheduling.JobScheduler jobScheduler)
    • layoutSet

      @Bean public LayoutSet layoutSet(List<Layout> layouts)
    • uiLayout

      @Bean public UiLayout uiLayout(LayoutSet layoutSet)
      The default (Viewport.DESKTOP) layout, kept as a bean for consumers that aren't viewport-aware (identity resolution, the metadata API).
    • uiLayoutResolver

      @Bean public UiLayoutResolver uiLayoutResolver(MetadataRegistry registry)
    • uiProfileResolver

      @Bean public UiProfileResolver uiProfileResolver()