Commit Graph

480 Commits

Author SHA1 Message Date
Phillip Webb
2dc4f1df00 Polish 2018-05-21 21:32:42 -07:00
Stephane Nicoll
48cf025093 Polish 2018-05-18 13:42:45 +02:00
Stephane Nicoll
6893be5479 Make sure that RabbitMQ metrics are configured early
The ConnectionFactory can be used early in user configuration to
configure an `Exchange`. Such connection may not hold the proper
MetricCollector and can be cached, leading to missed metrics
information.

This commit moves the configuration of RabbitMQ metrics to a
BeanPostProcessor so that the proper MetricCollector is configured
before any connection is created.

Closes gh-12855
2018-05-18 11:54:11 +02:00
Madhura Bhave
05cf8229d9 Fix tests 2018-05-10 11:50:43 -07:00
Madhura Bhave
c937bb68a0 ServletEndpoints should take servletPath into account
Fixes gh-13106
2018-05-10 10:01:11 -07:00
Madhura Bhave
4ec87956f9 Fix EndpointRequest include/exclude for ServletEndpoints
Fixes gh-13089
2018-05-09 12:01:58 -07:00
Andy Wilkinson
e14a2e33ab Deprecate queue size property for StatsD metrics export
Closes gh-13108
2018-05-09 09:14:09 +01:00
Andy Wilkinson
c826310fd1 Polish 2018-05-09 08:44:15 +01:00
Andy Wilkinson
8ce4110966 Allow Jersey-based Actuator to be used with separate management port
Previously, when the Jersey-based Actuator was configure with a
separate management port, the resulting child context would fail to
start due to their being no ResourceConfigCustomizer beans available.

This commit updates the configuration so that the customizer's are
injected using an ObjectProvider and an empty list is used in the
event of their being no customizer beans. This aligns the child
context configuration class with JerseyAutoConfiguration which
already used this approach.

Closes gh-12975
2018-05-08 21:00:05 +01:00
Stephane Nicoll
9dccf5b895 Polish
See gh-13078
2018-05-07 14:48:56 +02:00
Phillip Webb
6556bb2e89 Fix checkstyle violations 2018-05-04 20:13:57 -07:00
Phillip Webb
975e986fef Polish 2018-05-04 20:06:27 -07:00
Madhura Bhave
469372c5ef Account for servlet path "/" in EndpointRequest
See gh-12934
2018-05-04 18:09:15 -07:00
Phillip Webb
6de479fe6a Polish 2018-05-04 16:08:05 -07:00
Phillip Webb
93046d058d Polish 2018-05-04 16:05:12 -07:00
Madhura Bhave
6855c5556d EndpointRequest should consider server.servlet.path
Fixes gh-12934
2018-05-04 16:03:31 -07:00
Phillip Webb
5b3cb8a698 Update copyright header year for changed files 2018-05-04 15:59:26 -07:00
Phillip Webb
6e09e497f2 Formatting 2018-05-04 12:06:19 -07:00
Phillip Webb
2d70a7ae5e Polish caught exception names
Prefer `ex` over `e`.
2018-05-03 22:43:32 -07:00
Phillip Webb
41efea51a7 Polish ternary expressions
Consistently format ternary expressions and always favor `!=` as the
the check.
2018-05-03 22:43:12 -07:00
Phillip Webb
e125085993 Merge branch '1.5.x' into 2.0.x 2018-05-03 12:43:50 -07:00
Johnny Lim
d8700522d3 Rename nested *AutoConfiguration classes to *Configuration
Closes gh-12989
2018-04-30 16:50:18 +02:00
Johnny Lim
a15319ee30 Remove ManagementServerProperties.addApplicationContextHeader
Closes gh-12926
2018-04-24 10:16:49 +02:00
dreis2211
2bbf438c36 Fix duplicate words in comments
Closes gh-12866
2018-04-16 08:09:40 +02:00
Stephane Nicoll
3c169b4e0a Fix bean name of EnvironmentEndpointWebExtension
Closes gh-12827
2018-04-11 11:34:44 +02:00
Johnny Lim
f03849d502 Polish
See gh-12812
2018-04-10 11:46:16 +02:00
Andy Wilkinson
8d5b9f37d5 Merge branch '1.5.x' 2018-04-09 17:59:53 +01:00
Jon Schneider
03158e2fd5 Upgrade to Micrometer 1.0.3
Closes gh-12767
2018-04-04 20:42:23 -07:00
Phillip Webb
685babc829 Polish "Use lambdas for map entry iteration where possible"
Closes gh-12626
2018-04-04 19:36:18 -07:00
igor-suhorukov
69bc19e0ca Use lambdas for map entry iteration where possible
See gh-12626
2018-04-04 19:36:10 -07:00
Phillip Webb
598e9bb842 Polish 2018-04-04 18:01:25 -07:00
Phillip Webb
ce9ca6ae70 Polish "Apply MeterRegistryCustomizer to composites"
Closes gh-12762
2018-04-04 16:00:53 -07:00
Jon Schneider
1fce462944 Apply MeterRegistryCustomizer to composites
Update `MeterRegistryConfigurer` to also apply customizers to
composite meter registries. Prior to this commit composites were
skipped due to the incorrect assumption that did not contain
their own state.

Closes gh-12762
2018-04-04 15:58:16 -07:00
Stephane Nicoll
7dbeaaa932 Polish "Remove HierarchicalNameMapper as a configured @Bean"
Closes gh-12683
2018-04-03 11:23:05 +02:00
Jon Schneider
8572a091b8 Remove HierarchicalNameMapper as a configured @Bean
HierarchicalNameMapper is not a component that can be shared amongst
multiple monitoring systems.

See gh-12683
2018-04-03 11:14:43 +02:00
Stephane Nicoll
7c36c00331 Fix default HierarchicalNameMapper implementation for Graphite
Closes gh-12557
2018-04-03 10:39:14 +02:00
Johnny Lim
4ab439856c Remove destroyMethod attribute in @Bean for MeterRegistry
Closes gh-12725
2018-04-03 10:14:13 +02:00
Madhura Bhave
270ee6dd2c Configure RequestContextFilter in mgmt context
Closes gh-12546
2018-04-02 11:16:46 -07:00
Andy Wilkinson
cca5c0d2ee Start building against Spring REST Docs 2.0.1 snapshots
See gh-12681
2018-03-29 14:22:55 +01:00
dreis2211
3b0f6e7168 Use Supplier variants of Assert methods
See gh-12630
2018-03-26 17:58:17 +02:00
Johnny Lim
c100510222 Remove value in @ConditionalOnMissingBean if possible
See gh-12604
2018-03-26 17:38:46 +02:00
Johnny Lim
625bf93598 Polish
See gh-12584
2018-03-26 17:33:25 +02:00
Johnny Lim
1e2e8b1d66 Rename expose to include
Closes gh-12555
2018-03-21 07:35:37 -04:00
Andy Wilkinson
72e36eadae Polish 2018-03-17 15:28:05 +00:00
Phillip Webb
c201c1dac1 Polish 2018-03-15 16:09:14 -07:00
Madhura Bhave
e6149fda1c Assert endpoints basePath starts with '/' or is empty
Fixes gh-12489
2018-03-15 11:39:37 -07:00
Vladimir Tsanev
bf433e7f17 Fix Javadoc for ServiceLevelAgreementBoundary
Closes gh-12492
2018-03-15 13:40:13 +01:00
dreis2211
8626daf135 Replace Mockito.times(0) with Mockito.never()
Closes gh-12475
2018-03-14 15:12:20 -07:00
Phillip Webb
a4b0be089d Polish 2018-03-14 14:05:26 -07:00
Andy Wilkinson
2f1b2e3ce2 Log summary of web-exposed endpoints during startup
Closes gh-12442
2018-03-13 14:55:51 +00:00
Andy Wilkinson
f758a4ddd5 Do not link to controller endpoints in Jersey-based Actuator
Closes gh-12463
2018-03-13 14:55:51 +00:00
dreis2211
a21ea612db Remove duplicated @author tags
Closes gh-12454
2018-03-13 08:51:17 +01:00
igor-suhorukov
93f9bd0a32 Polish
Closes gh-12450
2018-03-13 08:37:50 +01:00
Madhura Bhave
89e42d40c5 Provide security matchers for actuator links
Fixes gh-12353
2018-03-07 19:02:35 -08:00
Andy Wilkinson
317b51f2ad Make ApplicationContextRequestMatcher and subclasses thread-safe
Previously, when performing lazy initialisation of the context,
ApplicationContextRequestMatcher assigned the context field before it
called initialized. The context being non-null is used as the signal
that it’s ok to call a subclass’s matches method. If one thread checks
for a non-null context in between the field being assigned and
initialized being called on another thread, matches will be called
before the subclass is ready.

This commit closes the window for the race condition by only assigning
the context field once the subclass’s initialized method has been
called.

There is a secondary problem in each of the subclasses. Due to the use
of double-checked locking in ApplicationContextRequestMatcher, it’s
possible for a subclass’s matches method to be called by a thread that
has not synchronised on the context lock that’s held when initialized
is called and the delegate field is assigned. This means that the
value assigned to the field may not be visible to that thread.

This commit declares the delegate field of each
ApplicationContextRequestMatcher subclass as volatile to ensure that,
following initialisation, its value is guaranteed to be visible to
all threads.

Closes gh-12380
2018-03-07 11:37:01 +00:00
Madhura Bhave
e6eca04af2 Make EndpointRequestMatcher#excluding public
Fixes gh-12354
2018-03-05 16:07:46 -08:00
Johnny Lim
751c444166 Polish
See gh-12326
2018-03-03 12:25:41 +01:00
Madhura Bhave
1c27a8e6e2 Move tests to ApplicationContextRunner 2018-03-02 18:30:55 -08:00
Andy Wilkinson
01304959fa Polish "Remove redundant auto-configuration of SI Micrometer metrics"
Closes gh-12287
2018-02-28 17:45:32 +00:00
Gary Russell
ddd820af9a Remove redundant auto-configuration of SI Micrometer metrics
Spring Integration no longer requires a `MicrometerMetricsFactory` to
support Micrometer metrics so there's nothing for Boot to
auto-configure.

See gh-12287
2018-02-28 17:33:05 +00:00
Andy Wilkinson
c4c50b7c49 Only auto-configure LogbackMetrics when Logback is actually being used
Closes gh-12286
2018-02-28 17:20:04 +00:00
Phillip Webb
7f8bb4e8eb Allow EndpointRequest matching without path bean
Update `EndpointRequest` to that the `PathMappedEndpoints` bean is
optional. A missing bean is treated as if there are no path mapped
endpoints.

Fixes gh-12238
2018-02-27 21:05:35 -08:00
Phillip Webb
d66496787d Propagate exceptions in security matchers
Update `ApplicationContextRequestMatcher` and
`ApplicationContextServerWebExchangeMatcher` to use a supplier for
the context, rather than the context itself.

This allow exceptions to be propagated to subclasses which may choose
to deal with them.

See gh-12238
2018-02-27 16:29:14 -08:00
Phillip Webb
802cd856aa Remove test-autoconfigure dependency
Update `spring-boot-actuator-autoconfigure` so that it no longer has
a dependency on `spring-boot-test-autoconfigure`. This will allow us to
add test support for actuator concerns in the future if we need to.

Fixed gh-12270
2018-02-27 16:29:03 -08:00
Andy Wilkinson
dc36360155 Polish 2018-02-27 21:25:48 +00:00
Phillip Webb
3e4da3cc37 Polish 2018-02-27 12:53:01 -08:00
Andy Wilkinson
476b7087a7 Upgrade to Hikaricp 2.7.8
Closes gh-12252
2018-02-27 17:43:36 +00:00
Stephane Nicoll
0b46408846 Polish 2018-02-27 16:47:34 +01:00
Stephane Nicoll
b0f381bb6f Review conditions of ElasticsearchHealthIndicatorAutoConfiguration
Closes gh-12249
2018-02-27 16:37:59 +01:00
Phillip Webb
29c3be3590 Polish 2018-02-26 10:26:02 -08:00
Stephane Nicoll
306c79f0de Merge branch '1.5.x' 2018-02-26 18:03:32 +01:00
Stephane Nicoll
cd522dadcd Revert "Add Kafka health indicator"
Closes gh-12225
2018-02-26 15:46:35 +01:00
igor-suhorukov
98f4692c62 Polish
This commit changes invocations to immediately return the expression
instead of assigning it to a temporary variable. The method name should
be sufficient for callers to know exactly what will be returned.

Closes gh-12211
2018-02-25 10:59:02 +01:00
Stephane Nicoll
cb1eed42b8 Polish 2018-02-23 13:57:19 +01:00
Stephane Nicoll
e1fd9df7b9 Fix usage of management.server.add-application-context-header
Closes gh-12190
2018-02-23 13:57:02 +01:00
Stephane Nicoll
09ff815f00 Harmonize metadata
Closes gh-12177
2018-02-23 11:02:28 +01:00
Phillip Webb
4b9c3c137e Polish Collection.toArray
Consistently use `StringUtils.toStringArray`, `ClassUtils.toClassArray`
or zero length when converting collections to arrays.

Fixes gh-12160
2018-02-22 21:11:30 -08:00
Phillip Webb
cd5266ac03 Polish 2018-02-22 20:25:28 -08:00
Johnny Lim
2fe86da95b Use isTrue() and isFalse() for AssertJ
Closes gh-12170
2018-02-22 09:55:40 +01:00
Johnny Lim
50c07d0772 Polish
Closes gh-12156
2018-02-21 17:46:57 +01:00
Andy Wilkinson
e7176c63f5 Stop DataSource initialization from preventing Hikari instrumentation
Closes gh-12129
2018-02-21 10:32:41 +00:00
Stephane Nicoll
e7db69be7a Polish
See gh-11869
2018-02-21 07:39:40 +01:00
Phillip Webb
349987d9be Switch show details default to ShowDetails.NEVER
Closes gh-11869
2018-02-20 16:43:11 -08:00
Phillip Webb
46021928ba Rework common server customization
Update the configurable embedded web server factory interfaces to
extend `ConfigurableWebServerFactory` so that the can be used in a
`WebServerFactoryCustomizer`.

Extract server specific customization to their own auto-configuration
and align reactive/servlet server auto-configuration.

Closes gh-8573
2018-02-20 16:27:15 -08:00
Phillip Webb
aafa1e9615 Rename MetricsIntegrationAutoConfiguration
Rename `MetricsIntegrationAutoConfiguration` to
`IntegrationMetricsAutoConfiguration`.

Closes gh-12147
2018-02-20 16:25:51 -08:00
Phillip Webb
05faac2b09 Polish 2018-02-20 15:53:25 -08:00
Stephane Nicoll
a7cccac0d0 Remove deprecation note for property that was renamed in 2.0 2018-02-20 18:57:25 +01:00
Stephane Nicoll
20f104766b Add missing default values for enums 2018-02-20 17:33:32 +01:00
Stephane Nicoll
45476961c1 Polish
See gh-12129
2018-02-20 17:02:03 +01:00
Stephane Nicoll
0f75a9a9fe Rework Hikari metrics registration
This commits move the Hikari metrics registration to a BeanPostProcessor
as the Hikari datasource cannot be modified once its configuration has
been sealed (usually happens when `getConnection` is invoked on the
pool).

Closes gh-12129
2018-02-20 16:25:51 +01:00
Stephane Nicoll
784372e6b3 Polish "Auto-configure metrics for Hikari"
Closes gh-12129
2018-02-20 13:24:45 +01:00
Tommy Ludwig
05e1f22824 Auto-configure metrics for Hikari
HikariCP has metrics integration with Micrometer. This configures all
`HikariDataSource` beans with the `MicrometerMetricsTrackerFactory` if a
`MeterRegistry` is available.

See gh-12129
2018-02-20 13:22:42 +01:00
Andy Wilkinson
3e4baf744e Use role-based security to show details in the health endpoint
Closes gh-11869
2018-02-20 12:12:05 +00:00
Stephane Nicoll
f19b43bacc Polish "Consistent prefix for datasource pool metrics"
Closes gh-12127
2018-02-20 10:07:00 +01:00
Phillip Webb
20109e27be Add ApplicationConversionService and fix binder
Create a new `ApplicationConversionService` similar in design to the
DefaultFormattingConversionService from Spring Framework. The new
conversion service provides a central place for custom conversion logic
supported by Spring Boot.

Also replace the `BindingConversionService` with an internal
`BindConverter` class that now invokes the `SimpleTypeConverter`
directly. Binding for `@ConfigurationProperties` has been updated so
that any custom property editors registered with the BeanFactory can
be used.

Fixes gh-12095
2018-02-19 20:25:47 -08:00
igor-suhorukov
fe023817c7 Polish static finals
Closes gh-12083
2018-02-19 20:10:58 -08:00
Phillip Webb
adf22d6e4a Polish 2018-02-19 19:54:10 -08:00
Andy Wilkinson
482ecc606c Polish 2018-02-19 22:46:31 +00:00
Andy Wilkinson
22bac1b54e Polish "Bind StatsD queue gauges"
Closes gh-12124
2018-02-19 21:24:24 +00:00
Jon Schneider
53e872bf4c Bind StatsD queue gauges
See gh-12124
2018-02-19 21:21:58 +00:00
Jon Schneider
9934285bca Remove destroy methods from auto-configured MeterRegistry beans
Closes gh-12121
2018-02-19 17:44:38 +00:00
Andy Wilkinson
73460a5b25 Use auto-configuration to create composite, not a BFPP
Closes gh-12122
2018-02-19 17:41:23 +00:00
Stephane Nicoll
1e932860c4 Specify default micrometer values
This commit adds micrometer's default values for each monitoring
system with tests that validate those defaults are consistent. This
makes sure that those defaults are part of the metadata and any tooling
support that uses it.

Closes gh-12089
2018-02-19 16:41:28 +01:00
Stephane Nicoll
202ed7b72b Polish 2018-02-19 16:20:56 +01:00
Stephane Nicoll
cd0c81fe39 Restore prefix in ConditionalOnProperty 2018-02-19 15:46:39 +01:00
Andy Wilkinson
c3a31fafe2 Remove tangle between actuate.endpoint and actuate.endpoint.invoke
See gh-11854
2018-02-19 13:04:23 +00:00
Stephane Nicoll
6c85ed70e4 Polish "Add SignalFxConfig source property"
Closes gh-12066
2018-02-19 10:53:25 +01:00
Jon Schneider
a732053afd Add SignalFxConfig source property
See gh-12066
2018-02-19 10:49:43 +01:00
Stephane Nicoll
1dab83adaa Polish "Restore behavior of management.metrics.export.simple.enabled"
Closes gh-12106
2018-02-19 10:44:09 +01:00
Jon Schneider
da759f29d0 Restore behavior of management.metrics.export.simple.enabled
See gh-12106
2018-02-19 10:08:22 +01:00
Phillip Webb
9e75680e6f Polish 2018-02-16 18:11:54 -08:00
Andy Wilkinson
c1c162ab0c Polish "Add auto-configuraton for exporting metrics to Wavefront"
Closes gh-12068
2018-02-16 20:30:31 +00:00
Jon Schneider
142dbb2213 Add auto-configuration for exporting metrics to Wavefront
See gh-12068
2018-02-16 20:00:45 +00:00
Andy Wilkinson
17c7f027e0 Add details of the request mapping conditions to mappings endpoint
Closes gh-12080
2018-02-16 17:36:06 +00:00
Andy Wilkinson
2c19257d6d Add HandlerMethod and HandlerFunction details to mappings endpoint
Closes gh-11864
2018-02-16 17:08:47 +00:00
Stephane Nicoll
99466e7fa6 Polish 2018-02-16 14:04:44 +01:00
Andy Wilkinson
fe4c8f95ed Rename ReactiveWebServerAutoConfiguration
Closes gh-12086
2018-02-16 10:02:35 +00:00
Andy Wilkinson
e72506c353 Protect TomcatMetrics auto-config against early MeterBinder init
Closes gh-11916
2018-02-16 09:07:12 +00:00
Andy Wilkinson
83626c7c12 Polish metrics export auto-configuration tests 2018-02-15 10:46:11 +00:00
Jon Schneider
d70594a2b1 Fix upstream micrometer renames
Fix for the rename of `HistogramConfig` to `DistributionStatisticConfig`

Closes gh-12030
2018-02-13 14:50:20 -08:00
Phillip Webb
6771cc9674 Polish 2018-02-13 14:41:12 -08:00
Andy Wilkinson
d238a31d3d Polish 2018-02-13 17:50:40 +00:00
Andy Wilkinson
25520a9e32 Polish “Auto-configure FileDescriptorMetrics”
Closes gh-12022
2018-02-13 16:40:18 +00:00
Tommy Ludwig
a51fcd071e Auto-configure FileDescriptorMetrics
See gh-12022
2018-02-13 16:40:18 +00:00
Tommy Ludwig
149963bc61 Auto-configure ClassLoaderMetrics
Auto-configure ClassLoaderMetrics as part of the JVM metrics from
Micrometer.

See gh-12022
2018-02-13 16:40:18 +00:00
Jon Schneider
49f21a2264 Remove unnecessary config options for JDBC, Rabbit, and Cache metrics
See gh-12017
2018-02-13 14:36:52 +01:00
Andy Wilkinson
ce9b2b8266 Auto-configure Micrometer’s Tomcat metrics
Closes gh-11916
2018-02-13 12:47:25 +00:00
Andy Wilkinson
01b1c1d947 Perform failure analysis of MissingRequiredConfigurationException
Closes gh-12010
2018-02-13 11:35:18 +00:00
Stephane Nicoll
28f5392787 Polish "Add health indicator for reactive MongoDB"
Closes gh-11997
2018-02-13 11:22:04 +01:00
Yulin Qin
eee2694648 Add health indicator for reactive MongoDB
See gh-11997
2018-02-13 11:22:04 +01:00
Andy Wilkinson
a02fdc755e Stop MeterRegistries when context is closed
Closes gh-12006
2018-02-13 09:34:11 +00:00
Johnny Lim
87bf0b26df Polish modifier order
See gh-12019
2018-02-13 09:49:59 +01:00
Phillip Webb
3bec55e16c Formatting 2018-02-12 17:49:53 -08:00
Madhura Bhave
16a499b2fa Cloud Foundry health should always show details
Fixes gh-12014
2018-02-12 15:28:06 -08:00
Phillip Webb
f34aa6f4d8 Migrate to Spring Integration Micrometer support
Remove custom `SpringIntegrationMetrics` and instead provide
auto-configuration to the direct Micrometer support added in Spring
Integration 5.0.2.

Closes gh-11985
2018-02-12 13:24:29 -08:00
Andy Wilkinson
b0e86bd7ac Align New Relic and Signal FX tests with those for other exporters
Closes gh-11970
2018-02-12 20:43:56 +00:00
Andy Wilkinson
384a4ed6a9 Use metrics export.*.enabled properties to control auto-configuration
Closes gh-11978
2018-02-12 20:18:11 +00:00
Phillip Webb
0348889fd7 Polish 2018-02-12 10:03:06 -08:00
Andy Wilkinson
e49d50fe9d Improve testing of metrics auto-configuration
Closes gh-11970
2018-02-12 17:05:05 +00:00
Johnny Lim
5a9865dabb Polish
Closes gh-12004
2018-02-12 17:10:43 +01:00
Stephane Nicoll
7473642f58 Harmonize endpoints exclude property
Closes gh-11914
2018-02-12 14:00:40 +01:00
Andy Wilkinson
037b6d8ba2 Auto-configure Micrometer's New Relic and SignalFX support
Closes gh-11803
2018-02-12 12:00:38 +00:00
Andy Wilkinson
bc814d2039 Prevent authenticated principal from clashing with argument of same name
Closes gh-11988
2018-02-12 10:46:19 +00:00
Phillip Webb
63c827b14d Ensure exports are configured before endpoint
Update `SimpleMetricsExportAutoConfiguration` to ensure that it runs
before `SimpleMetricsExportAutoConfiguration`.

See gh-11977
2018-02-09 14:44:07 -08:00
Phillip Webb
d259f68fbf Drop recordRequestPercentiles property
Drop the `recordRequestPercentiles` property as it overlaps with the
property based `MeterFilter` support.

Fixes gh-11982
2018-02-09 13:59:46 -08:00
Phillip Webb
601157f552 Polish "Add publishUnchangedMeters StatsD support"
Closes gh-11967
2018-02-09 12:09:45 -08:00
Jon Schneider
e02eba2a33 Add publishUnchangedMeters StatsD support
Add configuration property to support publishing unchanged pollable
meters.

See gh-11967
2018-02-09 12:09:41 -08:00
Phillip Webb
3ec778fb64 Polish 2018-02-09 11:31:53 -08:00
Andy Wilkinson
351e1ec4de Ensure that metrics export backs off when there's no Clock
Closes gh-11977
2018-02-09 17:14:06 +00:00
Madhura Bhave
e9fe918d25 Add option to skip ssl for reactive CF actuators
Fixes gh-10898
2018-02-09 08:46:29 -08:00