You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Currently it is not possible to provide custom Jackson object mapper (e.g. one that includes java date time module) to be used by default function data fetcher (see code below). In order to use custom object mapper users have to create their own instance of data fetcher factory provider.
openclassKotlinDataFetcherFactoryProvider {
privateval defaultObjectMapper = jacksonObjectMapper()
/** * Retrieve instance of [DataFetcherFactory] that will be used to resolve target function. * * @param target target object that performs the data fetching or NULL if target object should be dynamically * retrieved during data fetcher execution from [graphql.schema.DataFetchingEnvironment] * @param kFunction Kotlin function being invoked*/openfunfunctionDataFetcherFactory(target:Any?, kFunction:KFunction<*>): DataFetcherFactory<Any> =DataFetcherFactories.useDataFetcher(
FunctionDataFetcher(
target = target,
fn = kFunction,
objectMapper = defaultObjectMapper)
)
...
}
To Reproduce
Create custom ObjectMapper in spring context (or customize it by using Jackson2ObjectMapperBuilderCustomizer) and notice that it is ignored by KotlinDataFetcherFactoryProvider as it creates its own instance anyway.
Expected behavior ObjectMapper from spring application context should be used by default data fetcher.
The text was updated successfully, but these errors were encountered:
… from spring context
Currently it is not possible to provide custom Jackson object mapper (e.g. one that includes java date time module) to be used by default function data fetcher. In order to use custom object mapper users have to create their own instance of data fetcher factory provider. This change updates the data fetcher factory provider to accept an instance of object mapper that will be used by the function data fetcher.
Resolves: ExpediaGroup#524
… from spring context (#525)
* [spring-server] default data fetcher should use Jackson object mapper from spring context
Currently it is not possible to provide custom Jackson object mapper (e.g. one that includes java date time module) to be used by default function data fetcher. In order to use custom object mapper users have to create their own instance of data fetcher factory provider. This change updates the data fetcher factory provider to accept an instance of object mapper that will be used by the function data fetcher.
Resolves: #524
* unit test for verifying proper object mapper is used
* convert KotlinDataFetcherFactoryProvider to interface
Previous default implmenetation is now renamed to SimpleKotlinDataFetcherFactoryProvider.
* add integration test to verify custom jackson bindings work with function data fetcher
* remove unnecessary val definition
dariuszkuc
added a commit
to dariuszkuc/graphql-kotlin
that referenced
this issue
Aug 5, 2022
… from spring context (ExpediaGroup#525)
* [spring-server] default data fetcher should use Jackson object mapper from spring context
Currently it is not possible to provide custom Jackson object mapper (e.g. one that includes java date time module) to be used by default function data fetcher. In order to use custom object mapper users have to create their own instance of data fetcher factory provider. This change updates the data fetcher factory provider to accept an instance of object mapper that will be used by the function data fetcher.
Resolves: ExpediaGroup#524
* unit test for verifying proper object mapper is used
* convert KotlinDataFetcherFactoryProvider to interface
Previous default implmenetation is now renamed to SimpleKotlinDataFetcherFactoryProvider.
* add integration test to verify custom jackson bindings work with function data fetcher
* remove unnecessary val definition
Library Version
2.0.0-SNAPSHOT
Describe the bug
Currently it is not possible to provide custom Jackson object mapper (e.g. one that includes java date time module) to be used by default function data fetcher (see code below). In order to use custom object mapper users have to create their own instance of data fetcher factory provider.
To Reproduce
Create custom
ObjectMapper
in spring context (or customize it by usingJackson2ObjectMapperBuilderCustomizer
) and notice that it is ignored byKotlinDataFetcherFactoryProvider
as it creates its own instance anyway.Expected behavior
ObjectMapper
from spring application context should be used by default data fetcher.The text was updated successfully, but these errors were encountered: