Configuring Auto Renditioning and Transformations for OCMS - tsgrp/hpi GitHub Wiki

When configured properly, OpenContent will automatically generate PDF renditions needed to preview files in the Stage. See below for how to configure auto-renditioning.

Alfresco (Internal JOD / OO Transformation Server)

Make sure Alfresco is shut down. In ALFRESCO_HOME/tomcat/shared/classes/alfresco-global.properties, disable OpenOffice and enable the JOD Converter and set them on different ports. Different ports isn't a requirement, but if you decide you want to have OOO instead of JOD, it makes switching easier. Alfresco recommends that only one of these is enabled at a time.

ooo.enabled=false
ooo.port=8100
#Turn on Jod converter
jodconverter.enabled=true
jodconverter.portNumbers=8101

Note that the JOD converter will ignore documents over 8MB. To change this, you can update the following settings:

content.transformer.JodConverter.extensions.doc.pdf.maxSourceSizeKBytes=50000
content.transformer.JodConverter.extensions.docx.pdf.maxSourceSizeKBytes=50000
jodconverter.taskExecutionTimeout=1200000
jodconverter.taskQueueTimeout=300000

Note that if you up the maxSourceSize parameters, you may also want to update the timeout values so that bigger documents have time to render.

When creating your content model, any types that should be automatically renditioned to PDF for display in the stage must have the following mandatory aspect:

<type name="my:type">
	<title>My Auto-Renditioning Type</title>
	<parent>cm:content</parent>
	...
	<mandatory-aspects>
		<aspect>tsg:renditioned</aspect>
	</mandatory-aspects>
</type>

Alfresco (External Transformation Server)

Once you've installed the external transformation server, there are no additional configuration steps in HPI or OpenContent. Simply install the transformation AMP to your alfresco repository and update your alfresco-global.properties to use the external transformation server:

transformserver.username=user-here
transformserver.password=pwd-here
transformserver.url=http://mytransserver:8080/transformation-server

Note - if users plan on importing MSG files, ensure that these files are renditioned with the external transformation server by including this line in the alfresco-global.properties:

content.transformer.remoteServer.extensions.msg.pdf.supported=true

If configured properly, during startup you should see output like the following in the alfresco.log (near the end of all the startup output):

04:34:38,012 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] [localhost-startStop-1] Starting 'transformationserver' subsystem, ID: [transformationserver, default]
04:34:38,090 INFO  [com.westernacher.wps.alfresco.transformation.client.ConnectionTester] [localhost-startStop-1] The connection to the Transformation Server has been established.
04:34:38,106 INFO  [com.westernacher.wps.alfresco.transformation.client.ConnectionTester] [localhost-startStop-1] The Transformation Server version is 1.4.1
04:34:38,106 INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] [localhost-startStop-1] Startup of 'transformationserver' subsystem, ID: [transformationserver, default] complete
04:34:39,200 INFO  [com.westernacher.wps.alfresco.transformation.client.LicenseVerifierImpl] [DefaultScheduler_Worker-9] Successfully validated Transformation Server license (valid until Mar 24, 2017 7:00:00 PM)

As with the internal transformer section above, any type that should be auto-transformed should have the tsg:renditioned aspect set as mandatory.

Documentum

No updates to HPI or OpenContent are necessary.

  1. Install DTS or ADTS
  2. Configure (A)DTS to automatically rendition your desired formats to PDF

HBase / DynamoDB

There are currently three options for configuring renditioning in OpenContent on HBase/DynamoDB:

No Renditioning

In this setup, no documents will be renditioned. Common use cases for this would be for a repository that only deals with PDFs or documents that are already natively viewable in a browser like PNG/JPG files.

Configuration
  • Remove all "AsyncRenditionQueueEvent" beans from your project-bean-config.xml to ensure that nothing triggers transformation requests.
  • Remove any imports of Adlib beans and remove Adlib from your build.gradle to ensure that it isn't being included in your war.

OpenContent "Internal" Renditioning

In this setup, documents are sent to be renditioned by wiring up the "AsyncRenditionQueueEvent" when documents are created and updated. All configurations for doing the transformation work are triggered by wiring up one or more "Transformer" (See Transformer.java) implementations. The most common and supported Transformer implementation is the AdlibTransformer, and can be wired up by configuring the following:

Configuration
  • hbase.internal.transformation=true - configuring this in a properties file tells OpenContent to defer all calls to whichever configured "Transformer" beans have been configured.

  • AsyncRenditionQueueEvent - ensure that these Events are configured when a document is CREATED and UPDATED.

  • Ensure that you have imports of the Adlib transformation beans <import resource="classpath:@[email protected]" />

  • Ensure that you are building the adlib module in your build.gradle ":4.transformAdlib"

OpenMigrate for Renditioning

Using OpenMigrate for renditioning is recommended in high volume environments or when multiple rendition engines are required. For example, use Adlib for PDF renditioning and other tools for video/audio/image/thumbnails, etc.

In this setup, documents are sent to be renditioned by wiring up the "AsyncRenditionQueueEvent" when documents are created and updated. When the event is triggered, a message is sent to a JMS Queue (ActiveMQ) with the ID of the document and the PATH to where the native content is located on the SAN/NAS/Object Store (S3/Azure Blob). The responsibility of the event is solely to queue an item into ActiveMQ if it matches the MimeTypeFilter configured.

Configuration
  • hbase.internal.transformation=false - configuring this in a properties file tells OpenContent to send all rendition requests to ActiveMQ

  • queue.task.url=failover:(tcp://omservername1:61616) - configuring the ActiveMQ connection information to where the MQ is running (typically a list of more than one server for DR/Continuity)

  • AsyncRenditionQueueEvent - ensure that these Events are configured when a document is CREATED and UPDATED.

  • Ensure that you do NOT have imports of the Adlib transformation beans <import resource="classpath:@[email protected]" />

  • Ensure that you are NOT building the adlib module in your build.gradle ":4.transformAdlib"

  • See https://github.com/tsgrp/OpenMigrate/wiki for steps on configuring OpenMigrate

⚠️ **GitHub.com Fallback** ⚠️