Commit Graph

4505 Commits

Author SHA1 Message Date
Andy Wilkinson 5b8a9bbe90 Upgrade to Spock 1.0
Closes gh-2951
2015-05-14 17:04:10 +01:00
Andy Wilkinson 04c68427d8 Upgrade to Spring Plugin 1.2.0.RELEASE
Closes gh-2605
2015-05-14 17:00:53 +01:00
Andy Wilkinson 3abac59e9c Add dependency management for jackson-dataformat-csv
Closes gh-2760
2015-05-14 15:00:51 +01:00
Andy Wilkinson f3af9a81c7 Upgrade to HikariCP 2.3.7
Closes gh-2863
2015-05-14 14:56:03 +01:00
Andy Wilkinson aa1f84d037 Make OnBeanCondition package private again
It was accidentally made public in 45b579c.

Closes gh-2741
2015-05-14 14:42:43 +01:00
Andy Wilkinson 296a9d6cf0 Upgrade to Spring AMQP 1.5.0.M1
Closes gh-2946
2015-05-14 14:06:29 +01:00
Andy Wilkinson 291173ddc6 Upgrade to JsonPath 2.0.0
Closes gh-2720
2015-05-14 13:40:54 +01:00
Andy Wilkinson 84d3a34c49 Add CORS support to the actuator’s endpoints
This commit adds CORS support to the Actuator’s MVC endpoints. CORS
support is disabled by default and is only enabled once the
endpoints.cors.allowed-origins property has been set.

The new properties to control the endpoints’ CORS configuration are:

endpoints.cors.allow-credentials
endpoints.cors.allowed-origins
endpoints.cors.allowed-methods
endpoints.cors.allowed-headers
endpoints.cors.exposed-headers

The changes to enable Jolokia-specific CORS support (57a51ed) have been
reverted as part of this commit. This provides a consistent approach
to CORS configuration across all endpoints, rather than Jolokia using
its own configuration.

See gh-1987
Closes gh-2936
2015-05-14 11:39:53 +01:00
Stephane Nicoll b466229231 Restore proper customization of JCache CacheManager
Work in 1b3efd4 actually introduced a regression: if a CacheManager is
created via a custom configuration file, it is no longer post-processed.

This commit makes sure to also customize a CacheManager that was
created that way.

See gh-2848
2015-05-13 18:18:15 +02:00
Stephane Nicoll c0e9ed1e34 Fix typo 2015-05-13 18:11:42 +02:00
Andy Wilkinson 7a47c4b594 Add dependency management for org.apache.httpcomponents:httpcore
Without dependency management for org.apache.httpcomponents:httpcore,
it’s possible to get mismatched versions of httpcore and httpclient.

Closes gh-2941
2015-05-13 16:25:48 +01:00
Tommy Ludwig a88be00b6c Upgrade to Log4j2 version 2.2
Closes gh-2938
2015-05-13 14:18:57 +01:00
Davide Angelocola c82224831a Add dependency management for slf4j-simple
Closes gh-2934
2015-05-13 14:16:32 +01:00
Andy Wilkinson 5717c38c63 Upgrade to Apache HTTP Client 4.4.1
Closes gh-2941
2015-05-13 14:02:03 +01:00
Andy Wilkinson a012538955 Merge branch 'feature/metrics' 2015-05-13 13:56:10 +01:00
Dave Syer 64af3272a1 Extract metric export into a separate autoconfig class
This avoids a potential problems with ordering between Dropwizard and
normal repository configuration. A Dropwizard sample has been added to
verify the behaviour.
2015-05-13 13:56:03 +01:00
Dave Syer 7be13b28bd Add tests for new features 2015-05-13 13:56:03 +01:00
Dave Syer 270d5e3205 Add @ActuatorMetricRepository to qualify the "native" repository
Primarily when it is needed for metric export.
2015-05-13 13:56:02 +01:00
Dave Syer 2f2750e713 Extract metric writers into a MetricExporters composite
Adds a separate exporter per MetricWriter and allows individual
configuration of exporters for fine-grained control of schedules
and patterns etc.
2015-05-13 13:56:02 +01:00
Dave Syer 0ce72105b9 Add JMX to Redis sample 2015-05-13 13:56:02 +01:00
Dave Syer 089b1d05dc Add support for sendLatest=true/false in exporter
Also fix bug in includes/excludes
2015-05-13 13:56:02 +01:00
Dave Syer 3fda744522 Add samples and tweak metrics reader/writers till they work 2015-05-13 13:56:02 +01:00
Dave Syer 60a4943520 Add support for metric export to OpenTSDB 2015-05-13 13:56:02 +01:00
Dave Syer 18928a62df Add sample for Redis metric exporter 2015-05-13 13:56:02 +01:00
Dave Syer a32c530c36 Add @Primary to default InMemoryMetricRepository if there is one 2015-05-13 13:56:02 +01:00
Dave Syer 2aaf556a1c Ensure the default MetricWriter in Java 7 is not used in exporter 2015-05-13 13:56:02 +01:00
Dave Syer 0bd845d183 Add support for Statsd metric export 2015-05-13 13:56:02 +01:00
Dave Syer 0fde04d325 Add AggregateMetricReader able to aggregate counters and gauges
Different physical sources for the same logical metric just need to
publish them with a period-separated prefix, and this reader will
aggregate (by truncating the metric names, dropping the prefix).

Very useful (for instance) if multiple application instances are
feeding to a central (e.g. redis) repository and you want to
display the results. Useful in conjunction with a
MetricReaderPublicMetrics for hooking up to the /metrics endpoint.
2015-05-13 13:56:01 +01:00
Dave Syer 710423d176 Add JmxMetricWriter for exporting metric values to MBeans
User can add a @Bean of type JmxMetricWriter and get all values
automatically exported in a form that is usable in jconsole
or jvisualvm.
2015-05-13 13:56:01 +01:00
Dave Syer 5edc404a7e Add support for includes and excludes patterns in MetricCopyExporter
Also rename Codahale* to Dropwizard* and move them to a new package
2015-05-13 13:56:01 +01:00
Dave Syer 53a61474aa Add counter and gauge services based on in-memory buffers
This seems pretty efficient (approx 12M write/s as opposed to 2M with
the DefaultCounterService). N.B. there is no need to change most of
the rest of the metrics stuff because metrics are write-often, read-
seldom, so we don't need high performance reads as much.

The Spring Integration configuration and Dropwizard support has changed
a bit. Functionally very similar and probably opaque to users, but now
the messaging operates as an Exporter on a @Scheduled method, and
Dropwizard is a replacement [Gauge,Counter]Service.

Metrics are all
collected live in-memory (and can be very fast with Java 8), buffered
there and shipped out to a MessageChannel (if one exists with id
"metricsChannel") in a background thread.

We can still use Java 8 library APIs (like LongAdder) but to compile
to java 7 compatible byte code we have to forgo the use of lambdas :-(
and shorthand generics (<>).

Fixes gh-2682, fixes gh-2513 (for Java 8 and Dropwizard users).
2015-05-13 13:56:01 +01:00
Stephane Nicoll 1b3efd41f5 Expose caching-specific infrastructure
Expose the underlying cache infrastructure bean if Boot auto-configures
it. This is the case for ehCache, hazelcast and JCache. This change has
two side effects:

1. It is now possible to customize the underlying cache infrastructure
and let Boot only wrap it in the Spring's CacheManager abstraction. No
customizations are applied if the caching-specific service is customized
2. Such infrastructure is disposed when the application terminates as
it is now defined as `@Bean` and both `close()` and `shutdown()` methods
are invoked if present on the target type.

While the latter can be troublesome, we feel that a particular cache
instance is not meant to be shared and must be disposed when the
application terminates.

Closes gh-2848
2015-05-13 14:39:28 +02:00
Stephane Nicoll b20d11fe9c polish
Rework 155c60b7 to structure the code consistently, in particular with a more
natural order of attributes. Update test to use non-default values to ensure
that the customization has been applied.

See gh-2793
2015-05-13 14:08:17 +02:00
Eddú Meléndez 0b8fd67507 Add extra attributes to the init command
Update the CLI init command to expose additional attributes supported
by Spring Initializr. These are: groupId, artifactId, version, name,
description and language.

Closes gh-2793 and gh-2907
2015-05-13 14:07:11 +02:00
Andy Wilkinson d4dfa8d979 Polish 18453c0e
Document new configuration properties and remove redundant code
2015-05-13 08:51:01 +01:00
Andy Wilkinson 18453c0eb0 Allow JspServlet's init parameters to be configured via the environment
This commit adds support for configuring the JSP servlet’s init
parameters via the environment using server.jsp-servlet.init-parameters.*.
As part of this change the configuration of registerJspServlet and
jspServletClassName have been moved onto a new type, JspServlet, and the
existing setters on ConfigurableEmbeddedServletContainer have been 
deprecated. In addition to providing a model for configuring the JSP
servlet that’s consistent with the model for other configuration (SSL,
for example), this change also means that the class name and whether or
not the servlet is registered at all can now also be configured via the
environment.

Closes gh-2825
2015-05-12 14:20:26 +01:00
Andy Wilkinson 63a7b24d27 Fix test that was broken in b24e736c 2015-05-12 10:46:25 +01:00
Dave Syer b24e736cfe Add env var parameters to launch.script
Some of the features of the launch.script were not exposed for users
to be able to control at runtime. It now accepts things like
PID_FOLDER and LOG_FOLDER as environment variables, and also adopts
a clear naming convention where only the inputs are UPPER_CASE.
2015-05-12 10:23:44 +01:00
Andy Wilkinson 45c39cf121 Merge branch '1.2.x' 2015-05-11 17:26:45 +01:00
Andy Wilkinson fc31115668 Rely soley on underlying logger for isEnabled in Liquibase logger
Previously, CommonsLoggingLiquibaseLogger referred to its
configured level and the underlying Commons Logging log when
determining if logging was enabled for a particular level. This did
not work as intended as setLogLevel was never called leaving the
configured level stuck at its default value of INFO. As a result of
this any logging at levels below INFO would not be output,
irrespective of the configuration of the underlying logging framework.

This commit updates CommonsLoggingLiquibaseLogger to rely purely on
the Commons Logging log when determining whether or not logging for
a particular level is enabled. This brings the implementation into
line with liquibase-slf4j [1] which provides similar functionality,
albeit using SLF4J rather than Commons Logging

Closes gh-2916

[1] https://github.com/mattbertolini/liquibase-slf4j/blob/master/src/main/java/liquibase/ext/logging/slf4j/Slf4jLogger.java
2015-05-11 17:26:35 +01:00
Andy Wilkinson 3c484f8c15 Upgrade to dependency-management-plugin 0.5.1.RELEASE
Closes gh-2935
2015-05-11 16:52:10 +01:00
Andy Wilkinson 0bcbac6ce7 Merge branch '1.2.x' 2015-05-11 15:43:58 +01:00
Andy Wilkinson 4977e48ec5 Don’t rely on deduction of main application class when running tests
Previously, when SpringApplicationContextLoader created a
SpringApplication and used it to load the test’s application context,
it relied upon SpringApplication correctly deducing the application’s
main class. This would result in the wrong class being deduced as the
application’s main method is not called so the test runner’s main method
would be found instead.

This commit updates SpringApplicationContextLoader to explicitly set
SpringApplication’s main class to be the current test’s class. While
not strictly the application’s main class, it is the next best thing
available in this situation and prevents misleading log messages and
application versions from being logged.

Fixes gh-2930
2015-05-11 15:43:44 +01:00
Andy Wilkinson b9cc4ec501 Merge branch '1.2.x' 2015-05-11 12:22:20 +01:00
Andy Wilkinson 2053f4b2bf Clear JAVA_OPTS in CLI tests; avoid permsize config error with Java 8
When a Java 8 JVM is launched with -XX:MaxPermSize a warning message
is output indicating that the option will be ignored. This causes the
CLI tests that assert that no error output has been produced to fail.

This commit updates the CLI's integration test harness to remove
JAVA_OPTS from the environment of the CLI process. This prevents any
unwanted max perm size configuration from leaking into that
environment and breaking the build.
2015-05-11 12:22:02 +01:00
Andy Wilkinson 5b30716d94 Merge branch '1.2.x' 2015-05-11 11:45:11 +01:00
Andy Wilkinson a5e9a38b76 Clear JAVA_OPTS in CLI tests; avoid permsize config error with Java 8
When a Java 8 JMV is launched with -XX:MaxPermSize a warning message
is output indicating that the option will be ignored. This causes the
CLI tests that assert that no error output has been produced to fail.

This commit updates the CLI's integration test harness to remove
JAVA_OPTS from the environment of the CLI process. This prevents any
unwanted max perm size configuration from leaking into that
environment and breaking the build.
2015-05-11 11:12:22 +01:00
Mario A. Alvarez Garcia ca94bd4b94 Upgrade to Hibernate 4.3.9.Final
Closes gh-2928
2015-05-11 10:45:13 +01:00
Davide Angelocola 3179d278a2 Upgrade to SLF4J 1.7.12
Closes gh-2931
2015-05-11 10:45:08 +01:00
Andy Wilkinson d3d5b211ed Upgrade to Spring AMQP 1.4.5.RELEASE
Closes gh-2932
2015-05-11 10:38:01 +01:00