org.modeshape.jcr.api.Binary类的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(11.1k)|赞(0)|评价(0)|浏览(179)

本文整理了Java中org.modeshape.jcr.api.Binary类的一些代码示例,展示了Binary类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Binary类的具体详情如下:
包路径:org.modeshape.jcr.api.Binary
类名称:Binary

Binary介绍

[英]An extension of the standard javax.jcr.Binary interface, with methods to obtain the SHA-1 hash of the binary value.
[中]标准javax的扩展。jcr。二进制接口,用方法获取二进制值的SHA-1哈希。

代码示例

代码示例来源:origin: ModeShape/modeshape

@Override
public long setContent( Node parentNode,
            String resourceName,
            InputStream newContent,
            String contentType,
            String characterEncoding ) throws RepositoryException, IOException {
  Node contentNode;
  if (parentNode.hasNode(CONTENT_NODE_NAME)) {
    contentNode = parentNode.getNode(CONTENT_NODE_NAME);
  } else {
    contentNode = parentNode.addNode(CONTENT_NODE_NAME, newContentPrimaryType);
  }
  // contentNode.setProperty(MIME_TYPE_PROP_NAME, contentType != null ? contentType : "application/octet-stream");
  contentNode.setProperty(ENCODING_PROP_NAME, characterEncoding != null ? characterEncoding : "UTF-8");
  org.modeshape.jcr.api.Binary binary = (org.modeshape.jcr.api.Binary)parentNode.getSession()
                                         .getValueFactory()
                                         .createBinary(newContent);
  contentNode.setProperty(DATA_PROP_NAME, binary);
  contentNode.setProperty(MODIFIED_PROP_NAME, Calendar.getInstance());
  // Copy the content to the property, THEN re-read the content from the Binary value to avoid discarding the first
  // bytes of the stream
  if (contentType == null) {
    contentType = binary.getMimeType(resourceName);
  }
  if (contentType != null) {
    contentNode.setProperty(MIME_TYPE_PROP_NAME, contentType);
  }
  return contentNode.getProperty(DATA_PROP_NAME).getLength();
}

代码示例来源:origin: ModeShape/modeshape

/**
 * Allows subclasses to process the stream of binary value property in "safe" fashion, making sure the stream is closed at the
 * end of the operation.
 * 
 * @param binary a {@link org.modeshape.jcr.api.Binary} who is expected to contain a non-null binary value.
 * @param operation a {@link org.modeshape.jcr.api.text.TextExtractor.BinaryOperation} which should work with the stream
 * @param <T> the return type of the binary operation
 * @return whatever type of result the stream operation returns
 * @throws Exception if there is an error processing the stream
 */
protected final <T> T processStream( Binary binary,
                   BinaryOperation<T> operation ) throws Exception {
  InputStream stream = binary.getStream();
  if (stream == null) {
    throw new IllegalArgumentException("The binary value is empty");
  }
  try {
    return operation.execute(stream);
  } finally {
    stream.close();
  }
}

代码示例来源:origin: ModeShape/modeshape

/**
   * Get the hexadecimal form of the SHA-1 hash of the contents. 
   * 
   * @return the hexadecimal form of hash, or a null string if the hash could not be computed or is not known
   */
  private String getHash() {
    try {
      Node contentNode = getContextNode();
      Property data = contentNode.getProperty(Property.JCR_DATA);
      Binary bin = (Binary) data.getBinary();
      return String.format("{%s}%s", HASH_ALGORITHM, bin.getHexHash());
    } catch (RepositoryException e) {
      return "";
    }
  }
}

代码示例来源:origin: ModeShape/modeshape

String mimeType = binaryValue.getMimeType(inputFileName);
  try (InputStream stream = binaryValue.getStream()) {
    sequencePowerpoint(sequencedNode, context.valueFactory(), stream);
    return true;
  try (InputStream stream = binaryValue.getStream()) {
    sequenceWord(sequencedNode, context.valueFactory(), stream);
    return true;
  try (InputStream stream = binaryValue.getStream()) {
    sequenceExcel(sequencedNode, context.valueFactory(), stream);
    return true;

代码示例来源:origin: ModeShape/modeshape

assertThat(binary, is(instanceOf(StoredBinaryValue.class)));
assertThat(binary.getHexHash(), is(expectedSha1));
assertThat(binary.getSize(), is(numBytes));
InputStream actual = binary.getStream();
byte[] buffer1 = new byte[1024];
byte[] buffer2 = new byte[1024];

代码示例来源:origin: ModeShape/modeshape

protected Binary storeAndCheck( int contentIndex,
                Class<? extends Binary> valueClass ) throws Exception {
  String content = CONTENT[contentIndex];
  String sha1 = CONTENT_HASHES[contentIndex];
  InputStream stream = new ByteArrayInputStream(content.getBytes());
  Stopwatch sw = new Stopwatch();
  sw.start();
  Binary binary = store.storeValue(stream, false);
  sw.stop();
  if (print) System.out.println("Time to store 18MB file: " + sw.getTotalDuration());
  if (valueClass != null) {
    assertThat(binary, is(instanceOf(valueClass)));
  }
  if (content.length() == 0) {
    assertThat(binary, is(instanceOf(EmptyBinaryValue.class)));
  } else if (content.length() < MIN_BINARY_SIZE) {
    assertThat(binary, is(instanceOf(InMemoryBinaryValue.class)));
  } else {
    assertThat(binary, is(instanceOf(StoredBinaryValue.class)));
  }
  assertThat(binary.getHexHash(), is(sha1));
  String binaryContent = IoUtil.read(binary.getStream());
  assertThat(binaryContent, is(content));
  return binary;
}

代码示例来源:origin: ModeShape/modeshape

@Test
@FixFor("MODE-1573")
public void shouldPerformRoundTripOnDocumentViewWithBinaryContent() throws Exception {
  JcrTools tools = new JcrTools();
  File binaryFile = new File("src/test/resources/io/binary.pdf");
  assert (binaryFile.exists() && binaryFile.isFile());
  File outputFile = File.createTempFile("modeshape_import_export_" + System.currentTimeMillis(), "_test");
  outputFile.deleteOnExit();
  tools.uploadFile(session, "file", binaryFile);
  session.save();
  session.exportDocumentView("/file", new FileOutputStream(outputFile), false, false);
  assertTrue(outputFile.length() > 0);
  session.getRootNode().getNode("file").remove();
  session.save();
  //sleep so that the binary can be properly cleaned up (this is done via a listener)
  Thread.sleep(200);
  session.getWorkspace().importXML("/", new FileInputStream(outputFile), ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW);
  assertNotNull(session.getNode("/file"));
  assertNotNull(session.getNode("/file/jcr:content"));
  Property data = session.getNode("/file/jcr:content").getProperty("jcr:data");
  assertNotNull(data);
  Binary binary = (Binary)data.getBinary();
  assertNotNull(binary);
  assertEquals(binaryFile.length(), binary.getSize());
}

代码示例来源:origin: org.modeshape/modeshape-sequencer-msoffice

String mimeType = binaryValue.getMimeType(inputFileName);
  try (InputStream stream = binaryValue.getStream()) {
    sequencePowerpoint(sequencedNode, context.valueFactory(), stream);
    return true;
  try (InputStream stream = binaryValue.getStream()) {
    sequenceWord(sequencedNode, context.valueFactory(), stream);
    return true;
  try (InputStream stream = binaryValue.getStream()) {
    sequenceExcel(sequencedNode, context.valueFactory(), stream);
    return true;

代码示例来源:origin: ModeShape/modeshape

String unused = binaries.iterator().next().getHexHash();
BinaryKey unusedKey = new BinaryKey(unused);
store.markAsUnused(Collections.singleton(unusedKey));
  InputStream stream = binary.getStream();
  String content = IoUtil.read(stream);
  assertThat(content.length() != 0, is(true));

代码示例来源:origin: ModeShape/modeshape

/**
 * Returns the default mime-type of a given binary property.
 *
 * @param binaryProperty a non-null {@link Property}
 * @return a non-null String which represents the mime-type of the binary property.
 * @throws RepositoryException if any JCR related operation involving the binary property fail.
 */
public String getDefaultMimeType( Property binaryProperty ) throws RepositoryException {
  try {
    Binary binary = binaryProperty.getBinary();
    return binary instanceof org.modeshape.jcr.api.Binary ? ((org.modeshape.jcr.api.Binary)binary)
        .getMimeType() : DEFAULT_MIME_TYPE;
  } catch (IOException e) {
    logger.warn("Cannot determine default mime-type", e);
    return DEFAULT_MIME_TYPE;
  }
}

代码示例来源:origin: ModeShape/modeshape

Binary binaryValue = (Binary) inputProperty.getBinary();
CheckArg.isNotNull(binaryValue, "binary");
final String mimeType = binaryValue.getMimeType();
boolean isValid = false;
AudioMetadata metadata = null;
try (InputStream stream = binaryValue.getStream()) {
  metadata = new AudioMetadata(stream, mimeType);
  isValid = metadata.check();

代码示例来源:origin: org.modeshape/modeshape-jcr-api

/**
 * Allows subclasses to process the stream of binary value property in "safe" fashion, making sure the stream is closed at the
 * end of the operation.
 * 
 * @param binary a {@link org.modeshape.jcr.api.Binary} who is expected to contain a non-null binary value.
 * @param operation a {@link org.modeshape.jcr.api.text.TextExtractor.BinaryOperation} which should work with the stream
 * @param <T> the return type of the binary operation
 * @return whatever type of result the stream operation returns
 * @throws Exception if there is an error processing the stream
 */
protected final <T> T processStream( Binary binary,
                   BinaryOperation<T> operation ) throws Exception {
  InputStream stream = binary.getStream();
  if (stream == null) {
    throw new IllegalArgumentException("The binary value is empty");
  }
  try {
    return operation.execute(stream);
  } finally {
    stream.close();
  }
}

代码示例来源:origin: org.fcrepo/fcrepo-kernel-modeshape

/**
 * Add necessary information to node
 * @param dsNode The target binary node to add information to
 * @param descNode The description node associated with the binary node
 * @param checksums The checksum information
 * @throws RepositoryException on error
 */
private static void decorateContentNode(final Node dsNode, final Node descNode, final Collection<URI> checksums)
  throws RepositoryException {
  if (dsNode == null) {
    LOGGER.warn("{} node appears to be null!", JCR_CONTENT);
    return;
  }
  if (dsNode.hasProperty(JCR_DATA)) {
    final Property dataProperty = dsNode.getProperty(JCR_DATA);
    final Binary binary = (Binary) dataProperty.getBinary();
    final String dsChecksum = binary.getHexHash();
    checksums.add(ContentDigest.asURI(SHA1.algorithm, dsChecksum));
    final String[] checksumArray = new String[checksums.size()];
    checksums.stream().map(Object::toString).collect(Collectors.toSet()).toArray(checksumArray);
    if (descNode != null) {
      descNode.setProperty(CONTENT_DIGEST, checksumArray);
      descNode.setProperty(CONTENT_SIZE, dataProperty.getLength());
    }
    LOGGER.debug("Decorated data property at path: {}", dataProperty.getPath());
  }
}

代码示例来源:origin: ModeShape/modeshape

private void addFileContent( ZipInputStream zipInputStream,
               ZipEntry entry,
               Context context,
               Node zipFileNode ) throws RepositoryException, IOException {
  Node contentNode = zipFileNode.addNode(JcrConstants.JCR_CONTENT, JcrConstants.NT_RESOURCE);
  // on session pre-save the appropriate properties should be set automatically
  contentNode.addMixin(JcrConstants.MIX_LAST_MODIFIED);
  // set the content bytes
  byte[] contentBytes = readContent(zipInputStream);
  org.modeshape.jcr.api.Binary contentBinary = context.valueFactory().createBinary(contentBytes);
  contentNode.setProperty(JcrConstants.JCR_DATA, contentBinary);
  // Figure out the mime type ...
  String mimeType = contentBinary.getMimeType(entry.getName());
  if (mimeType != null) {
    contentNode.setProperty(JcrConstants.JCR_MIME_TYPE, mimeType);
  }
}

代码示例来源:origin: ModeShape/modeshape

protected void assertBinaryContains( Binary binaryValue,
                   byte[] expectedContent ) throws IOException, RepositoryException {
  byte[] actual = IoUtil.readBytes(binaryValue.getStream());
  assertThat(actual, is(expectedContent));
}

代码示例来源:origin: org.fcrepo/fcrepo-kernel-modeshape

final String dsSHA1 = ((Binary) dataProperty.getBinary()).getHexHash();
final URI dsSHA1Uri = ContentDigest.asURI(SHA1.algorithm, dsSHA1);

代码示例来源:origin: ModeShape/modeshape

mimeType = ((org.modeshape.jcr.api.Binary)binary).getMimeType(parent.getName());

代码示例来源:origin: ModeShape/modeshape

String str = null;
if (value instanceof Binary) {
  byte[] bytes = IoUtil.readBytes(((Binary)value).getStream());
  str = StringUtil.getHexString(bytes);
} else {

代码示例来源:origin: org.fcrepo/modeshape-jcr

sha1 = fieldValue.toString();
} else if (fieldValue instanceof org.modeshape.jcr.api.Binary && !(fieldValue instanceof InMemoryBinaryValue)) {
  sha1 = ((org.modeshape.jcr.api.Binary)fieldValue).getHexHash();

代码示例来源:origin: org.fcrepo/modeshape-jcr

mimeType = ((org.modeshape.jcr.api.Binary)binary).getMimeType(parent.getName());

相关文章