Skip to content

Instantly share code, notes, and snippets.

@siepkes
Last active January 29, 2024 05:33
Show Gist options
  • Save siepkes/00f0c410933271b4f4e0d5eab18d7469 to your computer and use it in GitHub Desktop.
Save siepkes/00f0c410933271b4f4e0d5eab18d7469 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ksh93
if [ ! -d "$1" ]; then
echo "First argument must be the directory where the runtime ZIP has been extracted. For example '~/Downloads/birt'."
exit 1
fi
RUNTIME_PATH=${1}
LIB_PATH="${RUNTIME_PATH}/ReportEngine/lib"
ADDONS_PATH="${RUNTIME_PATH}/ReportEngine/addons"
GROUP_ID_BASE="nl.serviceplanet.org.eclipse.birt"
function deploy {
FILE="${1}"
GROUP_ID="${2}"
ARTIFACT_ID="${3}"
ARTIFACT_VERSION="${4}"
# Reposilite will always serve the POM inside the JAR instead of the one we generate. Unfortunately this POM is
# incorrect (contains deps with -SNAPSHOT versions). Therefor we delete it from the JAR's.
zip --delete ${FILE} "META-INF/maven/*"
mvn deploy:deploy-file -Durl=https://reposilite.serviceplanet.nl/third-party \
-DgeneratePom=true \
-DrepositoryId=third-party \
-Dfile=${FILE} \
-DgroupId=${GROUP_ID} \
-DartifactId=${ARTIFACT_ID} \
-Dversion=${ARTIFACT_VERSION} \
-Dpackaging=jar \
-Ddescription="Service Planet packaged Eclipse BIRT."
}
# Configured for the 'birt-runtime-4.13.0-20230309.zip' BIRT runtime ZIP file. Modify when updating.
# Core
deploy "${LIB_PATH}/org.eclipse.birt.runtime_4.13.0-20230302.jar" "${GROUP_ID_BASE}" "org.eclipse.birt.runtime" "4.13.0"
deploy "${LIB_PATH}/org.eclipse.datatools.connectivity.oda.consumer_3.4.101.201811012051.jar" "${GROUP_ID_BASE}" "org.eclipse.datatools.connectivity.oda.consumer" "3.4.101"
deploy "${LIB_PATH}/org.eclipse.datatools.connectivity.oda_3.6.101.201811012051.jar" "${GROUP_ID_BASE}" "org.eclipse.datatools.connectivity.oda" "3.6.101"
deploy "${LIB_PATH}/org.eclipse.datatools.connectivity_1.14.102.201911250848.jar" "${GROUP_ID_BASE}" "org.eclipse.datatools.connectivity" "1.14.102"
deploy "${LIB_PATH}/org.eclipse.emf.common_2.28.0.v20230223-0922.jar" "${GROUP_ID_BASE}" "org.eclipse.emf.common" "2.28.0"
deploy "${LIB_PATH}/org.eclipse.emf.ecore.xmi_2.18.0.v20230211-1150.jar" "${GROUP_ID_BASE}" "org.eclipse.emf.ecore.xmi" "2.18.0"
deploy "${LIB_PATH}/org.eclipse.emf.ecore_2.33.0.v20230226-0921.jar" "${GROUP_ID_BASE}" "org.eclipse.emf.ecore" "2.33.0"
deploy "${LIB_PATH}/org.eclipse.equinox.common_3.16.200.v20220817-1601.jar" "${GROUP_ID_BASE}" "org.eclipse.equinox.common" "3.16.200"
deploy "${LIB_PATH}/org.eclipse.equinox.registry_3.11.200.v20220817-1601.jar" "${GROUP_ID_BASE}" "org.eclipse.equinox.registry" "3.11.200"
deploy "${LIB_PATH}/org.eclipse.osgi_3.18.100.v20220817-1601.jar" "${GROUP_ID_BASE}" "org.eclipse.osgi" "3.18.100"
deploy "${LIB_PATH}/com.github.librepdf.openpdf_1.3.26.jar" "${GROUP_ID_BASE}" "com.github.librepdf.openpdf" "1.3.26"
deploy "${LIB_PATH}/org.apache.batik.anim_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.anim" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.awt.util_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.awt.util" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.bridge_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.bridge" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.css_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.css" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.constants_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.constants" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.dom_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.dom" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.ext_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.ext" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.gvt_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.gvt" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.i18n_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.i18n" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.parser_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.parser" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.script_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.script" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.dom.svg_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.dom.svg" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.transcoder_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.transcoder" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.util_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.util" "1.14.0"
deploy "${LIB_PATH}/org.apache.batik.xml_1.14.0.v20210324-0332.jar" "${GROUP_ID_BASE}" "org.apache.batik.xml" "1.14.0"
deploy "${LIB_PATH}/org.apache.xerces_2.12.2.v20220131-0835.jar" "${GROUP_ID_BASE}" "org.apache.xerces" "2.12.2"
deploy "${LIB_PATH}/org.apache.xmlgraphics_2.6.0.v20210409-0748.jar" "${GROUP_ID_BASE}" "org.apache.xmlgraphics" "2.6.0"
deploy "${LIB_PATH}/wrapped.com.ibm.icu.icu4j_3.8.0.jar" "${GROUP_ID_BASE}" "wrapped.com.ibm.icu.icu4j" "3.8.0"
deploy "${LIB_PATH}/org.eclipse.core.runtime_3.26.0.v20220813-0916.jar" "${GROUP_ID_BASE}" "org.eclipse.core.runtime" "3.26.0"
deploy "${LIB_PATH}/org.mozilla.javascript_1.7.10.v20190430-1943.jar" "${GROUP_ID_BASE}" "org.mozilla.javascript" "1.7.10"
deploy "${LIB_PATH}/org.w3c.dom.smil_1.0.1.v200903091627.jar" "${GROUP_ID_BASE}" "org.w3c.dom.smil" "1.0.1"
deploy "${LIB_PATH}/org.w3c.dom.svg_1.1.0.v201011041433.jar" "${GROUP_ID_BASE}" "org.w3c.dom.svg" "1.1.0"
deploy "${LIB_PATH}/org.w3c.css.sac_1.3.1.v200903091627.jar" "${GROUP_ID_BASE}" "org.w3c.css.sac" "1.3.1"
# Addons
deploy "${ADDONS_PATH}/org.eclipse.datatools.enablement.oda.xml_1.4.102.201901091730.jar" "${GROUP_ID_BASE}" "org.eclipse.datatools.enablement.oda.xml" "1.4.102"
<!-- BIRT Runtime -->
<!-- WARNING! READ THIS BEFORE UPDATING OR CHANGING! -->
<!-- BIRT doesn't upload these artifacts to Maven central anymore. The 'org.eclipse.birt.runtime' artifact -->
<!-- also doesn't have a POM which specifies all of it dependencies anymore (used to have it). -->
<!-- Therefor the 'install_birt_in_maven_repo.ksh' script in the root of the 'server.reporting' module -->
<!-- can be used to upload the necessary dependencies to our Maven repo from a BIRT runtime ZIP such as -->
<!-- 'birt-runtime-4.13.0-20230309.zip'. When updating BIRT you will need to update the 'install_birt_in_maven_repo' -->
<!-- file and modify the dependencies below. Unfortunately I (@siepkes) don't know of an airtight way -->
<!-- to get all the dependencies needed so use this as a template and apply trail and error. -->
<!-- Currently configured for BIRT: 4.13.0-20230309 (birt-runtime-4.13.0-20230309.zip) -->
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.birt.runtime</artifactId>
<version>4.13.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.datatools.connectivity.oda.consumer</artifactId>
<version>3.4.101</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.datatools.connectivity.oda</artifactId>
<version>3.6.101</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.datatools.connectivity</artifactId>
<version>1.14.102</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.emf.common</artifactId>
<version>2.28.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.emf.ecore.xmi</artifactId>
<version>2.18.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.emf.ecore</artifactId>
<version>2.33.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.equinox.common</artifactId>
<version>3.16.200</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.equinox.registry</artifactId>
<version>3.11.200</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.osgi</artifactId>
<version>3.18.100</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>com.github.librepdf.openpdf</artifactId>
<version>1.3.26</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.anim</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.awt.util</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.bridge</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.dom</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.gvt</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.i18n</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.parser</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.script</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.dom.svg</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.ext</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.transcoder</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.util</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.xml</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.css</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.batik.constants</artifactId>
<version>1.14.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.xerces</artifactId>
<version>2.12.2</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.apache.xmlgraphics</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>wrapped.com.ibm.icu.icu4j</artifactId>
<version>3.8.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.core.runtime</artifactId>
<version>3.26.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.mozilla.javascript</artifactId>
<version>1.7.10</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.w3c.dom.smil</artifactId>
<version>1.0.1</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.w3c.dom.svg</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.w3c.css.sac</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>nl.serviceplanet.org.eclipse.birt</groupId>
<artifactId>org.eclipse.datatools.enablement.oda.xml</artifactId>
<version>1.4.102</version>
</dependency>
@siepkes
Copy link
Author

siepkes commented Jan 2, 2024

That would be something like ./install_birt_in_maven_repo.ksh ~/Downloads/birt. The ~/Downloads/birt directory should contain the contents of the BIRT runtime zip file (birt-runtime-4.13.0-20230309.zip).

If you post the error you are seeing I might be able to help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment