@PUT @Path("state") @Consumes(APPLICATION_JSON) @Produces(TEXT_PLAIN) public Response updateState(NodeState state) throws WebApplicationException { requireNonNull(state, "state is null"); switch (state) { case SHUTTING_DOWN: shutdownHandler.requestShutdown(); return Response.ok().build(); case ACTIVE: case INACTIVE: throw new WebApplicationException(Response .status(BAD_REQUEST) .type(MediaType.TEXT_PLAIN) .entity(format("Invalid state transition to %s", state)) .build()); default: return Response.status(BAD_REQUEST) .type(TEXT_PLAIN) .entity(format("Invalid state %s", state)) .build(); } }
/** * Returns the bounds for a specific routerId, or verifies whether it is registered. * @returns status code 200 if the routerId is registered, otherwise a 404. */ @GET @Path("{routerId}") @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML + Q, MediaType.TEXT_XML + Q }) public RouterInfo getGraphId(@PathParam("routerId") String routerId) { // factor out build one entry RouterInfo routerInfo = getRouterInfo(routerId); if (routerInfo == null) throw new WebApplicationException(Response.status(Status.NOT_FOUND) .entity("Graph id '" + routerId + "' not registered.\n").type("text/plain") .build()); return routerInfo; }
@GET @Produces( MediaType.APPLICATION_JSON ) @Path( KERNEL_NAME_PATH ) public Response currentKernelInstance( @Context Database database ) { Kernel kernelBean = database.getGraph().getDependencyResolver().resolveDependency( JmxKernelExtension.class ) .getSingleManagementBean( Kernel.class ); return Response.ok( "\"" + kernelBean.getMBeanQuery() .toString() + "\"" ) .type( MediaType.APPLICATION_JSON ) .build(); }
@GET @Produces({MIMETYPE_TEXT, MIMETYPE_XML, MIMETYPE_JSON, MIMETYPE_PROTOBUF, MIMETYPE_PROTOBUF_IETF, MIMETYPE_BINARY}) public Response get(final @Context UriInfo uriInfo) { try { if (!tableResource.exists()) { return Response.status(Response.Status.NOT_FOUND) .type(MIMETYPE_TEXT).entity("Not found" + CRLF) .build(); } } catch (IOException e) { return Response.status(Response.Status.SERVICE_UNAVAILABLE) .type(MIMETYPE_TEXT).entity("Unavailable" + CRLF) .build(); } ResponseBuilder response = Response.ok(); response.cacheControl(cacheControl); return response.build(); } }
@GET @Path("/unstructured/{name}") public Response getProperty( @PathParam("name") String name, @QueryParam("default") String defaultValue) { Map<String, Object> result = new HashMap<>(); try { String value = priamServer.getConfiguration().getProperty(name, defaultValue); if (value != null) { result.put(name, value); return Response.ok(result, MediaType.APPLICATION_JSON).build(); } else { result.put("message", String.format("No such property: [%s]", name)); logger.error(String.format("No such property: [%s]", name)); return Response.status(404).entity(result).type(MediaType.APPLICATION_JSON).build(); } } catch (Exception e) { logger.error("Error while executing getPriamConfig", e); return Response.serverError().build(); } } }
/** * get text values from dictionary keys requested * uri : /dictionary/{yyyymmdd}?dictKeys=[service:10001,service:10002,obj:20001,sql:55555] (bracket is optional) * * @param dictionaryRequest @see {@link DictionaryRequest} * @return */ @GET @Path("/{yyyymmdd}") @Consumes(MediaType.APPLICATION_JSON) public Response retrieveTextFromDictionary(@Valid @BeanParam DictionaryRequest dictionaryRequest) { StreamingOutput stream = os -> { CommonResultView.jsonArrayStream(os, jsonGenerator -> { dictionaryService.retrieveTextFromDictionary(dictionaryRequest, in -> { TextPack textPack = (TextPack) in.readPack(); jsonGenerator.writeStartObject(); jsonGenerator.writeStringField("textType", textPack.xtype); jsonGenerator.writeNumberField("dictKey", textPack.hash); jsonGenerator.writeStringField("text", textPack.text); jsonGenerator.writeEndObject(); }); }); }; return Response.ok().entity(stream).type(MediaType.APPLICATION_JSON).build(); } }
@Path("attributes-{attributes}/{consumer-id}") @DELETE public void closeSession(@PathParam("consumer-id") String consumerId, @Context UriInfo uriInfo) { ActiveMQRestLogger.LOGGER.debug("Handling DELETE request for \"" + uriInfo.getPath() + "\""); QueueConsumer consumer = queueConsumers.remove(consumerId); if (consumer == null) { throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND).entity("Failed to match a consumer to URL" + consumerId).type("text/plain").build()); } consumer.shutdown(); } }
private Response doGetPriamConfig(String group, String name) { try { final Map<String, Object> result = new HashMap<>(); final Map<String, Object> value = priamServer.getConfiguration().getStructuredConfiguration(group); if (name != null && value.containsKey(name)) { result.put(name, value.get(name)); return Response.ok(result, MediaType.APPLICATION_JSON).build(); } else if (name != null) { result.put("message", String.format("No such structured config: [%s]", name)); logger.error(String.format("No such structured config: [%s]", name)); return Response.status(404).entity(result).type(MediaType.APPLICATION_JSON).build(); } else { result.putAll(value); return Response.ok(result, MediaType.APPLICATION_JSON).build(); } } catch (Exception e) { logger.error("Error while executing getPriamConfig", e); return Response.serverError().build(); } }
private Response.ResponseBuilder mockResponseBuilder( Response response, final AtomicReference<StreamingOutput> ref ) { final Response.ResponseBuilder responseBuilder = mock( Response.ResponseBuilder.class ); when( responseBuilder.entity( ArgumentMatchers.isA( StreamingOutput.class ) ) ).thenAnswer( invocationOnMock -> { ref.set( invocationOnMock.getArgument( 0 ) ); return responseBuilder; } ); when( responseBuilder.type( ArgumentMatchers.<MediaType>any() ) ).thenReturn( responseBuilder ); when( responseBuilder.build() ).thenReturn( response ); return responseBuilder; }
@Override public Response toResponse(Exception exception) { LOG.error("Unhandled exception in REST resource", exception); final String message = nullToEmpty(exception.getMessage()); final ApiError apiError = ApiError.create(message); return Response.serverError() .type(MediaType.APPLICATION_JSON_TYPE) .entity(apiError) .build(); } }
@Test public void cannotProvideStreamingForOtherMediaTypes() throws Exception { final Response.ResponseBuilder responseBuilder = mock( Response.ResponseBuilder.class ); // no streaming when( responseBuilder.entity( any(byte[].class) ) ).thenReturn( responseBuilder ); Mockito.verify( responseBuilder, never() ).entity( isA( StreamingOutput.class ) ); when( responseBuilder.type( ArgumentMatchers.<MediaType>any() ) ).thenReturn( responseBuilder ); when( responseBuilder.build() ).thenReturn( null ); OutputFormat format = repository.outputFormat( asList( MediaType.TEXT_HTML_TYPE ), new URI( "http://some.host" ), streamingHeader() ); assertNotNull( format ); format.response( responseBuilder, new ExceptionRepresentation( new RuntimeException() ) ); }