Mercurial > dive4elements > river
changeset 8675:ae3df0f96e15
Mavenize importer packaging and allow packaging for specific versions and database systems.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 09 Apr 2015 17:29:45 +0200 |
parents | 44ba71b0b75a |
children | 571c0e4321bd |
files | backend/contrib/import_river.sh backend/contrib/run_hydr_morph.sh backend/doc/documentation/de/importer-manual.tex backend/pom-oracle.xml backend/pom.xml backend/src/assembly/assembly.xml contrib/make_flys_release/bin/make-importer-package.sh |
diffstat | 7 files changed, 190 insertions(+), 58 deletions(-) [+] |
line wrap: on
line diff
--- a/backend/contrib/import_river.sh Thu Apr 09 17:08:51 2015 +0200 +++ b/backend/contrib/import_river.sh Thu Apr 09 17:29:45 2015 +0200 @@ -30,7 +30,7 @@ DEFAULT_PASS=flys_dami DEFAULT_LOG=$PWD/logs DEFAULT_BACKEND_NAME="XE" -JAR="hydr_morph/importer.jar" +JAR="bin/river-backend-1.0-SNAPSHOT*.jar" IMPORTER_DRY_RUN=false IMPORTER_MAINVALUE_TYPES=QWTD- IMPORTER_ANNOTATION_TYPES="conf/annotation-types.xml"
--- a/backend/contrib/run_hydr_morph.sh Thu Apr 09 17:08:51 2015 +0200 +++ b/backend/contrib/run_hydr_morph.sh Thu Apr 09 17:29:45 2015 +0200 @@ -7,7 +7,7 @@ BACKEND_PORT="1521" BACKEND_NAME="XE" LOG4J_CONFIG="conf/log4j.properties" -JAR="hydr_morph/importer.jar" +JAR="bin/river-backend-1.0-SNAPSHOT*.jar" #####################################################################
--- a/backend/doc/documentation/de/importer-manual.tex Thu Apr 09 17:08:51 2015 +0200 +++ b/backend/doc/documentation/de/importer-manual.tex Thu Apr 09 17:29:45 2015 +0200 @@ -28,7 +28,7 @@ \newcommand{\documentdate}{\today} \newcommand{\documentversion}{1.2} -\newcommand{\documentrevision}{rev6811} +\newcommand{\documentrevision}{rev8673:25f9ab25affd} \newcommand{\documentID}{importer-manual.tex} %----------------------------------------------
--- a/backend/pom-oracle.xml Thu Apr 09 17:08:51 2015 +0200 +++ b/backend/pom-oracle.xml Thu Apr 09 17:29:45 2015 +0200 @@ -38,16 +38,31 @@ </configuration> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>2.3</version> + <configuration> + <transformers> + <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <mainClass>org.dive4elements.river.importer.Importer</mainClass> + </transformer> + </transformers> + </configuration> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> - <archive> - <manifest> - <mainClass>org.dive4elements.river.importer.Importer</mainClass> - </manifest> - </archive> - <descriptorRefs> - <descriptorRef>jar-with-dependencies</descriptorRef> - </descriptorRefs> + <descriptors> + <descriptor>src/assembly/assembly.xml</descriptor> + </descriptors> </configuration> </plugin> </plugins>
--- a/backend/pom.xml Thu Apr 09 17:08:51 2015 +0200 +++ b/backend/pom.xml Thu Apr 09 17:29:45 2015 +0200 @@ -38,16 +38,31 @@ </configuration> </plugin> <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>2.3</version> + <configuration> + <transformers> + <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <mainClass>org.dive4elements.river.importer.Importer</mainClass> + </transformer> + </transformers> + </configuration> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> - <archive> - <manifest> - <mainClass>org.dive4elements.river.importer.Importer</mainClass> - </manifest> - </archive> - <descriptorRefs> - <descriptorRef>jar-with-dependencies</descriptorRef> - </descriptorRefs> + <descriptors> + <descriptor>src/assembly/assembly.xml</descriptor> + </descriptors> </configuration> </plugin> </plugins>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/backend/src/assembly/assembly.xml Thu Apr 09 17:29:45 2015 +0200 @@ -0,0 +1,45 @@ +<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> + <id>flys-importer</id> + <includeBaseDirectory>false</includeBaseDirectory> + <formats> + <format>tar</format> + </formats> + <fileSets> + <fileSet> + <directory>${project.build.directory}</directory> + <outputDirectory>/flys-importer/bin</outputDirectory> + <includes> + <include>*.jar</include> + </includes> + </fileSet> + <fileSet> + <directory>${project.basedir}/contrib</directory> + <outputDirectory>/flys-importer</outputDirectory> + <excludes> + <exclude>shpimporter/*.pyc</exclude> + </excludes> + </fileSet> + <fileSet> + <directory>${project.basedir}/doc/conf</directory> + <outputDirectory>/flys-importer/conf</outputDirectory> + </fileSet> + <fileSet> + <directory>${project.basedir}/doc/schema</directory> + <outputDirectory>/flys-importer/doc/schema</outputDirectory> + <includes> + <include>*.sql</include> + </includes> + </fileSet> + </fileSets> + <files> + <!-- Include PDF-manual if existant --> + <file> + <source> + ${project.basedir}/doc/documentation/de/importer-manual.pdf + </source> + <outputDirectory>/flys-importer/doc/</outputDirectory> + </file> + </files> +</assembly>
--- a/contrib/make_flys_release/bin/make-importer-package.sh Thu Apr 09 17:08:51 2015 +0200 +++ b/contrib/make_flys_release/bin/make-importer-package.sh Thu Apr 09 17:29:45 2015 +0200 @@ -1,56 +1,113 @@ #!/bin/bash +# Packaging-script for Dive4Elements River-Importer +# +# Copyright (C) 2011 - 2014 by Bundesanstalt für Gewässerkunde +# Software engineering by Intevation GmbH +# +# This file is Free Software under the GNU AGPL (>=v3) +# and comes with ABSOLUTELY NO WARRANTY! Check out the +# documentation coming with Dive4Elements River for details. + set -e -# See README for more information - -# The working directory. Resulting tarball will be placed in the directory above. -PKG_DIR=~/tmp/flys-importer +# See ../README for more information +# The working directory. Resulting tarball will be placed here. +PKG_DIR=/tmp/flys-importer # Path to the flys checkout -FLYS_DIR=~/flys/river/ -# Tarball that will be extracted into flys-importer/opt -EXTRAS=$1 - -rm -fr $PKG_DIR -mkdir -p $PKG_DIR/hydr_morph -mkdir -p $PKG_DIR/geodaesie -mkdir -p $PKG_DIR/opt/lib64 -mkdir -p $PKG_DIR/schema +SOURCE_DIR=$(readlink -f `dirname $0`)/../../.. -cd ${FLYS_DIR}/backend -mvn -f pom-oracle.xml clean compile assembly:single -cp target/backend-1.0-SNAPSHOT-jar-with-dependencies.jar \ - $PKG_DIR/hydr_morph/importer.jar -mvn -f pom.xml clean compile assembly:single -cp target/river-backend-1.0-SNAPSHOT-jar-with-dependencies.jar \ - $PKG_DIR/hydr_morph/importer_psql.jar -cp ${FLYS_DIR}/backend/contrib/shpimporter/*.py $PKG_DIR/geodaesie -cp ${FLYS_DIR}/backend/contrib/run_geo.sh \ - ${FLYS_DIR}/backend/contrib/run_hydr_morph.sh \ - ${FLYS_DIR}/backend/contrib/import_river.sh \ - $PKG_DIR -cp -r ${FLYS_DIR}/backend/doc/conf $PKG_DIR/ -if [ -f "$EXTRAS" ]; then - cd $PKG_DIR - tar -xzf "$EXTRAS" +usage(){ + cat << EOF + +usage: $0 [options] VERSION [EXTRAS] + +Create a D4E River Importer-package + +OPTIONS: + -?, --help Show this message + -o, --oracle Package is for Oracle. + Suitable jar-file for JDBC driver has to be given with + the environment variable ORACLE_JDBC + VERSION must specify a tag (usually MAYOR.MINOR.PATCH) or a branch name. + With EXTRAS, a tarball with dependencies can be given. +EOF +exit 0 +} + +OPTS=`getopt -o ?,o -l help,oracle -n $0 -- "$@"` + +if [ $? != 0 ] ; then usage; fi +eval set -- "$OPTS" +while true ; do + case "$1" in + "-?"|"--help") + usage;; + "--") + shift + break;; + "-o"|"--oracle") + BUILD_ORACLE="TRUE" + shift;; + *) + echo "Unknown Option $1" + usage;; + esac +done + +if [ $# != 1 ]; then + usage fi -cp ${FLYS_DIR}/backend/doc/schema/*.sql $PKG_DIR/schema +VERSION=$1 +EXTRAS=$2 + +# Update to VERSION +echo "WARNING: any local changes in $SOURCE_DIR will be packaged." +cd ${SOURCE_DIR} +if [ -z "`hg tags | sed -n "/$VERSION/p"`" -a -z "`hg branches | sed -n "/$VERSION/p"`" ] +then + echo "WARNING: $VERSION not found in $repo! Updating to default." + hg up default +else + hg up "$VERSION" +fi # create PDF of manual REV=`hg parent | sed -n '1s/[[:alnum:]]*: *\([0-9]*:.*\)/\1/;1p'` -cd ${FLYS_DIR}/backend/doc/documentation/de/ +cd ${SOURCE_DIR}/backend/doc/documentation/de/ sed -i "s/documentrevision..rev.*/documentrevision}{rev$REV}/" \ importer-manual.tex # run pdflatex three times to get references and page numbering right pdflatex importer-manual.tex pdflatex importer-manual.tex pdflatex importer-manual.tex -cp importer-manual.pdf $PKG_DIR - -sed -i 's/shpimporter\/shp/geodaesie\/shp/' $PKG_DIR/run_geo.sh -cd $PKG_DIR/.. -DATE=$(date +%Y%m%d%H%M) -tar -czf flys-importer_${DATE}.tar.gz flys-importer -sha1sum flys-importer_${DATE}.tar.gz > flys-importer_${DATE}.tar.gz.sha1 -echo Package is at: `readlink -f flys-importer_${DATE}.tar.gz` +# package importer +if [ "$BUILD_ORACLE" = "TRUE" ]; then + if [ ! -f $ORACLE_JDBC ]; then + echo "Could not find oracle jdbc in $ORACLE_JDBC" + echo "Please make sure that the ORACLE_JDBC variable is set correctly" + exit 1 + fi + mvn install:install-file -DgroupId=ojdbc -DartifactId=ojdbc \ + -Dversion=0 -Dpackaging=jar -Dfile=$ORACLE_JDBC -DgeneratePom=true + mvn -f $SOURCE_DIR/backend/pom-oracle.xml clean package assembly:single +else + mvn -f $SOURCE_DIR/backend/pom.xml clean package assembly:single +fi + +echo "INFO: create tarball" +rm -fr $PKG_DIR +mkdir $PKG_DIR +cd $PKG_DIR + +mv $SOURCE_DIR/backend/target/river-backend-1.0-SNAPSHOT*-flys-importer.tar \ + flys-importer-$VERSION.tar +if [ -f "$EXTRAS" ]; then + tar -xzf "$EXTRAS" + tar -rf flys-importer-$VERSION.tar opt +fi + +gzip flys-importer-$VERSION.tar +sha1sum flys-importer-$VERSION.tar.gz > flys-importer-$VERSION.tar.gz.sha1 +echo Package is at: `readlink -f flys-importer-$VERSION.tar.gz`