Class OnnoAutoConfiguration

java.lang.Object
org.springframework.data.jdbc.repository.config.AbstractJdbcConfiguration
su.onno.spring.OnnoAutoConfiguration
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

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

    • OnnoAutoConfiguration

      public OnnoAutoConfiguration()
  • Method Details

    • onnoNamingStrategy

      @Bean public org.springframework.data.relational.core.mapping.NamingStrategy onnoNamingStrategy()
    • 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 OnnoJdbcConverter, 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, OnnoProperties properties, org.springframework.context.ApplicationContext context, org.springframework.beans.factory.ObjectProvider<AppMigration> migrations)
    • onnoMetrics

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

      @Bean public SecretCipher secretCipher(OnnoProperties properties)
    • deletionAwareFinderValidator

      @Bean public DeletionAwareFinderValidator deletionAwareFinderValidator(org.springframework.context.ApplicationContext context, OnnoProperties properties)
      Boot-time guardrail that flags catalog/document repository finders which may return soft-deleted rows into business logic (see DeletionAwareFinderValidator). Controlled by onno.repository.deletion-check (warn default / strict / off).
    • onnoBeforeConvertCallback

      @Bean public OnnoBeforeConvertCallback onnoBeforeConvertCallback(MetadataRegistry registry, NumberGenerator numberGenerator, SecretCipher secretCipher, OnnoMetrics 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).
    • processEventPublisher

      @Bean public ProcessEventPublisher processEventPublisher(org.springframework.context.ApplicationEventPublisher applicationEventPublisher)
      Bridges durable process mutations onto Spring after their database transaction commits.
    • clusterEventBus

      @Bean @ConditionalOnMissingBean(ClusterEventBus.class) public ClusterEventBus clusterEventBus()
      Local-only fallback ClusterEventBus. onno-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).
    • clusterProcessTaskRelay

      @Bean public ClusterProcessTaskRelay clusterProcessTaskRelay(ClusterEventBus clusterEventBus)
      Relays audience-scoped process-task inbox invalidations to peer nodes.
    • onnoAfterSaveCallback

      @Bean public OnnoAfterSaveCallback onnoAfterSaveCallback(OutboxWriter outboxWriter, MetadataRegistry registry, SecretCipher secretCipher, EntityChangePublisher entityChangePublisher, OnnoMetrics metrics)
    • onnoAfterConvertCallback

      @Bean public OnnoAfterConvertCallback onnoAfterConvertCallback(MetadataRegistry registry, SecretCipher secretCipher)
    • onnoBeforeDeleteCallback

      @Bean public OnnoBeforeDeleteCallback onnoBeforeDeleteCallback(OutboxWriter outboxWriter, MetadataRegistry registry, EntityChangePublisher entityChangePublisher)
    • onnoAfterDeleteCallback

      @Bean public OnnoAfterDeleteCallback onnoAfterDeleteCallback(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(OnnoProperties properties, org.springframework.context.ApplicationContext context)
    • jdbi

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

      @Bean public ProcessDefinitions processDefinitions(org.springframework.beans.factory.ObjectProvider<ProcessDefinition<?,?>> definitions, org.springframework.beans.factory.ObjectProvider<ProcessDefinitionMigration<?,?,?,?>> migrations)
      Validates and indexes every application-provided typed process definition.
    • processPayloadCodec

      @Bean @ConditionalOnMissingBean(ProcessPayloadCodec.class) public ProcessPayloadCodec processPayloadCodec(org.springframework.beans.factory.ObjectProvider<com.fasterxml.jackson.databind.ObjectMapper> objectMapper)
      Application-configured Jackson boundary used by the core durable process runtime.
    • processEngine

      @Bean @ConditionalOnMissingBean(ProcessEngine.class) public ProcessEngine processEngine(org.jdbi.v3.core.Jdbi jdbi, ProcessDefinitions definitions, MetadataRegistry metadataRegistry, ProcessPayloadCodec payloadCodec, ProcessEventPublisher events)
      Durable transactional process runtime backed by the framework-managed process tables.
    • 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).
    • postedDocumentLoader

      @Bean @ConditionalOnMissingBean(PostedDocumentLoader.class) public PostedDocumentLoader postedDocumentLoader(MetadataRegistry registry, org.springframework.context.ApplicationContext context)
    • postingService

      @Bean public PostingService postingService(org.jdbi.v3.core.Jdbi jdbi, MetadataRegistry registry, Map<Class<?>,RegisterRepositoryImpl<?>> repositoryImplMap, OutboxWriter outboxWriter, PostEventPublisher postEventPublisher, PostedDocumentLoader postedDocumentLoader, OnnoMetrics 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)
    • processPendingWorkRegistrar

      @Bean @ConditionalOnBean(org.jobrunr.scheduling.JobScheduler.class) public ProcessPendingWorkRegistrar processPendingWorkRegistrar(ProcessEngine processEngine, org.jobrunr.scheduling.JobScheduler jobScheduler)
      Durable wake-up for due process timers and completed subprocess waits.
    • 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()