Alfresco Transform
Core 3.0.0
ALFRESCO 7.3
©2023 Hy land Sof tware, Inc. and its af f iliates. All rights reserv ed. All Hy land product names are registered or unregistered trademarks of Hy land Sof tware, Inc. or its af f iliates in the United States and other countries.
COMMUNITY
Spring Boot App
HTTP Connection
Synchronous
ENTERPRISE
TRANSFORM ROUTER
Spring Boot App
ActiveMQ Connection
Asynchronous
TRANSFORM CORE
Spring Boot App
HTTP Connection
Synchronous
SHARED FILE STORE
Spring Boot App
HTTP Connection
Synchronous
TRANSFORM ENGINES
Transform Core (AIO)
Transform Misc
Apache Tika
LibreOffice
ImageMagick
Alfresco PDF
Renderer
Images
Thumbnails
Office Documents
Including Microsoft formats
PDF
Metadata extraction
HTML
IWorks
EML
SOURCE CODE
Alfresco Transform Core (AIO)
https://github.com/Alfresco/alfresco-transform-core
Alfresco Transform Engines
https://github.com/Alfresco/alfresco-transform-core/tree/master/engines
Alfresco Transform Model
https://github.com/Alfresco/alfresco-transform-core/tree/master/model
Technical Documentation
https://github.com/Alfresco/alfresco-transform-core/tree/master/docs
DEPLOYMENT AIO
Docker Compose
services:
alfresco:
image: alfresco/alfresco-content-repository-community:7.3.0
environment:
JAVA_OPTS: >-
-DlocalTransform.core-aio.url=http://transform-core-aio:8090/
transform-core-aio:
image: alfresco/alfresco-transform-core-aio:3.0.0
https://github.com/aborroy/alfresco-transform-service-3.0.0/blob/main/docker-compose-aio/docker-compose.yml
DEPLOYMENT T-ENGINES
Docker Compose
services:
alfresco:
image: alfresco/alfresco-content-repository-community:7.3.0
environment:
JAVA_OPTS: >-
-DlocalTransform.core-aio.url=
-DlocalTransform.pdfrenderer.url=http://alfresco-pdf-renderer:8090/
-DlocalTransform.imagemagick.url=http://imagemagick:8090/
-DlocalTransform.libreoffice.url=http://libreoffice:8090/
-DlocalTransform.tika.url=http://tika:8090/
-DlocalTransform.misc.url=http://transform-misc:8090/
alfresco-pdf-renderer:
image: alfresco/alfresco-pdf-renderer:3.0.0
imagemagick:
image: alfresco/alfresco-imagemagick:3.0.0
libreoffice:
image: alfresco/alfresco-libreoffice:3.0.0
tika:
image: alfresco/alfresco-tika:3.0.0
transform-misc:
image: alfresco/alfresco-transform-misc:3.0.0
https://github.com/aborroy/alfresco-transform-service-3.0.0/blob/main/docker-compose-engines/docker-compose.yml
T-ENGINE ENDPOINTS
Configuration
http://localhost:8090/transform/config
Operation
http://localhost:8090/
▪ POST /transform
▪ GET /
▪ GET /log
▪ GET /error
▪ GET /version
DEFAULT CONFIGURATION
Described in T-Engines as JSON files
• imagemagick_engine_config.json
▪ libreoffice_engine_config.json
▪ misc_engine_config.json
▪ pdfrenderer_engine_config.json
▪ tika_engine_config.json
CHANGING CONFIGURATION
Applying configuration
▪ External JSON file
▪ Environment variable TRANSFORM_CONFIG_FILE_<NAME>
Features
• Override
• Removal
• Default values modification
{
"removeTransformers":
[
"appleIWorks"
]
}
https://github.com/aborroy/alfresco-transform-service-3.0.0#changing-default-configuration
CREATING NEW T-ENGINE
▪ Maven
<parent>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-transform-core</artifactId>
<version>3.0.0</version>
</parent>
<dependencies>
<dependency>
<groupId>org.alfresco</groupId>
<artifactId>alfresco-base-t-engine</artifactId>
<version>3.0.0</version>
</dependency>
</dependencies>
▪ Java
• org.alfresco.transform.base.TransformEngine to provide basic information about the
Engine and the Transform pipelines
• org.alfresco.transform.base.CustomTransformer to implement the transformation
operation
CREATING NEW T-ENGINE
▪ Pipelines
{
"transformers":
[
{
"transformerName": "markdown",
"supportedSourceAndTargetList":
[
{"sourceMediaType": "text/markdown", "targetMediaType": "application/pdf" },
{"sourceMediaType": "text/x-markdown", "targetMediaType": "application/pdf" }
]
},
{
"transformerName": "latex",
"supportedSourceAndTargetList":
[
{"sourceMediaType": "application/x-tex", "targetMediaType": "application/pdf" }
]
}
]
}
CREATING NEW T-ENGINE
Dockerfile
FROM pandoc/core:latest-ubuntu
COPY target/pandoc-t-engine.jar /usr/bin
EXPOSE 8090
USER ${USERNAME}
ENTRYPOINT java $JAVA_OPTS -jar /usr/bin/pandoc-t-engine.jar
CREATING NEW T-ENGINE
Deployment in Docker Compose
services:
alfresco:
image: alfresco/alfresco-content-repository-community:7.3.1
environment:
JAVA_OPTS: >-
-DlocalTransform.pandoc.url=http://transform-pandoc:8090/
transform-pandoc:
image: alfresco/pandoc-t-engine:latest
ports:
- 8096:8090
DEMO TIME!
MORE ON DEPLOYMENT
▪ Resources usage and logging level
transform-core-aio:
image: alfresco/alfresco-transform-core-aio:3.0.0
environment:
JAVA_OPTS: "
-Dserver.tomcat.threads.min=4
-Dserver.tomcat.threads.max=12
-Dlogging.level.org.alfresco.transform.common.TransformerDebug=ERROR
"
▪ Scaling up using a Web Proxy:
https://github.com/aborroy/acs-transform-cluster
▪ (m)TLS configuration
https://github.com/aborroy/alfresco-transform-ssl
Alfresco Transform Core 3.0.0

Alfresco Transform Core 3.0.0

  • 1.
    Alfresco Transform Core 3.0.0 ALFRESCO7.3 ©2023 Hy land Sof tware, Inc. and its af f iliates. All rights reserv ed. All Hy land product names are registered or unregistered trademarks of Hy land Sof tware, Inc. or its af f iliates in the United States and other countries.
  • 2.
    COMMUNITY Spring Boot App HTTPConnection Synchronous
  • 3.
    ENTERPRISE TRANSFORM ROUTER Spring BootApp ActiveMQ Connection Asynchronous TRANSFORM CORE Spring Boot App HTTP Connection Synchronous SHARED FILE STORE Spring Boot App HTTP Connection Synchronous
  • 4.
    TRANSFORM ENGINES Transform Core(AIO) Transform Misc Apache Tika LibreOffice ImageMagick Alfresco PDF Renderer Images Thumbnails Office Documents Including Microsoft formats PDF Metadata extraction HTML IWorks EML
  • 5.
    SOURCE CODE Alfresco TransformCore (AIO) https://github.com/Alfresco/alfresco-transform-core Alfresco Transform Engines https://github.com/Alfresco/alfresco-transform-core/tree/master/engines Alfresco Transform Model https://github.com/Alfresco/alfresco-transform-core/tree/master/model Technical Documentation https://github.com/Alfresco/alfresco-transform-core/tree/master/docs
  • 6.
    DEPLOYMENT AIO Docker Compose services: alfresco: image:alfresco/alfresco-content-repository-community:7.3.0 environment: JAVA_OPTS: >- -DlocalTransform.core-aio.url=http://transform-core-aio:8090/ transform-core-aio: image: alfresco/alfresco-transform-core-aio:3.0.0 https://github.com/aborroy/alfresco-transform-service-3.0.0/blob/main/docker-compose-aio/docker-compose.yml
  • 7.
    DEPLOYMENT T-ENGINES Docker Compose services: alfresco: image:alfresco/alfresco-content-repository-community:7.3.0 environment: JAVA_OPTS: >- -DlocalTransform.core-aio.url= -DlocalTransform.pdfrenderer.url=http://alfresco-pdf-renderer:8090/ -DlocalTransform.imagemagick.url=http://imagemagick:8090/ -DlocalTransform.libreoffice.url=http://libreoffice:8090/ -DlocalTransform.tika.url=http://tika:8090/ -DlocalTransform.misc.url=http://transform-misc:8090/ alfresco-pdf-renderer: image: alfresco/alfresco-pdf-renderer:3.0.0 imagemagick: image: alfresco/alfresco-imagemagick:3.0.0 libreoffice: image: alfresco/alfresco-libreoffice:3.0.0 tika: image: alfresco/alfresco-tika:3.0.0 transform-misc: image: alfresco/alfresco-transform-misc:3.0.0 https://github.com/aborroy/alfresco-transform-service-3.0.0/blob/main/docker-compose-engines/docker-compose.yml
  • 8.
  • 9.
    DEFAULT CONFIGURATION Described inT-Engines as JSON files • imagemagick_engine_config.json ▪ libreoffice_engine_config.json ▪ misc_engine_config.json ▪ pdfrenderer_engine_config.json ▪ tika_engine_config.json
  • 10.
    CHANGING CONFIGURATION Applying configuration ▪External JSON file ▪ Environment variable TRANSFORM_CONFIG_FILE_<NAME> Features • Override • Removal • Default values modification { "removeTransformers": [ "appleIWorks" ] } https://github.com/aborroy/alfresco-transform-service-3.0.0#changing-default-configuration
  • 11.
    CREATING NEW T-ENGINE ▪Maven <parent> <groupId>org.alfresco</groupId> <artifactId>alfresco-transform-core</artifactId> <version>3.0.0</version> </parent> <dependencies> <dependency> <groupId>org.alfresco</groupId> <artifactId>alfresco-base-t-engine</artifactId> <version>3.0.0</version> </dependency> </dependencies> ▪ Java • org.alfresco.transform.base.TransformEngine to provide basic information about the Engine and the Transform pipelines • org.alfresco.transform.base.CustomTransformer to implement the transformation operation
  • 12.
    CREATING NEW T-ENGINE ▪Pipelines { "transformers": [ { "transformerName": "markdown", "supportedSourceAndTargetList": [ {"sourceMediaType": "text/markdown", "targetMediaType": "application/pdf" }, {"sourceMediaType": "text/x-markdown", "targetMediaType": "application/pdf" } ] }, { "transformerName": "latex", "supportedSourceAndTargetList": [ {"sourceMediaType": "application/x-tex", "targetMediaType": "application/pdf" } ] } ] }
  • 13.
    CREATING NEW T-ENGINE Dockerfile FROMpandoc/core:latest-ubuntu COPY target/pandoc-t-engine.jar /usr/bin EXPOSE 8090 USER ${USERNAME} ENTRYPOINT java $JAVA_OPTS -jar /usr/bin/pandoc-t-engine.jar
  • 14.
    CREATING NEW T-ENGINE Deploymentin Docker Compose services: alfresco: image: alfresco/alfresco-content-repository-community:7.3.1 environment: JAVA_OPTS: >- -DlocalTransform.pandoc.url=http://transform-pandoc:8090/ transform-pandoc: image: alfresco/pandoc-t-engine:latest ports: - 8096:8090
  • 15.
  • 16.
    MORE ON DEPLOYMENT ▪Resources usage and logging level transform-core-aio: image: alfresco/alfresco-transform-core-aio:3.0.0 environment: JAVA_OPTS: " -Dserver.tomcat.threads.min=4 -Dserver.tomcat.threads.max=12 -Dlogging.level.org.alfresco.transform.common.TransformerDebug=ERROR " ▪ Scaling up using a Web Proxy: https://github.com/aborroy/acs-transform-cluster ▪ (m)TLS configuration https://github.com/aborroy/alfresco-transform-ssl