/** Returns file extension based on media type. By default it returns .xml. */ protected String getFileExtension() { _log.debug("Media type requested is {}", mediaType); if (MediaType.APPLICATION_JSON_TYPE.equals(mediaType)) { return ".json"; } return ".xml"; }
/** * Generates configuration file with name taken from variable CONFIG_FILE_NAME Returns the created * file name. */ protected String generateConfigFile() throws JAXBException, LocalRepositoryException, IOException { ZipOutputStream zos = null; try { PropertyInfoExt properties = new PropertyInfoExt(coordinator.getPropertyInfo().getProperties()); zos = new ZipOutputStream(new FileOutputStream(CONFIG_FILE_PATH)); ZipEntry ze = new ZipEntry(CONFIG_FILE_NAME + getFileExtension()); zos.putNextEntry(ze); if (MediaType.APPLICATION_JSON_TYPE.equals(mediaType)) { (new ObjectMapper()).writeValue(zos, properties); // gson should not be used any more } else { JAXBContext jaxbContext = JAXBContext.newInstance(PropertyInfo.class); Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.marshal(properties, zos); } zos.flush(); } finally { if (zos != null) { zos.close(); } } return CONFIG_FILE_PATH; }
@Override public boolean isWriteable( Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) { boolean result = false; if (Iterable.class.isAssignableFrom(type) && genericType.getClass().isAssignableFrom(ArtifactReadable.class) && MediaType.APPLICATION_JSON_TYPE.equals(mediaType)) { result = true; } return result; }
public Object getTasks( Request request, UriInfo uriInfo, Integer firstResult, Integer maxResults) { Variant variant = request.selectVariant(VARIANTS); if (variant != null) { if (MediaType.APPLICATION_JSON_TYPE.equals(variant.getMediaType())) { return getJsonTasks(uriInfo, firstResult, maxResults); } else if (Hal.APPLICATION_HAL_JSON_TYPE.equals(variant.getMediaType())) { return getHalTasks(uriInfo, firstResult, maxResults); } } throw new InvalidRequestException( Response.Status.NOT_ACCEPTABLE, "No acceptable content-type found"); }
/** * Ensures that the response has a "success" status code {@code 2xx}. * * @throws HttpResponseException if the response does not have a {@code 2xx} status code * @throws IOException if the response entity parsing has failed */ public void ensure2xxStatus() throws HttpResponseException, IOException { if (response.getStatus() / 100 != 2) { final String message; if (MediaType.TEXT_PLAIN_TYPE.equals(response.getMediaType())) { message = response.readEntity(String.class); } else if (MediaType.TEXT_XML_TYPE.equals(response.getMediaType()) || MediaType.APPLICATION_XML_TYPE.equals(response.getMediaType()) || MediaType.APPLICATION_JSON_TYPE.equals(response.getMediaType())) { message = response.readEntity(AcknowlegementType.class).getMessage(); } else { message = response.toString(); } throw new HttpResponseException(response.getStatus(), message); } }
@POST @Path("{type:user|group}/{userid}") public Response doUpdateAuthorizable( @Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam(value = "type") String authorizableType, @PathParam(value = "userid") String authorizableId) { try { AuthorizableManager authorizableManager = getAuthorizableManager(request, response); Authorizable authorizable = authorizableManager.findAuthorizable(authorizableId); Response checkType = checkType(authorizable, authorizableType); if (checkType != null) { return checkType; } // process the post request. AuthorizableHelper authorizableHelper = new AuthorizableHelper(authorizableManager); ModificationRequest modificationRequest = new ModificationRequest(); modificationRequest.processRequest(request); authorizableHelper.applyProperties(authorizable, modificationRequest); authorizableHelper.save(); final List<String> feedback = modificationRequest.getFeedback(); return Response.ok( new StreamingOutput() { @Override public void write(OutputStream output) throws IOException, WebApplicationException { ResponseUtils.writeFeedback(feedback, output); } }) .type(MediaType.APPLICATION_JSON_TYPE.toString() + "; charset=utf-8") .lastModified(new Date()) .build(); } catch (StorageClientException e) { return ResponseUtils.getResponse( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage()); } catch (AccessDeniedException e) { return ResponseUtils.getResponse(HttpServletResponse.SC_FORBIDDEN, e.getMessage()); } catch (IOException e) { return ResponseUtils.getResponse( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage()); } catch (FileUploadException e) { return ResponseUtils.getResponse( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage()); } }
@Override public String marshal(Object obj, MediaType mediaType) throws MarshalException, UnsupportedMediaTypeException { if (mediaType != null) { if (MediaType.APPLICATION_XML_TYPE.isCompatible(mediaType) || MediaType.TEXT_XML_TYPE.isCompatible(mediaType)) { return marshalToXML(obj); } else if (MediaType.APPLICATION_JSON_TYPE.isCompatible(mediaType)) { return marshalToJSON(obj); } } // If we get here then we deal with an unknown media type throw new UnsupportedMediaTypeException( "Unsupported media type: " + mediaType + ". Cannot marshal the given input to this media type."); }
@GET @Path("{type:user|group}/{userid}.{format}") public Response getUser( @Context HttpServletRequest request, @Context HttpServletResponse response, @PathParam(value = "type") String authorizableType, @PathParam(value = "userid") String authorizableId, @PathParam(value = "format") final String outputFormat) { try { AuthorizableManager authorizableManager = getAuthorizableManager(request, response); final Authorizable authorizable = authorizableManager.findAuthorizable(authorizableId); Response checkType = checkType(authorizable, authorizableType); if (checkType != null) { return checkType; } Date lastModified = new Date(); Long lm = (Long) authorizable.getProperty(Authorizable.LASTMODIFIED_FIELD); if (lm == null) { lm = (Long) authorizable.getProperty(Authorizable.CREATED_FIELD); } if (lm != null) { lastModified = new Date(lm); } return Response.ok( new StreamingOutput() { @Override public void write(OutputStream output) throws IOException, WebApplicationException { ResponseUtils.writeTree(authorizable, outputFormat, output); } }) .type(MediaType.APPLICATION_JSON_TYPE.toString() + "; charset=utf-8") .lastModified(lastModified) .build(); } catch (StorageClientException e) { return ResponseUtils.getResponse( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage()); } catch (AccessDeniedException e) { return ResponseUtils.getResponse(HttpServletResponse.SC_FORBIDDEN, e.getMessage()); } }
/* (non-Javadoc) * @see sif3.infra.common.conversion.UnmarshalFactory#unmarschal(java.lang.String, java.lang.Class, javax.ws.rs.core.MediaType) */ @Override public Object unmarshal(String payload, Class<?> clazz, MediaType mediaType) throws UnmarshalException, UnsupportedMediaTypeException { if (mediaType != null) { // if (MediaType.APPLICATION_XML_TYPE.isCompatible(mediaType) || // MediaType.TEXT_XML_TYPE.isCompatible(mediaType) || // MediaType.TEXT_PLAIN_TYPE.isCompatible(mediaType)) if (MediaType.APPLICATION_XML_TYPE.isCompatible(mediaType) || MediaType.TEXT_XML_TYPE.isCompatible(mediaType)) { return unmarshalFromXML(payload, clazz); } else if (MediaType.APPLICATION_JSON_TYPE.isCompatible(mediaType)) { return unmarshalFromJSON(payload, clazz); } } // If we get here then we deal with an unknown media type throw new UnsupportedMediaTypeException( "Unsupported media type: " + mediaType + ". Cannot unmarshal the given input from this media type."); }
@Override public boolean supports(MediaType mediaType) { return MediaType.APPLICATION_JSON_TYPE.equals(mediaType); }
@Override public boolean isReadable( Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType) { return MediaType.APPLICATION_JSON_TYPE.getType().equals(mediaType.getType()) && MediaType.APPLICATION_JSON_TYPE.getSubtype().equals(mediaType.getSubtype()); }