Releases: leangen/graphql-spqr
Releases · leangen/graphql-spqr
graphql-spqr-v0.9.9
[0.9.9] - 2018-12-13
Added
- Introduced full support for both schema and client directives #200
- Introduced
SchemaTransformer
to enable modifying field and argument definitions - Introduced
ResolverInterceptor
that can perform arbitrary logic around the invocation of the underlying method/field #180 #92 - Added a way to get all deserialized arguments
ResolutionEnvironment
#174 ArgumentInjectorParams#isPresent
to distinguish between the explicitly provided null input value vs no value provided #197
Changed
- Upgraded to graphql-java 11.0
- Significantly improved the performance of converter selection #194
Optional
arguments will be injected withOptional.empty
ifnull
is explicitly provided, andnull
is no value was given #197- All exceptions thrown during field resolution now bubble up unchanged (no longer wrapped in
RuntimeException
) - Try loading implementation classes using the parent class' loader first #177
- Renamed
withTypeAliasGroup
towithTypeSynonymGroup
Fixed
graphql-spqr-v0.9.8
[0.9.8] - 2018-08-19
Added
- Underlying
AnnotatedType
now accessible from the producedGraphQLType
#139 - Underlying
Operation
now accessible from the producedGraphQLFieldDefinition
#139 - String interpolation support (i18n / l10n) #162
- Jackson & Gson types (e.g.
ObjectNode
,JsonObject
etc) are now fully
supported out-of-the-box. #122 - Ability to use
Connection
s (Page
) in non spec-compliant queries #152 DefaultValueProvider
can now declare a constructor acceptingGlobalEnvironment
- It is now possible to explicitly treat chosen types as equal for the purposes
of name collision detection #124 #157 - Ability to register multiple
InputFieldBuilder
s #147 - Now using ClassGraph for implementation type auto discovery, bringing huge improvements in stability and performance #126 #161
- Input object fields can now have default values #131
- Existing Gson instance can now be used for configuration #132
- Ability to customize deprecation reason without annotations #133
- Ability to provide custom logic for implementation type auto discovery #135
- Support for
Iterable
- Support for
java.sql.Date/Time/Timestamp
#136
Changed
- [Breaking]
TypeMapper
interface changed to better support recursive use-cases #155 - Java primitives are now non-nullable by default #156
- [Breaking]
InputFieldDiscoveryStrategy
renamed toInputFieldBuilder
#147 - [Breaking]
InputFieldBuilder#getInputFields
now receivesInputFieldBuilderParams
- [Breaking]
ResolverBuilder
interface changed :
ResolverBuilder#buildQueryResolvers/buildMutationResolvers/buildSubscriptionResolvers
now receiveResolverBuilderParams
- [Breaking]
ResolverArgumentBuilder
interface changed:
ResolverArgumentBuilder#buildResolverArguments
now receivesArgumentBuilderParams
- [Breaking]
ArgumentInjector
interface changed :
ArgumentInjector#getArgumentValue
now receivesArgumentInjectorParams
#158 - [Breaking]
ArgumentInjector#supports
now receives the relatedParameter
in addition to itsAnnotatedType
- [Breaking]
OperationNameGenerator
interface changed :
OperationNameGenerator#generateQueryName/generateMutationName/generateSubscriptionName
now receiveOperationNameGeneratorParams
- [Breaking] All provided
OperationNameGenerator
s redesigned for reusability:
the newDefaultOperationNameGenerator
should be applicable to most usages MapToListTypeAdapter
now produces non-nullable entries #145- [Breaking]
GsonValueMapperFactory.Configurer
interface changed:
GsonValueMapperFactory.Configurer#configure
now receivesConfigurerParams
- [Breaking]
JacksonValueMapperFactory.Configurer
interface changed:
JacksonValueMapperFactory.Configurer#configure
now receivesConfigurerParams
- [Breaking] Abstract input types with a single concrete implementation no longer have a type discriminator field
- All dependencies upgraded, most notably graphql-java in now on 9.2
- Generator methods (
withXXX
) have more intuitive behavior #123 - Default deprecation reason changed to "Deprecated" for better GraphiQL compatibility
Deprecated
ClassUtils#findImplementations
is superseded byClassFinder
#135
Removed
BeanOperationNameGenerator
removed. Superseded byPropertyOperationNameGenerator
.MethodOperationNameGenerator
removed. Superseded byMemberOperationNameGenerator
.ReturnTypeOperationNameGenerator
removed, as it served no purpose.DelegatingOperationNameGenerator
removed. Superseded byDefaultOperationNameGenerator
.
Fixed
- Fixed
ScalarMap
deserialization error.ObjectScalarAdapter
is no longer anOutputConverter
. #106 #112 - Fixed type name collision going unnoticed when an input and an output type share a name #151
- Fixed generic type discovery for static inner classes
- Fixed double-quoting of IDs #134
- Fixed numerous problems in implementation auto discovery with fat JARs, new class format etc #111 #121 #150