Java Code Examples for org.alfresco.service.cmr.repository.ContentReader#isChannelOpen()
The following examples show how to use
org.alfresco.service.cmr.repository.ContentReader#isChannelOpen() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AbstractContentTransformer.java From alfresco-repository with GNU Lesser General Public License v3.0 | 4 votes |
/** * Performs the following: * <ul> * <li>Times the transformation</li> * <li>Ensures that the transformation is allowed</li> * <li>Calls the subclass implementation of {@link #transformInternal(ContentReader, ContentWriter, Map)}</li> * <li>Transforms any exceptions generated</li> * <li>Logs a successful transformation</li> * </ul> * Subclass need only be concerned with performing the transformation. * <p> * If the options provided are null, then an empty map will be created. */ @SuppressWarnings("deprecation") public final void transform( ContentReader reader, ContentWriter writer, Map<String, Object> options) throws ContentIOException { // begin timing long before = System.currentTimeMillis(); // check options map if (options == null) { options = Collections.emptyMap(); } try { // Check the reliability checkReliability(reader, writer); // Transform transformInternal(reader, writer, options); } catch (Throwable e) { // Make sure that this transformation gets set back i.t.o. time taken. // This will ensure that transformers that compete for the same transformation // will be prejudiced against transformers that tend to fail recordTime(10000); // 10 seconds, i.e. rubbish throw new ContentIOException("Content conversion failed: \n" + " reader: " + reader + "\n" + " writer: " + writer + "\n" + " options: " + options, e); } finally { // check that the reader and writer are both closed if (reader.isChannelOpen()) { logger.error("Content reader not closed by transformer: \n" + " reader: " + reader + "\n" + " transformer: " + this); } if (writer.isChannelOpen()) { logger.error("Content writer not closed by transformer: \n" + " writer: " + writer + "\n" + " transformer: " + this); } } // record time long after = System.currentTimeMillis(); recordTime(after - before); // done if (logger.isDebugEnabled()) { logger.debug("Completed transformation: \n" + " reader: " + reader + "\n" + " writer: " + writer + "\n" + " options: " + options + "\n" + " transformer: " + this); } }
Example 2
Source File: XmlMetadataExtracter.java From alfresco-repository with GNU Lesser General Public License v3.0 | 4 votes |
/** * Selects and extracter to perform the work and redirects to it. */ @Override public Map<QName, Serializable> extract(ContentReader reader, OverwritePolicy overwritePolicy, Map<QName, Serializable> destination, Map<String, Set<QName>> mapping) { // Check the content length if (reader.getSize() == 0) { // There is no content. We don't spoof any properties so there can // be nothing extracted. if (logger.isDebugEnabled()) { logger.debug("\n" + "XML document has zero length, so bypassing extraction: \n" + " Document: " + reader); } return destination; } MetadataExtracter extracter = null; // Select a worker for (ContentWorkerSelector<MetadataExtracter> selector : selectors) { ContentReader spawnedReader = reader.getReader(); try { extracter = selector.getWorker(spawnedReader); } catch (Throwable e) { // The selector failed, so try another } finally { if (reader.isChannelOpen()) { logger.error("Content reader not closed by MetadataExtractor selector: \n" + " reader: " + reader + "\n" + " selector: " + selector); } } // Just take the first successful one if (extracter != null) { if (logger.isDebugEnabled()) { logger.debug("\n" + "Found metadata extracter to process XML document: \n" + " Selector: " + selector + "\n" + " Document: " + reader); } break; } } Map<QName, Serializable> modifiedProperties = null; // Did we find anything? if (extracter == null) { if (logger.isDebugEnabled()) { logger.debug("\n" + "No working metadata extractor could be found: \n" + " Document: " + reader); } // There will be no properties extracted modifiedProperties = destination; } else { // An extractor was selected try { modifiedProperties = extracter.extract(reader, overwritePolicy, destination, mapping); } finally { if (reader.isChannelOpen()) { logger.error("Content reader not closed by MetadataExtractor: \n" + " Reader: " + reader + "\n" + " extracter: " + extracter); } } } // Done if (logger.isDebugEnabled()) { logger.debug("\n" + "XML metadata extractor redirected: \n" + " Reader: " + reader + "\n" + " Extracter: " + extracter + "\n" + " Metadata: " + modifiedProperties); } return modifiedProperties; }