Skip to content

Commit

Permalink
feat: add introspectors to spring auto configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
jbl428 committed Nov 12, 2023
1 parent 04cef12 commit 581d5d3
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.linecorp.kotlinjdsl.support.spring.batch.javax.autoconfigure
import com.linecorp.kotlinjdsl.render.RenderContext
import com.linecorp.kotlinjdsl.render.jpql.JpqlRenderContext
import com.linecorp.kotlinjdsl.render.jpql.JpqlRenderModule
import com.linecorp.kotlinjdsl.render.jpql.introspector.JpqlIntrospector
import com.linecorp.kotlinjdsl.render.jpql.serializer.JpqlSerializer
import com.linecorp.kotlinjdsl.support.spring.batch.javax.item.database.orm.KotlinJdslQueryProviderFactory
import org.springframework.boot.autoconfigure.AutoConfiguration
Expand All @@ -15,14 +16,21 @@ import org.springframework.context.annotation.Bean
open class KotlinJdslAutoConfiguration {
@Bean
@ConditionalOnMissingBean
open fun jpqlRenderContext(serializers: List<JpqlSerializer<*>>): JpqlRenderContext {
val userDefinedSerializers = object : JpqlRenderModule {
open fun jpqlRenderContext(
serializers: List<JpqlSerializer<*>>,
introspectors: List<JpqlIntrospector>,
): JpqlRenderContext {
val userDefinedModule = object : JpqlRenderModule {
override fun setupModule(context: JpqlRenderModule.SetupContext) {
context.addAllSerializer(serializers.reversed())

introspectors.reversed().forEach {
context.prependIntrospector(it)
}
}
}

return JpqlRenderContext().registerModules(userDefinedSerializers)
return JpqlRenderContext().registerModules(userDefinedModule)
}

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.linecorp.kotlinjdsl.support.spring.batch.autoconfigure
import com.linecorp.kotlinjdsl.render.RenderContext
import com.linecorp.kotlinjdsl.render.jpql.JpqlRenderContext
import com.linecorp.kotlinjdsl.render.jpql.JpqlRenderModule
import com.linecorp.kotlinjdsl.render.jpql.introspector.JpqlIntrospector
import com.linecorp.kotlinjdsl.render.jpql.serializer.JpqlSerializer
import com.linecorp.kotlinjdsl.support.spring.batch.item.database.orm.KotlinJdslQueryProviderFactory
import org.springframework.boot.autoconfigure.AutoConfiguration
Expand All @@ -15,14 +16,21 @@ import org.springframework.context.annotation.Bean
open class KotlinJdslAutoConfiguration {
@Bean
@ConditionalOnMissingBean
open fun jpqlRenderContext(serializers: List<JpqlSerializer<*>>): JpqlRenderContext {
val userDefinedSerializers = object : JpqlRenderModule {
open fun jpqlRenderContext(
serializers: List<JpqlSerializer<*>>,
introspectors: List<JpqlIntrospector>,
): JpqlRenderContext {
val userDefinedModule = object : JpqlRenderModule {
override fun setupModule(context: JpqlRenderModule.SetupContext) {
context.addAllSerializer(serializers.reversed())

introspectors.reversed().forEach {
context.prependIntrospector(it)
}
}
}

return JpqlRenderContext().registerModules(userDefinedSerializers)
return JpqlRenderContext().registerModules(userDefinedModule)
}

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import com.linecorp.kotlinjdsl.SinceJdsl
import com.linecorp.kotlinjdsl.render.RenderContext
import com.linecorp.kotlinjdsl.render.jpql.JpqlRenderContext
import com.linecorp.kotlinjdsl.render.jpql.JpqlRenderModule
import com.linecorp.kotlinjdsl.render.jpql.introspector.JpqlIntrospector
import com.linecorp.kotlinjdsl.render.jpql.serializer.JpqlSerializer
import com.linecorp.kotlinjdsl.support.spring.data.jpa.javax.repository.KotlinJdslJpqlExecutor
import com.linecorp.kotlinjdsl.support.spring.data.jpa.javax.repository.KotlinJdslJpqlExecutorImpl
Expand All @@ -20,15 +21,21 @@ open class KotlinJdslAutoConfiguration {
@Bean
@ConditionalOnMissingBean
@SinceJdsl("3.0.0")
open fun jpqlRenderContext(serializers: List<JpqlSerializer<*>>): JpqlRenderContext {
val userDefinedSerializers = object : JpqlRenderModule {
open fun jpqlRenderContext(
serializers: List<JpqlSerializer<*>>,
introspectors: List<JpqlIntrospector>,
): JpqlRenderContext {
val userDefinedModule = object : JpqlRenderModule {
override fun setupModule(context: JpqlRenderModule.SetupContext) {
context.addAllSerializer(serializers.reversed())

introspectors.reversed().forEach {
context.prependIntrospector(it)
}
}
}

return JpqlRenderContext()
.registerModules(userDefinedSerializers)
return JpqlRenderContext().registerModules(userDefinedModule)
}

@Bean
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import com.linecorp.kotlinjdsl.SinceJdsl
import com.linecorp.kotlinjdsl.render.RenderContext
import com.linecorp.kotlinjdsl.render.jpql.JpqlRenderContext
import com.linecorp.kotlinjdsl.render.jpql.JpqlRenderModule
import com.linecorp.kotlinjdsl.render.jpql.introspector.JpqlIntrospector
import com.linecorp.kotlinjdsl.render.jpql.serializer.JpqlSerializer
import com.linecorp.kotlinjdsl.support.spring.data.jpa.repository.KotlinJdslJpqlExecutor
import com.linecorp.kotlinjdsl.support.spring.data.jpa.repository.KotlinJdslJpqlExecutorImpl
Expand All @@ -20,15 +21,21 @@ open class KotlinJdslAutoConfiguration {
@Bean
@ConditionalOnMissingBean
@SinceJdsl("3.0.0")
open fun jpqlRenderContext(serializers: List<JpqlSerializer<*>>): JpqlRenderContext {
val userDefinedSerializers = object : JpqlRenderModule {
open fun jpqlRenderContext(
serializers: List<JpqlSerializer<*>>,
introspectors: List<JpqlIntrospector>,
): JpqlRenderContext {
val userDefinedModule = object : JpqlRenderModule {
override fun setupModule(context: JpqlRenderModule.SetupContext) {
context.addAllSerializer(serializers.reversed())

introspectors.reversed().forEach {
context.prependIntrospector(it)
}
}
}

return JpqlRenderContext()
.registerModules(userDefinedSerializers)
return JpqlRenderContext().registerModules(userDefinedModule)
}

@Bean
Expand Down

0 comments on commit 581d5d3

Please sign in to comment.