Package org.waveprotocol.box.attachment

Examples of org.waveprotocol.box.attachment.AttachmentMetadata


      attachmentId =  AttachmentId.deserialise(OperationUtil.<String>getRequiredParameter(operation,
          ParamsProperty.ATTACHMENT_ID));
    } catch (InvalidIdException ex) {
      throw new InvalidRequestException("Invalid id", operation, ex);
    }
    AttachmentMetadata meta;
    byte[] data;
    try {
      meta = attachmentService.getMetadata(attachmentId);
      data = readInputStreamToBytes(attachmentService.getAttachment(attachmentId).getInputStream());
    } catch (IOException ex) {
      LOG.info("Get attachment", ex);
      context.constructErrorResponse(operation, ex.toString());
      return;
    }
    RawAttachmentData attachment = new RawAttachmentData(meta.getFileName(), meta.getCreator(),
        data);
    Map<ParamsProperty, Object> parameters =
      ImmutableMap.<ParamsProperty, Object> of(ParamsProperty.ATTACHMENT_DATA, attachment);
    context.constructResponse(operation, parameters);
  }
View Full Code Here


    }

    String fileName = getFileNameFromRequest(request);
    String waveRefStr = getWaveRefFromRequest(request);

    AttachmentMetadata metadata = service.getMetadata(attachmentId);
    WaveletName waveletName;

    if (metadata == null) {
      // Old attachments does not have metainfo.
      if (waveRefStr != null) {
        waveletName = AttachmentUtil.waveRef2WaveletName(waveRefStr);
      } else {
        response.sendError(HttpServletResponse.SC_NOT_FOUND);
        return;
      }
    } else {
      waveletName = AttachmentUtil.waveRef2WaveletName(metadata.getWaveRef());
    }

    ParticipantId user = sessionManager.getLoggedInUser(request.getSession(false));
    boolean isAuthorized = false;
    try {
      isAuthorized = waveletProvider.checkAccessPermission(waveletName, user);
    } catch (WaveServerException e) {
      LOG.warning("Problem while authorizing user: " + user + " for wavelet: " + waveletName, e);
    }
    if (!isAuthorized) {
      response.sendError(HttpServletResponse.SC_FORBIDDEN);
      return;
    }

    if (metadata == null) {
      metadata = service.buildAndStoreMetadataWithThumbnail(attachmentId, waveletName, fileName, null);
    }

    String contentType;
    AttachmentData data;
    if (request.getRequestURI().startsWith(ATTACHMENT_URL)) {
      contentType = metadata.getMimeType();
      data = service.getAttachment(attachmentId);
      if (data == null) {
        response.sendError(HttpServletResponse.SC_NOT_FOUND);
        return;
      }
    } else if (request.getRequestURI().startsWith(THUMBNAIL_URL)) {
      if (metadata.hasImageMetadata()) {
        contentType = AttachmentService.THUMBNAIL_MIME_TYPE;
        data = service.getThumbnail(attachmentId);
        if (data == null) {
          response.sendError(HttpServletResponse.SC_NOT_FOUND);
          return;
        }
      } else {
        contentType = THUMBNAIL_PATTERN_FORMAT_NAME;
        data = getThumbnailByContentType(metadata.getMimeType());
      }
    } else {
      response.sendError(HttpServletResponse.SC_NOT_FOUND);
      return;
    }
    if (data == null) {
      response.sendError(HttpServletResponse.SC_NOT_FOUND);
      return;
    }

    response.setContentType(contentType);
    response.setContentLength((int)data.getSize());
    response.setHeader("Content-Disposition", "attachment; filename=\"" + metadata.getFileName() + "\"");
    response.setStatus(HttpServletResponse.SC_OK);
    response.setDateHeader("Last-Modified", Calendar.getInstance().getTimeInMillis());
    AttachmentUtil.writeTo(data.getInputStream(), response.getOutputStream());

    LOG.info("Fetched attachment with id '" + attachmentId + "'");
View Full Code Here

    ParticipantId user = sessionManager.getLoggedInUser(request.getSession(false));

    AttachmentsResponse.Builder attachmentsResponse = AttachmentsResponse.newBuilder();
    for (AttachmentId id : attachmentIds) {
      AttachmentMetadata metadata = service.getMetadata(id);
      if (metadata != null) {
        boolean isAuthorized = false;
        WaveletName waveletName = AttachmentUtil.waveRef2WaveletName(metadata.getWaveRef());
        try {
          isAuthorized = waveletProvider.checkAccessPermission(waveletName, user);
        } catch (WaveServerException e) {
          LOG.warning("Problem while authorizing user: " + user + " for wavelet: " + waveletName, e);
        }
View Full Code Here

      WaveletName waveletName, String fileName, ParticipantId creator) throws IOException {
    AttachmentData data = store.getAttachment(attachmentId);
    if (data == null) {
      throw new IOException("No such atachment " + attachmentId.serialise());
    }
    AttachmentMetadata metadata = new AttachmentMetadataImpl();
    metadata.setAttachmentId(attachmentId.serialise());
    metadata.setAttachmentUrl(AttachmentServlet.ATTACHMENT_URL + "/" + attachmentId.serialise());
    metadata.setThumbnailUrl(AttachmentServlet.THUMBNAIL_URL + "/" + attachmentId.serialise());
    metadata.setWaveRef(waveletName2WaveRef(waveletName));
    metadata.setFileName(fileName);
    String contentType = getMimeType(fileName);
    metadata.setMimeType(contentType);
    metadata.setSize(data.getSize());
    metadata.setCreator((creator != null) ? creator.getAddress() : "");
    BufferedImage image = null;
    try {
      image = ImageIO.read(data.getInputStream());
    } catch (IOException ex) {
      LOG.log(Level.SEVERE, "Identifying attachment", ex);
    }
    if (image != null) {
      ImageMetadata imageMetadata = new ImageMetadataImpl();
      imageMetadata.setWidth(image.getWidth());
      imageMetadata.setHeight(image.getHeight());
      metadata.setImageMetadata(imageMetadata);
      try {
        BufferedImage thumbnail = makeThumbnail(image);
        storeThumbnail(attachmentId, thumbnail);
        ImageMetadata thumbnailMetadata = new ImageMetadataImpl();
        thumbnailMetadata.setWidth(thumbnail.getWidth());
        thumbnailMetadata.setHeight(thumbnail.getHeight());
        metadata.setThumbnailMetadata(thumbnailMetadata);
      } catch (IOException ex) {
        LOG.log(Level.SEVERE, "Building attachment thumbnail", ex);
      }
    } else {
      ImageMetadata thumbnailMetadata = new ImageMetadataImpl();
      thumbnailMetadata.setWidth(THUMBNAIL_PATTERN_WIDTH);
      thumbnailMetadata.setHeight(THUMBNAIL_PATTERN_HEIGHT);
      metadata.setThumbnailMetadata(thumbnailMetadata);
    }
    store.storeMetadata(attachmentId, metadata);
    return metadata;
  }
View Full Code Here

TOP

Related Classes of org.waveprotocol.box.attachment.AttachmentMetadata

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.