Skip to content

A CMS-agnostic ETL framework for transferring large volumes of content between CMS engine implementations.

License

Notifications You must be signed in to change notification settings

Armedia/Caliente

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Armedia Caliente

Cliente is a CMS-agnostic ETL framework for transferring large volumes of content between CMS engine implementations. It's designed to be efficient, lightweight, and modular.

If you want to take it out for a whirl, feel free!!

Installation

Caliente requires no installation per-se. Any and all executable components are generated by the build process as self-contained, executable shaded (per maven-shade-plugin) JARs. All the executable JARs are named something-exe.jar.

Just pull the repository, run the Maven build, and voilá!

NOTE: Caliente is not yet compatible with JDK 9+ due to the requirement to support older DFC versions (6.7, 7.2) which in turn aren't compatible with JDK 9+ for dynamic loading. Caliente modifies its own classpath on startup to support linking in the DFC at run-time (and thus specifying the DFC via command-line parameters), and because of this cannot be compatible with JDK 1.9+ at this time. This may change in the near future, for JDK 11+ compatiblity, if we can find a suitable solution for run-time DFC loading which does not require specifying the classpath at startup.

Build

  1. Build the Caliente Commons-Utilities package. This package is not publicly available in binary form (yet!), but you should be able to pull the sources and build it locally without issue.
$ git clone https://github.com/Armedia/Commons-Utilities
$ cd Commons-Utilities
$ mvn install
  1. Build Caliente itself. NOTE: Caliente's unit tests require some test servers that aren't available to the public. Work is ongoing to remove this requirement so they can be run reliably outside of the base development environment, but this progress is slow due to other priorities (not my only job :) ).
$ git clone https://github.com/Armedia/Caliente
$ cd Caliente
$ mvn -DskipTests=true package

The build process supports three build profiles:

  • "No" profile (i.e. SNAPSHOT)
    • Default when no profile is specified
    • Will generate
  • Beta profile (-Pbeta)
    • Requires defining a betaNumber variable which will supplement built artifacts' tags (i.e. -DbetaNumber=03)
  • Release profile (-Prelease)
    • Used for release builds

Executable

The primary executable will be located in: $/cli/exe/caliente/target/caliente-${version}-exe.jar

The ${version} element can take one of these forms:

  • DEFAULT: ${project.version}-SNAPSHOT-${git.branch}-${git.hash}
    • Example: caliente-3.9.4-SNAPSHOT-devel-1b45cd80-exe.jar
  • Beta Profile: ${project.version}-beta-${betaNnumber}
    • Example: caliente-3.9.4-beta-03-exe.jar
  • Release Profile: ${project.version}
    • Example: caliente-3.9.4-exe.jar

Execution

Execution of Caliente requires JDK 1.8. Caliente has been tested with Oracle JDK 1.8, as well as OpenJDK 1.8. Specifically, Amazon Corretto 1.8 has been tested and found not to be compatible. Other 1.8-compatible JDKs may work but have not yet been tested.

Here's an example execution on Linux, assuming the above build succeeded:

$ cd Caliente/cli/exe/caliente/target
$ java -jar caliente-3.9.4-exe.jar -h

The -h parameter offers help on the different modes of invocation, including commands, available parameters, etc. Please note that the help will change depending on the command and parameters given dynamically at runtime.

The most important parameters are:

  • --engine / -e (required): the ECM Engine to use (case-insensitive, one of alfrescobi, cmis, dctm, local, shpt, ucm, xml)
  • --lib / -l (optional): a supplementary library directory from which all contained JARs will be added to the dynamic classpath on startup

Caliente supports 5 basic operations (commands):

  • encrypt: Encrypt a password for use by Caliente (i.e. so you can write scripts with passwords in them without compromising them)
  • decrypt: Decrypt a password used by Caliente (i.e. in case you need to recover or validate a password used by Caliente)
  • export: Perform a content extraction from a source ECM
  • import: Perform a content ingestion to a target ECM (in some cases, notably AlfrescoBI, this only includes executing the transformation steps to prepare the content for ingestion).

For example, a typical Documentum extraction could look like this:

$ java -jar caliente-3.9.4-exe.jar --engine dctm export --server documentum --user dmadmin --password XZ6ZkrcrHz!d4sz3$Eg= --dfc /apps/documentum-6.7-SP2 --from "/Reports/2019" --data "export/Reports-2019"

If you add the -h parameter anywhere in the command line, Caliente will output the documentation (help) message instead of executing any work. The tool will take into account any parameters you've specified that may affect the message output, so the help offered is as relevant as possible to whatever it is you're trying to do.

That's it!!

Happy extractions!

About

A CMS-agnostic ETL framework for transferring large volumes of content between CMS engine implementations.

Resources

License

Stars

Watchers

Forks

Packages

No packages published