parent
							
								
									28a4d5e01b
								
							
						
					
					
						commit
						8bfd42e3f1
					
				| 
						 | 
				
			
			@ -124,7 +124,7 @@ public class EndpointDocumentation {
 | 
			
		|||
	public void setLogger() throws Exception {
 | 
			
		||||
		this.mockMvc
 | 
			
		||||
				.perform(post("/loggers/org.springframework.boot")
 | 
			
		||||
						.contentType(ActuatorMediaTypes.APPLICATION_ACTUATOR_V1_JSON)
 | 
			
		||||
						.contentType(ActuatorMediaTypes.APPLICATION_ACTUATOR_V2_JSON)
 | 
			
		||||
						.content("{\"configuredLevel\": \"DEBUG\"}"))
 | 
			
		||||
				.andExpect(status().isOk()).andDo(document("set-logger"));
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -133,7 +133,7 @@ public class EndpointDocumentation {
 | 
			
		|||
	public void auditEvents() throws Exception {
 | 
			
		||||
		this.mockMvc
 | 
			
		||||
				.perform(get("/auditevents").param("after", "2016-11-01T10:00:00+0000")
 | 
			
		||||
						.accept(ActuatorMediaTypes.APPLICATION_ACTUATOR_V1_JSON))
 | 
			
		||||
						.accept(ActuatorMediaTypes.APPLICATION_ACTUATOR_V2_JSON))
 | 
			
		||||
				.andExpect(status().isOk()).andDo(document("auditevents"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -142,7 +142,7 @@ public class EndpointDocumentation {
 | 
			
		|||
		this.mockMvc
 | 
			
		||||
				.perform(get("/auditevents").param("principal", "admin")
 | 
			
		||||
						.param("after", "2016-11-01T10:00:00+0000")
 | 
			
		||||
						.accept(ActuatorMediaTypes.APPLICATION_ACTUATOR_V1_JSON))
 | 
			
		||||
						.accept(ActuatorMediaTypes.APPLICATION_ACTUATOR_V2_JSON))
 | 
			
		||||
				.andExpect(status().isOk())
 | 
			
		||||
				.andDo(document("auditevents/filter-by-principal"));
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -153,7 +153,7 @@ public class EndpointDocumentation {
 | 
			
		|||
				.perform(get("/auditevents").param("principal", "admin")
 | 
			
		||||
						.param("after", "2016-11-01T10:00:00+0000")
 | 
			
		||||
						.param("type", "AUTHENTICATION_SUCCESS")
 | 
			
		||||
						.accept(ActuatorMediaTypes.APPLICATION_ACTUATOR_V1_JSON))
 | 
			
		||||
						.accept(ActuatorMediaTypes.APPLICATION_ACTUATOR_V2_JSON))
 | 
			
		||||
				.andExpect(status().isOk())
 | 
			
		||||
				.andDo(document("auditevents/filter-by-principal-and-type"));
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -172,7 +172,7 @@ public class EndpointDocumentation {
 | 
			
		|||
				output = output.length() > 0 ? output : "./";
 | 
			
		||||
				this.mockMvc
 | 
			
		||||
						.perform(get(endpointPath)
 | 
			
		||||
								.accept(ActuatorMediaTypes.APPLICATION_ACTUATOR_V1_JSON))
 | 
			
		||||
								.accept(ActuatorMediaTypes.APPLICATION_ACTUATOR_V2_JSON))
 | 
			
		||||
						.andExpect(status().isOk()).andDo(document(output))
 | 
			
		||||
						.andDo(new ResultHandler() {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -52,7 +52,7 @@ public class HealthEndpointDocumentation {
 | 
			
		|||
	public void health() throws Exception {
 | 
			
		||||
		this.mockMvc
 | 
			
		||||
				.perform(get("/health")
 | 
			
		||||
						.accept(ActuatorMediaTypes.APPLICATION_ACTUATOR_V1_JSON))
 | 
			
		||||
						.accept(ActuatorMediaTypes.APPLICATION_ACTUATOR_V2_JSON))
 | 
			
		||||
				.andExpect(status().isOk()).andDo(document("health/insensitive"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,7 +53,7 @@ public class HypermediaEndpointDocumentation {
 | 
			
		|||
	public void beans() throws Exception {
 | 
			
		||||
		this.mockMvc
 | 
			
		||||
				.perform(get("/beans")
 | 
			
		||||
						.accept(ActuatorMediaTypes.APPLICATION_ACTUATOR_V1_JSON))
 | 
			
		||||
						.accept(ActuatorMediaTypes.APPLICATION_ACTUATOR_V2_JSON))
 | 
			
		||||
				.andExpect(status().isOk()).andDo(document("beans/hypermedia"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -61,7 +61,7 @@ public class HypermediaEndpointDocumentation {
 | 
			
		|||
	public void metrics() throws Exception {
 | 
			
		||||
		this.mockMvc
 | 
			
		||||
				.perform(get("/metrics")
 | 
			
		||||
						.accept(ActuatorMediaTypes.APPLICATION_ACTUATOR_V1_JSON))
 | 
			
		||||
						.accept(ActuatorMediaTypes.APPLICATION_ACTUATOR_V2_JSON))
 | 
			
		||||
				.andExpect(status().isOk())
 | 
			
		||||
				.andExpect(jsonPath("$._links.self.href")
 | 
			
		||||
						.value("http://localhost:8080/metrics"))
 | 
			
		||||
| 
						 | 
				
			
			@ -72,7 +72,7 @@ public class HypermediaEndpointDocumentation {
 | 
			
		|||
	public void home() throws Exception {
 | 
			
		||||
		this.mockMvc
 | 
			
		||||
				.perform(get("/actuator")
 | 
			
		||||
						.accept(ActuatorMediaTypes.APPLICATION_ACTUATOR_V1_JSON))
 | 
			
		||||
						.accept(ActuatorMediaTypes.APPLICATION_ACTUATOR_V2_JSON))
 | 
			
		||||
				.andExpect(status().isOk()).andDo(document("admin"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -250,7 +250,7 @@ public class EndpointWebMvcHypermediaManagementContextConfiguration {
 | 
			
		|||
			if (messageConverter instanceof TypeConstrainedMappingJackson2HttpMessageConverter) {
 | 
			
		||||
				List<MediaType> supportedMediaTypes = new ArrayList<>(
 | 
			
		||||
						messageConverter.getSupportedMediaTypes());
 | 
			
		||||
				supportedMediaTypes.add(ActuatorMediaTypes.APPLICATION_ACTUATOR_V1_JSON);
 | 
			
		||||
				supportedMediaTypes.add(ActuatorMediaTypes.APPLICATION_ACTUATOR_V2_JSON);
 | 
			
		||||
				((AbstractHttpMessageConverter<?>) messageConverter)
 | 
			
		||||
						.setSupportedMediaTypes(supportedMediaTypes);
 | 
			
		||||
			}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,7 +38,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
 | 
			
		|||
@Retention(RetentionPolicy.RUNTIME)
 | 
			
		||||
@Documented
 | 
			
		||||
@RequestMapping(method = RequestMethod.GET, produces = {
 | 
			
		||||
		ActuatorMediaTypes.APPLICATION_ACTUATOR_V1_JSON_VALUE,
 | 
			
		||||
		ActuatorMediaTypes.APPLICATION_ACTUATOR_V2_JSON_VALUE,
 | 
			
		||||
		MediaType.APPLICATION_JSON_VALUE })
 | 
			
		||||
@interface ActuatorGetMapping {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,6 +22,7 @@ import org.springframework.http.MediaType;
 | 
			
		|||
 * {@link MediaType MediaTypes} that can be consumed and produced by Actuator endpoints.
 | 
			
		||||
 *
 | 
			
		||||
 * @author Andy Wilkinson
 | 
			
		||||
 * @author Madhura Bhave
 | 
			
		||||
 * @since 1.5.0
 | 
			
		||||
 */
 | 
			
		||||
public final class ActuatorMediaTypes {
 | 
			
		||||
| 
						 | 
				
			
			@ -31,12 +32,23 @@ public final class ActuatorMediaTypes {
 | 
			
		|||
	 */
 | 
			
		||||
	public static final String APPLICATION_ACTUATOR_V1_JSON_VALUE = "application/vnd.spring-boot.actuator.v1+json";
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * {@link String} equivalent of {@link #APPLICATION_ACTUATOR_V2_JSON}.
 | 
			
		||||
	 */
 | 
			
		||||
	public static final String APPLICATION_ACTUATOR_V2_JSON_VALUE = "application/vnd.spring-boot.actuator.v2+json";
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * The {@code application/vnd.spring-boot.actuator.v1+json} media type.
 | 
			
		||||
	 */
 | 
			
		||||
	public static final MediaType APPLICATION_ACTUATOR_V1_JSON = MediaType
 | 
			
		||||
			.valueOf(APPLICATION_ACTUATOR_V1_JSON_VALUE);
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * The {@code application/vnd.spring-boot.actuator.v2+json} media type.
 | 
			
		||||
	 */
 | 
			
		||||
	public static final MediaType APPLICATION_ACTUATOR_V2_JSON = MediaType
 | 
			
		||||
			.valueOf(APPLICATION_ACTUATOR_V2_JSON_VALUE);
 | 
			
		||||
 | 
			
		||||
	private ActuatorMediaTypes() {
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,9 +40,9 @@ import org.springframework.web.bind.annotation.RequestMethod;
 | 
			
		|||
@Retention(RetentionPolicy.RUNTIME)
 | 
			
		||||
@Documented
 | 
			
		||||
@RequestMapping(method = RequestMethod.POST, consumes = {
 | 
			
		||||
		ActuatorMediaTypes.APPLICATION_ACTUATOR_V1_JSON_VALUE,
 | 
			
		||||
		ActuatorMediaTypes.APPLICATION_ACTUATOR_V2_JSON_VALUE,
 | 
			
		||||
		MediaType.APPLICATION_JSON_VALUE }, produces = {
 | 
			
		||||
				ActuatorMediaTypes.APPLICATION_ACTUATOR_V1_JSON_VALUE,
 | 
			
		||||
				ActuatorMediaTypes.APPLICATION_ACTUATOR_V2_JSON_VALUE,
 | 
			
		||||
				MediaType.APPLICATION_JSON_VALUE })
 | 
			
		||||
@interface ActuatorPostMapping {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,7 +38,7 @@ public class ShutdownMvcEndpoint extends EndpointMvcAdapter {
 | 
			
		|||
		super(delegate);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@PostMapping(produces = { ActuatorMediaTypes.APPLICATION_ACTUATOR_V1_JSON_VALUE,
 | 
			
		||||
	@PostMapping(produces = { ActuatorMediaTypes.APPLICATION_ACTUATOR_V2_JSON_VALUE,
 | 
			
		||||
			MediaType.APPLICATION_JSON_VALUE })
 | 
			
		||||
	@ResponseBody
 | 
			
		||||
	@Override
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -73,10 +73,10 @@ public class AuditEventsMvcEndpointTests {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void contentTypeDefaultsToActuatorV1Json() throws Exception {
 | 
			
		||||
	public void contentTypeDefaultsToActuatorV2Json() throws Exception {
 | 
			
		||||
		this.mvc.perform(get("/auditevents")).andExpect(status().isOk())
 | 
			
		||||
				.andExpect(header().string("Content-Type",
 | 
			
		||||
						"application/vnd.spring-boot.actuator.v1+json;charset=UTF-8"));
 | 
			
		||||
						"application/vnd.spring-boot.actuator.v2+json;charset=UTF-8"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -79,10 +79,10 @@ public class EnvironmentMvcEndpointTests {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void homeContentTypeDefaultsToActuatorV1Json() throws Exception {
 | 
			
		||||
	public void homeContentTypeDefaultsToActuatorV2Json() throws Exception {
 | 
			
		||||
		this.mvc.perform(get("/env")).andExpect(status().isOk())
 | 
			
		||||
				.andExpect(header().string("Content-Type",
 | 
			
		||||
						"application/vnd.spring-boot.actuator.v1+json;charset=UTF-8"));
 | 
			
		||||
						"application/vnd.spring-boot.actuator.v2+json;charset=UTF-8"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
| 
						 | 
				
			
			@ -94,10 +94,10 @@ public class EnvironmentMvcEndpointTests {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void subContentTypeDefaultsToActuatorV1Json() throws Exception {
 | 
			
		||||
	public void subContentTypeDefaultsToActuatorV2Json() throws Exception {
 | 
			
		||||
		this.mvc.perform(get("/env/foo")).andExpect(status().isOk())
 | 
			
		||||
				.andExpect(header().string("Content-Type",
 | 
			
		||||
						"application/vnd.spring-boot.actuator.v1+json;charset=UTF-8"));
 | 
			
		||||
						"application/vnd.spring-boot.actuator.v2+json;charset=UTF-8"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -83,10 +83,10 @@ public class InfoMvcEndpointTests {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void contentTypeDefaultsToActuatorV1Json() throws Exception {
 | 
			
		||||
	public void contentTypeDefaultsToActuatorV2Json() throws Exception {
 | 
			
		||||
		this.mvc.perform(get("/info")).andExpect(status().isOk())
 | 
			
		||||
				.andExpect(header().string("Content-Type",
 | 
			
		||||
						"application/vnd.spring-boot.actuator.v1+json;charset=UTF-8"));
 | 
			
		||||
						"application/vnd.spring-boot.actuator.v2+json;charset=UTF-8"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -130,10 +130,10 @@ public class LoggersMvcEndpointTests {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void contentTypeForGetDefaultsToActuatorV1Json() throws Exception {
 | 
			
		||||
	public void contentTypeForGetDefaultsToActuatorV2Json() throws Exception {
 | 
			
		||||
		this.mvc.perform(get("/loggers")).andExpect(status().isOk())
 | 
			
		||||
				.andExpect(header().string("Content-Type",
 | 
			
		||||
						"application/vnd.spring-boot.actuator.v1+json;charset=UTF-8"));
 | 
			
		||||
						"application/vnd.spring-boot.actuator.v2+json;charset=UTF-8"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
| 
						 | 
				
			
			@ -152,9 +152,9 @@ public class LoggersMvcEndpointTests {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void setLoggerUsingActuatorV1JsonShouldSetLogLevel() throws Exception {
 | 
			
		||||
	public void setLoggerUsingActuatorV2JsonShouldSetLogLevel() throws Exception {
 | 
			
		||||
		this.mvc.perform(post("/loggers/ROOT")
 | 
			
		||||
				.contentType(ActuatorMediaTypes.APPLICATION_ACTUATOR_V1_JSON)
 | 
			
		||||
				.contentType(ActuatorMediaTypes.APPLICATION_ACTUATOR_V2_JSON)
 | 
			
		||||
				.content("{\"configuredLevel\":\"debug\"}")).andExpect(status().isOk());
 | 
			
		||||
		verify(this.loggingSystem).setLogLevel("ROOT", LogLevel.DEBUG);
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -83,10 +83,10 @@ public class MetricsMvcEndpointTests {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void homeContentTypeDefaultsToActuatorV1Json() throws Exception {
 | 
			
		||||
	public void homeContentTypeDefaultsToActuatorV2Json() throws Exception {
 | 
			
		||||
		this.mvc.perform(get("/metrics")).andExpect(status().isOk())
 | 
			
		||||
				.andExpect(header().string("Content-Type",
 | 
			
		||||
						"application/vnd.spring-boot.actuator.v1+json;charset=UTF-8"));
 | 
			
		||||
						"application/vnd.spring-boot.actuator.v2+json;charset=UTF-8"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
| 
						 | 
				
			
			@ -98,10 +98,10 @@ public class MetricsMvcEndpointTests {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void specificMetricContentTypeDefaultsToActuatorV1Json() throws Exception {
 | 
			
		||||
	public void specificMetricContentTypeDefaultsToActuatorV2Json() throws Exception {
 | 
			
		||||
		this.mvc.perform(get("/metrics/foo")).andExpect(status().isOk())
 | 
			
		||||
				.andExpect(header().string("Content-Type",
 | 
			
		||||
						"application/vnd.spring-boot.actuator.v1+json;charset=UTF-8"));
 | 
			
		||||
						"application/vnd.spring-boot.actuator.v2+json;charset=UTF-8"));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -74,10 +74,10 @@ public class ShutdownMvcEndpointTests {
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	@Test
 | 
			
		||||
	public void contentTypeDefaultsToActuatorV1Json() throws Exception {
 | 
			
		||||
	public void contentTypeDefaultsToActuatorV2Json() throws Exception {
 | 
			
		||||
		this.mvc.perform(post("/shutdown")).andExpect(status().isOk())
 | 
			
		||||
				.andExpect(header().string("Content-Type",
 | 
			
		||||
						"application/vnd.spring-boot.actuator.v1+json;charset=UTF-8"));
 | 
			
		||||
						"application/vnd.spring-boot.actuator.v2+json;charset=UTF-8"));
 | 
			
		||||
		assertThat(this.context.getBean(CountDownLatch.class).await(30, TimeUnit.SECONDS))
 | 
			
		||||
				.isTrue();
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue