Commit Graph

15269 Commits (d6ae4e48d8f7de38e55464f7bf3ba6322f49d47c)
 

Author SHA1 Message Date
Stephane Nicoll 886ee9c870 Polish 7 years ago
Stephane Nicoll 68cc373daa Polish 7 years ago
Stephane Nicoll 126f8783a2 Polish 7 years ago
Phillip Webb 80bba046a3 Fix broken javadoc import 7 years ago
Phillip Webb bda9b892b3 Add direct WebFlux and WebMvc endpoint support
Add `@ControllerEndpoint` and `@RestControllerEndpoint` annotations that
can be used to develop a Spring-only request mapped endpoint. Both
Spring MVC and Spring WebFlux are supported.

This feature is primarily for use when deeper Spring integration is
required or when existing Spring Boot 1.5 projects want to migrate to
Spring Boot 2.0 without re-writing existing endpoints. It comes at the
expense of portability, since such endpoints will be missing from
Jersey.

Fixes gh-10257
7 years ago
Phillip Webb 340ef52f78 Refactor endpoint path concerns
Create a `PathMappedEndpoint` interface that allows any `ExposedEndpoint`
to provide root path details. The `EndpointPathResolver` interface has
been renamed to `PathMapper` and is now only used during endpoint
discovery.

`EndpointPathProvider` has been replaced with `PathMappedEndpoints`
which simply finds relevant path mapped endpoints.

Fixes gh-10985
7 years ago
Phillip Webb 1d39feffea Overhaul actuator endpoint code
Refactor several areas of the actuator endpoint code in order to make
future extensions easier. The primary goal is to introduce the concept
of an `ExposableEndpoint` that has technology specific subclasses and
can carry additional data for filters to use. Many other changes have
been made along the way including:

* A new EndpointSupplier interface that allows cleaner separation of
  supplying vs discovering endpoints. This allows cleaner class names
  and allows for better auto-configuration since a user can choose to
  provide their own supplier entirely.

* A `DiscoveredEndpoint` interface that allows the `EndpointFilter`
  to be greatly simplified. A filter now doesn't need to know about
  discovery concerns unless absolutely necessary.

* Improved naming and package structure. Many technology specific
  concerns are now grouped in a better way. Related concerns are
  co-located and concepts from one area no longer leakage into another.

* Simplified `HandlerMapping` implementations. Many common concerns have
  been pulled up helping to create simpler subclasses.

* Simplified JMX adapters. Many of the intermediary `Info` classes have
  been removed. The `DiscoveredJmxOperation` is now responsible for
  mapping methods to operations.

* A specific @`HealthEndpointCloudFoundryExtension` for Cloud Foundry.
  The extension logic used to create a "full" health endpoint extension
  has been made explicit.

Fixes gh-11428
Fixes gh-11581
7 years ago
Phillip Webb dc935fba48 Polish 7 years ago
Madhura Bhave d9ff51ccd3 Add StaticResourceRequest for WebFlux Security
Closes gh-11040
7 years ago
Madhura Bhave 5e2cc02499 Move servlet specific security auto-config 7 years ago
Stephane Nicoll 5c164d850e Upgrade to Spring Kafka 2.1.1.RELEASE
Closes gh-11524
7 years ago
Andy Wilkinson cc450ccb02 Merge branch '1.5.x' 7 years ago
Andy Wilkinson 908fdba79c Upgrade to Neo4j Ogm 2.1.6
Closes gh-11694
7 years ago
Andy Wilkinson fedc4647e1 Use same InetAddress for client and server in endpoint tests
Previously, the server was created with out an explicitly configured
address. This lead to it using any local address which will prefer
IPv6 (::0) if it's available. By contrast, the client was created
with a base URL that specified localhost as the host. This meant the
the client would prefer to connect to IPv4. Normally this wouldn't
cause a problem as nothing would be listening on the port in the IPv4
stack so the client would then connect to the server being tested
using the IPv6 stack. However, if another process was listening to the
port in the IPv4 stack, the client would connect to the wrong server.
This could lead to an unexpected 404 response (if the wrong server
was an HTTP server) or a hang if it was not.

There's a chance, although I think it's unlikely, that the problem
described above is the cause of gh-10569. I think it's unlikely as
the hang tracked by gh-10569 only occurs when running the WebFlux
endpoint integration tests using Reactor Netty. If it was the problem
described above, there's no reason that I can think of why we
wouldn't have also seen it with the Web MVC endpoint integration
tests.
7 years ago
Brian Clozel fb7026b832 Add documentation for HTTP/2 support in Jetty
See gh-10902
7 years ago
Stephane Nicoll 890c28dfdc Merge pull request #11681 from igor-suhorukov:master
* pr/11681:
  Polish "Fix modifiers order"
  Fix modifiers order
7 years ago
Stephane Nicoll c926bed6f5 Polish "Fix modifiers order"
Closes gh-11681
7 years ago
igor-suhorukov e2d05607f2 Fix modifiers order
See gh-11681
7 years ago
Stephane Nicoll 322a629b53 Merge pull request #11690 from izeye:this
* pr/11690:
  Use this() in EndpointRequests
7 years ago
Johnny Lim 9d24186942 Use this() in EndpointRequests
Closes gh-11690
7 years ago
Brian Clozel 247b7f0842 Fix WebFlux default error view for null exception messages
This commit prevents NullPointerExceptions when the default HTML error
view is being rendered with a `null` message.

Fixes gh-11677
7 years ago
Phillip Webb 0b81f78a2a Revert "Create CloudFoundry-specific EndpointWebExtension"
This reverts commit 7189f426ed.
7 years ago
Phillip Webb fc29f54868 Make Context implement AnnotationConfigRegistry
Update `AnnotationConfigReactiveWebServerApplicationContext` to
implement `AnnotationConfigRegistry`.

Fixes gh-11686
7 years ago
Phillip Webb f3379668ac Polish 7 years ago
Phillip Webb 6d93573db0 Merge branch '1.5.x' 7 years ago
Phillip Webb 8e783cdae9 Polish 7 years ago
Stephane Nicoll ba6be4f22f Merge branch '1.5.x' 7 years ago
Stephane Nicoll 71ab5dd748 Restore proper handling of array types
Closes gh-11512
7 years ago
Stephane Nicoll 8704cf1fe7 Harmonize metric property names
See gh-11667
7 years ago
Stephane Nicoll efd941bbe0 Merge branch '1.5.x' 7 years ago
Stephane Nicoll 6086bc714f Fix json structure 7 years ago
Johnny Lim 97a51ddcaa Use the platform-specific line separator
See gh-11674
7 years ago
Stephane Nicoll e30d1da889 Merge pull request #11665 from izeye:line-separator
* pr/11665:
  Polish "Use System.lineSeparator()""
  Use System.lineSeparator()
7 years ago
Stephane Nicoll aa748cb0ef Polish "Use System.lineSeparator()""
Closes gh-11665
7 years ago
Johnny Lim d8c83af987 Use System.lineSeparator()
See gh-11665
7 years ago
Stephane Nicoll 7002507304 Polish 7 years ago
Stephane Nicoll 171cbc650c Merge pull request #10887 from acogoluegnes:rabbitmq-metrics-autoconfiguration-spring-boot-2
* pr/10887:
  Polish "Add auto-configuration for RabbitMQ metrics"
  Add auto-configuration for RabbitMQ metrics
7 years ago
Stephane Nicoll beaa49a2d6 Polish "Add auto-configuration for RabbitMQ metrics"
Closes gh-10887
7 years ago
Arnaud Cogoluègnes 58c8c4d56a Add auto-configuration for RabbitMQ metrics
See gh-10887
7 years ago
Andy Wilkinson 1d9f9716e9 Merge branch '1.5.x'
# Conflicts:
#	spring-boot-project/spring-boot-dependencies/pom.xml
7 years ago
Andy Wilkinson 330881db78 Start building against snapshots for Spring Data Ingalls SR10
See gh-11673
7 years ago
Andy Wilkinson 77fea8e328 Upgrade to Lombok 1.16.20
Closes gh-11672
7 years ago
Andy Wilkinson 8279fed385 Upgrade to Narayana 5.5.31.Final
Closes gh-11671
7 years ago
Andy Wilkinson 9721fa0951 Upgrade to Jaybird 2.2.14
Closes gh-11670
7 years ago
Andy Wilkinson a9e9e98710 Upgrade to Httpcore 4.4.9
Closes gh-11669
7 years ago
Andy Wilkinson 55b0547316 Upgrade to Undertow 1.4.22.Final
Closes gh-11668
7 years ago
Andy Wilkinson e1ec0562b2 Revert "Disable Reactor Netty's use of kqueue/epoll"
The failure continued to occur so this commit reverts commit
42c1ce65e9.

See gh-10569
7 years ago
Andy Wilkinson d5c9b9e12f Start building against snapshots for Spring Data Kay SR3
See gh-11666
7 years ago
Stephane Nicoll 5cb6c086b6 Rename micrometer instrumentation flags
Closes gh-11667
7 years ago
Stephane Nicoll 49b5fe0c29 Polish
As `validation-api` 2 is available by default, this commit adds the
integration test as a regular test case. The integration test is kept to
exercise what happens in a standard project.

See gh-11512
7 years ago