Commit Graph

15484 Commits

Author SHA1 Message Date
Jaromir Hamala b875b55711 Inject SpringManagedContext into Hazelcast configuration
This commit makes it possible to inject Spring managed beans into
objects instantiated by Hazelcast.

See gh-28801
2022-01-04 09:04:49 +01:00
Stephane Nicoll f26bee1196 Polish "Upgrade to Embedded Mongo 3.2.5"
See gh-28543
2022-01-04 08:39:11 +01:00
Julien Herr 679231c120 Upgrade to Embedded Mongo 3.2.5
See gh-28543
2022-01-03 17:59:26 +01:00
Brian Clozel c5817f21eb Add property for disabling GraphQL schema introspection
Prior to this commit, the GraphQL schema assembled by the
auto-configuration would provide no option for disabling the field
introspection.

While this feature is essential for many tools (including GraphiQL),
some prefer disabling it because this allows clients to gather
information about types and schema easily. This commit introduces a new
`spring.graphql.schema.introspection.enabled` configuration property.

Because potential attackers can still gather this information and this
feature is a core concern in the GraphQL spec, introspection is enabled
by default for Spring Boot applications.

Closes gh-29248
2022-01-03 17:36:58 +01:00
izeye 728206dba0 Polish GraphQL changes
See gh-29140
Closes gh-29194
2022-01-03 17:36:57 +01:00
Brian Clozel 0d616b8924 Fix WebGraphQlTester auto-registration for SpringBootTest
Prior to this commit, the `GraphQlTesterContextCustomizer` would
register a `WebGraphQlTester` instance as a `GraphQlTester` bean., only
exposing the `GraphQlTester` type. This is not in line with the
documentation and also does not register the bean definition with the
most specific type.
With this issue, a `@SpringBootTest` integration test will not be
injected with a `WebGraphQlTester` if it asks one.

This commit ensures that the `WebGraphQlTester` is registered as such
and that all related classes are renamed as a result.

Fixes gh-29250
2022-01-03 17:36:57 +01:00
Stephane Nicoll b81c0047f8 Polish "Log the reason that led Devtools to restart the app"
See gh-28495
2022-01-03 14:48:39 +01:00
Artur Signell 0769b33e2e Log the reason that led Devtools to restart the app
See gh-28495
2022-01-03 14:25:12 +01:00
Stephane Nicoll 91d7295c62 Polish "Add support for IdlePartitionEventInterval"
See gh-28290
2022-01-03 14:20:56 +01:00
Pascal Ayotte 9274baeb68 Add support for IdlePartitionEventInterval
See gh-28290
2022-01-03 14:16:19 +01:00
Stephane Nicoll 6b6da22f2c Polish "Add support for RabbitStreamTemplate"
See gh-28060
2022-01-03 14:02:27 +01:00
Eddú Meléndez 3952046132 Add support for RabbitStreamTemplate
See gh-28060
2022-01-03 13:30:10 +01:00
Stephane Nicoll cd0bb8e68f Upgrade to XmlUnit2 2.8.4
Closes gh-29247
2022-01-03 11:05:57 +01:00
Stephane Nicoll 67f8b0484d Upgrade to Undertow 2.2.14.Final
Closes gh-29246
2022-01-03 11:05:57 +01:00
Stephane Nicoll 714c1cc642 Upgrade to Thymeleaf 3.0.14.RELEASE
Closes gh-29244
2022-01-03 11:05:57 +01:00
Stephane Nicoll 0d8fc234b5 Upgrade to Spring WS 3.1.2
Closes gh-29243
2022-01-03 11:05:57 +01:00
Stephane Nicoll 0106e35b61 Upgrade to Spring Integration 5.5.7
Closes gh-29242
2022-01-03 11:05:56 +01:00
Stephane Nicoll 7890919958 Upgrade to Spring AMQP 2.4.1
Closes gh-29241
2022-01-03 11:05:56 +01:00
Stephane Nicoll ec0dd5bf33 Upgrade to SnakeYAML 1.30
Closes gh-29240
2022-01-03 11:05:56 +01:00
Stephane Nicoll b76691a4b0 Upgrade to SendGrid 4.8.1
Closes gh-29239
2022-01-03 11:05:56 +01:00
Stephane Nicoll 7a016a68f1 Upgrade to Selenium HtmlUnit 3.56.0
Closes gh-29238
2022-01-03 11:05:56 +01:00
Stephane Nicoll a2bed160f0 Upgrade to Selenium 4.1.1
Closes gh-29237
2022-01-03 11:04:53 +01:00
Stephane Nicoll 017d3dc402 Upgrade to Reactor Bom 2020.0.14
Closes gh-29236
2022-01-03 09:42:40 +01:00
Stephane Nicoll ddc7da7766 Upgrade to Rabbit AMQP Client 5.14.0
Closes gh-29235
2022-01-03 09:42:38 +01:00
Stephane Nicoll 2c322b67f1 Upgrade to Prometheus Client 0.14.1
Closes gh-29234
2022-01-03 09:42:37 +01:00
Stephane Nicoll 86a426035d Upgrade to Oracle Database 21.4.0.0.1
Closes gh-29233
2022-01-03 09:42:36 +01:00
Stephane Nicoll 2c82b18f3f Upgrade to Netty 4.1.72.Final
Closes gh-29232
2022-01-03 09:42:35 +01:00
Stephane Nicoll 61a65c0a93 Upgrade to MSSQL JDBC 9.4.1.jre8
Closes gh-29231
2022-01-03 09:42:34 +01:00
Stephane Nicoll df1a9b848b Upgrade to Mockito 4.2.0
Closes gh-29230
2022-01-03 09:42:33 +01:00
Stephane Nicoll 765c81c2f0 Upgrade to Logback 1.2.10
Closes gh-29229
2022-01-03 09:42:32 +01:00
Stephane Nicoll 179414c7f3 Upgrade to JUnit Jupiter 5.8.2
Closes gh-29227
2022-01-03 09:42:29 +01:00
Stephane Nicoll 78873706cf Upgrade to JDOM2 2.0.6.1
Closes gh-29221
2022-01-03 09:34:40 +01:00
Stephane Nicoll de22f47541 Upgrade to Jaybird 4.0.5.java8
Closes gh-29220
2022-01-03 09:34:40 +01:00
Stephane Nicoll 23a1dc9938 Upgrade to Jackson Bom 2.13.1
Closes gh-29219
2022-01-03 09:34:39 +01:00
Stephane Nicoll 18df80df17 Upgrade to HttpCore5 5.1.3
Closes gh-29218
2022-01-03 09:34:39 +01:00
Stephane Nicoll 46f17d8a50 Upgrade to HttpCore 4.4.15
Closes gh-29217
2022-01-03 09:34:39 +01:00
Stephane Nicoll 5a641fd50e Upgrade to HttpAsyncClient 4.1.5
Closes gh-29216
2022-01-03 09:34:39 +01:00
Stephane Nicoll 8da7be8e32 Upgrade to HtmlUnit 2.56.0
Closes gh-29215
2022-01-03 09:34:39 +01:00
Stephane Nicoll 464ea36ef5 Upgrade to Hibernate 5.6.3.Final
Closes gh-29214
2022-01-03 09:34:39 +01:00
Stephane Nicoll 9e443d772f Upgrade to Hazelcast 4.2.4
Closes gh-29213
2022-01-03 09:34:38 +01:00
Stephane Nicoll f354c4dac4 Upgrade to Ehcache3 3.9.9
Closes gh-29210
2022-01-03 09:34:38 +01:00
Stephane Nicoll a79a497f13 Upgrade to Dropwizard Metrics 4.2.7
Closes gh-29209
2022-01-03 09:34:38 +01:00
Stephane Nicoll 607508945c Upgrade to DB2 JDBC 11.5.7.0
Closes gh-29208
2022-01-03 09:34:38 +01:00
Stephane Nicoll e4c7251d23 Upgrade to Couchbase Client 3.2.4
Closes gh-29207
2022-01-03 09:34:38 +01:00
Stephane Nicoll 91ac6008e0 Upgrade to Caffeine 2.9.3
Closes gh-29206
2022-01-03 09:34:38 +01:00
Stephane Nicoll 2ac9381be4 Upgrade to Byte Buddy 1.12.6
Closes gh-29205
2022-01-03 09:34:37 +01:00
Stephane Nicoll 8a440b02a6 Upgrade to AssertJ 3.22.0
Closes gh-29204
2022-01-03 09:34:37 +01:00
Stephane Nicoll ecf620fb01 Prevent upgrade to Artemis 2.20.0+
See gh-29203
2022-01-03 09:34:37 +01:00
Stephane Nicoll e3b36b4c7e Upgrade to AppEngine SDK 1.9.93
Closes gh-29202
2022-01-03 09:34:37 +01:00
Stephane Nicoll dea7e34699 Switch bomr to any policy 2022-01-03 09:34:37 +01:00
Stephane Nicoll a20f959fbc Merge branch '2.6.x' into 2.7.x 2022-01-03 09:33:33 +01:00
Stephane Nicoll c469c41127 Merge branch '2.5.x' into 2.6.x 2022-01-03 09:33:23 +01:00
Stephane Nicoll 04ce0e65cd Polish assertion 2022-01-03 09:26:22 +01:00
Stephane Nicoll 9c868751d6 Merge branch '2.6.x' into 2.7.x
Closes gh-29199
2022-01-02 11:25:56 +01:00
Stephane Nicoll f54ea67ed6 Merge branch '2.5.x' into 2.6.x
Closes gh-29198
2022-01-02 11:25:46 +01:00
dreis2211 7a87d18b12 Update copyrights to 2022
See gh-29195
2022-01-02 11:24:58 +01:00
Stephane Nicoll de947e0800 Merge branch '2.6.x' into 2.7.x
Closes gh-29190
2021-12-30 07:33:26 +01:00
izeye d234681348 Fix default value for management.info.env.enabled in metadata
See gh-29187
2021-12-30 07:32:58 +01:00
Stephane Nicoll a85772be3f Upgrade to Log4j2 2.17.1
Closes gh-29185
2021-12-29 11:30:59 +01:00
Stephane Nicoll b345dddec0 Upgrade to Log4j2 2.17.1
Closes gh-29184
2021-12-29 11:30:25 +01:00
Stephane Nicoll 4b6aa81687 Upgrade to Log4j2 2.17.1
Closes gh-29183
2021-12-29 11:29:25 +01:00
Stephane Nicoll 2b140950e3 Merge branch '2.6.x' into 2.7.x
Closes gh-29176
2021-12-27 12:02:57 +01:00
izeye 7fbb5749d1 Polish
See gh-29157
2021-12-27 12:01:50 +01:00
Stephane Nicoll eb81cbf053 Merge branch '2.6.x' into 2.7.x
Closes gh-29173
2021-12-25 09:55:38 +01:00
Stephane Nicoll 8ee0640cc0 Merge branch '2.5.x' into 2.6.x
Closes gh-29172
2021-12-25 09:55:24 +01:00
izeye 9a6c1c531d Test our Gradle plugin against Gradle 7.3.3
See gh-29161
2021-12-25 09:52:14 +01:00
Stephane Nicoll 61c978e835 Upgrade to Spring Integration 5.5.7
Closes gh-28975
2021-12-21 17:11:43 +01:00
Stephane Nicoll 369046c37d Upgrade to Spring Integration 5.5.7
Closes gh-28966
2021-12-21 17:09:38 +01:00
Stephane Nicoll c7487749de Upgrade to Spring Session 2021.1.1
Closes gh-28974
2021-12-21 16:53:54 +01:00
Stephane Nicoll 2e67645fd5 Upgrade to Hazelcast 4.2.4
Closes gh-29146
2021-12-21 14:55:32 +01:00
Stephane Nicoll f3621702fb Upgrade to Hazelcast 4.1.8
Closes gh-29145
2021-12-21 14:24:50 +01:00
Stephane Nicoll a6350f2307 Upgrade to Spring Session 2021.0.4
Closes gh-28965
2021-12-21 14:00:18 +01:00
Brian Clozel 88ee4fab36 Polish
See gh-29140
2021-12-21 10:33:51 +01:00
Stephane Nicoll b1ab3b8898 Revert "Upgrade to Spring Kafka 2.7.10"
See gh-29114
2021-12-21 09:30:44 +01:00
Stephane Nicoll 669710efe0 Upgrade to Spring Security 5.6.1
Closes gh-28973
2021-12-21 09:06:49 +01:00
Stephane Nicoll af77ee007a Upgrade to Spring Kafka 2.8.1
Closes gh-29017
2021-12-21 09:06:22 +01:00
Stephane Nicoll 66c43685f5 Upgrade to Spring AMQP 2.4.1
Closes gh-28995
2021-12-21 09:05:46 +01:00
Stephane Nicoll 44a9145bf8 Upgrade to Spring Security 5.5.4
Closes gh-28964
2021-12-21 09:04:47 +01:00
Stephane Nicoll 6f8e1166c6 Upgrade to Spring Kafka 2.7.10
Closes gh-29114
2021-12-21 09:04:05 +01:00
Stephane Nicoll b2c2e6d0ca Upgrade to Spring AMQP 2.3.13
Closes gh-28994
2021-12-21 09:03:40 +01:00
Brian Clozel 22706057f0 Document Spring GraphQL support
This commit documents all the features added in the previous commits:
from the main infrastructure support, to testing and metrics.

See gh-29140
2021-12-21 08:34:56 +01:00
Brian Clozel d5603f2c98 Add GraphQL Spring Boot starter
This new starter brings the following dependencies:

* the base starter
* the JSON starter
* the Spring GraphQL dependency

See gh-29140
2021-12-21 08:34:40 +01:00
Brian Clozel 8e29eac887 Auto-configure GraphQL metrics
This commit auto-configures the metrics infrastructure for Spring
GraphQL.

See gh-29140
2021-12-21 08:34:32 +01:00
Brian Clozel a7839bc9b9 Add Metrics support for Spring GraphQL
This commit adds the required infrastructure for instrumenting the
GraphQL engine and datafetchers in order to collect metrics.

With this infrastructure, we can collect metrics such as:

* "graphql.request", a timer for GraphQL query
* "graphql.datafetcher", a timer for GraphQL datafetcher calls
* "graphql.request.datafetch.count", a distribution summary of
  datafetcher count per query
* "graphql.error", an error counter

See gh-29140
2021-12-21 08:34:24 +01:00
Brian Clozel a34308e5f7 Add GraphQlTest slice
This commit adds the `@GraphQlTest` annotation which brings a new type
of sliced test for GraphQL applications. This considers all the required
infrastructure brought by `@AutoConfigureGraphQl`, but also brings
application components like `@Controller` beans and
`RuntimeWiringConfigurer`.

With this type of test, we'll only initialize a minimal setup for
testing a set of Controllers, without involving any transport-related
component.

See gh-29140
2021-12-21 08:34:15 +01:00
Brian Clozel c0707e4f5b Auto-configure GraphQlTester
This commit adds the required infrastructure to auto-configure a
`GraphQlTester` or `WebGraphQlTester` in Spring Boot tests.
Specific annotations like `AutoConfigureGraphQlTester` and
`AutoConfigureWebGraphQlTester` will contribute pre-configured beans for
testing a GraphQL with the tester.

This also ships a `ContextCustomize` for contributing a `GraphQlTester`
in the case of a full `@SpringBootTest` integration test against a live
server.

See gh-29140
2021-12-21 08:34:06 +01:00
Brian Clozel 9a92a9c91d Add AutoConfigureGraphQl test annotation
This commit adds the `@AutoConfigureGraphQl` test annotation. It can be
used to import the relevant auto-configurations when testing a GraphQL
application.
Currently, it will get the main `GraphQlAutoConfiguration`, but also
what's required for configuring codecs and validation support.

See gh-29140
2021-12-21 08:34:00 +01:00
Brian Clozel 6dbcd0e95e Auto-configure security for Spring GraphQL
This commit configures security features for Spring GraphQL.
In the case of both MVC and WebFlux, this contributes
`DataFetcherExceptionResolver` instances to resolve security exceptions
and expose them as proper errors in the GraphQL response.

For MVC only, this also configures a
`SecurityContextThreadLocalAccessor`. This component ensures that the
security context is propagated between `ThreadLocal` and the Reactor
asynchronous execution.

See gh-29140
2021-12-21 08:33:50 +01:00
Brian Clozel 9954b4c63e Auto-configure Query* support for GraphQL
This commit auto-configures Spring Data Querydsl and QueryByExample
support for Spring GraphQL.

See gh-29140
2021-12-21 08:33:43 +01:00
Brian Clozel ce6747ccd6 Enable GraphiQL UI by default with Devtools
GraphiQL is useful when working on a GraphQL API - it allows
developers to craft queries and test newly developed feature. This
is not enabled by default, as this should not be exposed in production
without the developer's knowledge.

This commit flips this value when Spring Boot devtools is active for a
better developer experience.

See gh-29140
2021-12-21 08:33:31 +01:00
Brian Clozel 6ef1ed0dd0 Auto-configure GraphQL WebSocket endpoint
This commit auto-configures a GraphQL WebSocket endpoint for both Spring
MVC and Spring WebFlux. This is only enabled if the required libraries
are on the classpath and if the `"spring.graphql.websocket.path"`
property is defined.

See gh-29140
2021-12-21 08:33:25 +01:00
Brian Clozel 4ef9b9e3e5 Auto-configure CORS options for GraphQL web endpoints
This commit adds `"spring.graphql.cors.*"` configuration properties to
customize the CORS configuration for GraphQL web endpoints.

See gh-29140
2021-12-21 08:33:19 +01:00
Brian Clozel 0099460155 Auto-configure graphiql endpoint
Spring GraphQL ships with a static version of the graphiql IDE for
exploring and querying GraphQL endpoints.
See https://github.com/graphql/graphiql for more information.

This commit auto-configures the GraphiQL handler for both MVC and
WebFlux and points GraphiQL to the GraphQL HTTP endpoint exposed by the
application. This feature is disabled by default and can be switched on
with "spring.graphql.graphiql.enabled=true".

See gh-29140
2021-12-21 08:33:11 +01:00
Brian Clozel ff9a421786 Auto-configure schema printer endpoint
This commit configuresa new endpoint for printing in text format the
resolved GraphQL schema.
This endpoint is exposed by default under "/graphql/schema" and must be
enabled with "spring.graphql.schema.printer=true".

See gh-29140
2021-12-21 08:33:05 +01:00
Brian Clozel b38d04556e Auto-configure HTTP transport for MVC and WebFlux
This commit adds two new auto-configuration classes for Spring GraphQL
support. Once the base GraphQL infrastructure is in place, we can now
expose the `GraphQlService` over an HTTP transport.

Spring GraphQL supports both MVC and WebFlux, so this commit ships with
one auto-configuration for each.
Developers can configure the HTTP path where the GraphQL resource is
exposed using the `spring.graphql.path` configuration property (this
defaults to `"/graphql"`).

See gh-29140
2021-12-21 08:32:56 +01:00
Brian Clozel 5cf0a4db94 Add FailureAnalyzer for InvalidSchemaLocationsException
This commit adds a new `FailureAnalyzer` for exceptions thrown when no
GraphQL schema file could be found.
This lists configured locations (with `"classpath:..."` notation) and
also resolved locations - this helps developers figure out how the
pattern are resolved and why schema files cannot be found.

See gh-29140
2021-12-21 08:32:48 +01:00
Brian Clozel de808834f5 Auto-configure Spring GraphQL base infrastructure
This commit adds the auto-configuration for setting up the base Spring
GraphQL infrastructure. Because GraphQL doesn't depend on any particular
transport, we must have a separate configuration for creating:

* the `GraphQlSource`, which holds the schema and the `GraphQL` instance
* the `GraphQlService` for executing incoming requests
* the `BatchLoaderRegistry` for batch loading support
* the `AnnotatedControllerConfigurer` for supporting the annotated
  controllers programming model

This comes with a starting point for the `"spring.graphql.*"`
configuration properties; we can now configure the locations and file
extensions of GraphQL schema files we should load and configure at
startup.

See gh-29140
2021-12-21 08:32:37 +01:00
Brian Clozel e5e157528b Add dependency management for Spring GraphQL
This commit adds dependency management in Spring Boot for Spring GraphQL
and GraphQL Java.

See gh-29140
2021-12-21 08:32:09 +01:00
Scott Frederick 29ad84714a Merge branch '2.6.x' into 2.7.x
Closes gh-29144
2021-12-20 14:00:24 -06:00
Scott Frederick b3a304fbe7 Merge branch '2.5.x' into 2.6.x
Closes gh-29143
2021-12-20 14:00:06 -06:00