From 334621b690aac8aba84ecbb13823e55121ae3c43 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Sun, 29 Mar 2020 09:28:06 +0200 Subject: [PATCH] Argeo Companion launcher. --- rcp/dep/org.argeo.dep.cms.e4.rcp/pom.xml | 4 +- .../assembly/argeo-companion.xml | 50 +++++++ .../argeo-companion/base/bin/argeo-companion | 42 ++++++ .../etc/argeo-companion/argeo-companion.ini | 23 +++- .../base/etc/argeo-companion/log4j.properties | 15 +++ .../base/etc/argeo-companion/settings.sh | 12 ++ rcp/dist/argeo-companion/pom.xml | 124 ++++++++++++++++++ .../rpm/etc/argeo-companion/log4j.properties | 32 ----- .../rpm/usr/bin/argeo-companion | 30 ++--- rcp/dist/pom.xml | 18 +++ rcp/pom.xml | 1 + 11 files changed, 288 insertions(+), 63 deletions(-) create mode 100644 rcp/dist/argeo-companion/assembly/argeo-companion.xml create mode 100755 rcp/dist/argeo-companion/base/bin/argeo-companion rename rcp/dist/argeo-companion/{rpm => base}/etc/argeo-companion/argeo-companion.ini (68%) create mode 100644 rcp/dist/argeo-companion/base/etc/argeo-companion/log4j.properties create mode 100644 rcp/dist/argeo-companion/base/etc/argeo-companion/settings.sh create mode 100644 rcp/dist/argeo-companion/pom.xml delete mode 100644 rcp/dist/argeo-companion/rpm/etc/argeo-companion/log4j.properties create mode 100644 rcp/dist/pom.xml diff --git a/rcp/dep/org.argeo.dep.cms.e4.rcp/pom.xml b/rcp/dep/org.argeo.dep.cms.e4.rcp/pom.xml index 86d28a330..af8416d7a 100644 --- a/rcp/dep/org.argeo.dep.cms.e4.rcp/pom.xml +++ b/rcp/dep/org.argeo.dep.cms.e4.rcp/pom.xml @@ -651,7 +651,7 @@ argeo-cms-e4-rcp - /usr/share/osgi + /usr/lib/osgi root root 644 @@ -714,7 +714,7 @@ ${maven.build.timestamp} - /usr/share/osgi + /usr/lib/osgi root root 644 diff --git a/rcp/dist/argeo-companion/assembly/argeo-companion.xml b/rcp/dist/argeo-companion/assembly/argeo-companion.xml new file mode 100644 index 000000000..9b0db0e42 --- /dev/null +++ b/rcp/dist/argeo-companion/assembly/argeo-companion.xml @@ -0,0 +1,50 @@ + + dist + + + dir + + + + base/bin + bin + 0755 + + ** + + + + base/etc + etc + 0644 + + ** + + + + + + false + ${artifact.groupId}/${artifact.artifactId}-${artifact.version}.${artifact.extension} + share/osgi + true + true + compile + + org.argeo.tp:argeo-tp + *:*:zip:*:* + + + + true + true + + + org.argeo.commons:osgi-boot:zip:*:* + + + + \ No newline at end of file diff --git a/rcp/dist/argeo-companion/base/bin/argeo-companion b/rcp/dist/argeo-companion/base/bin/argeo-companion new file mode 100755 index 000000000..b4f944bcd --- /dev/null +++ b/rcp/dist/argeo-companion/base/bin/argeo-companion @@ -0,0 +1,42 @@ +#!/bin/sh +APP=argeo-companion + +JVM=java + +BASE_DIR="$(cd "$(dirname "$0")/.."; pwd -P)" + +# Directories and files +CONF_DIR=$BASE_DIR/etc/$APP + +EXEC_DIR=. +DATA_DIR=$EXEC_DIR/data +CONF_RW=$EXEC_DIR/state + +A2_SOURCES=a2://$BASE_DIR/share/osgi +OSGI_INSTALL_AREA=$BASE_DIR/share/osgi/boot +OSGI_FRAMEWORK=$OSGI_INSTALL_AREA/org.eclipse.osgi.jar + +# Overwrite variables +if [ -f $CONF_DIR/settings.sh ];then + . $CONF_DIR/settings.sh +fi + +RETVAL=0 + +start() { + mkdir -p $CONF_RW + mkdir -p $DATA_DIR + + cp $CONF_DIR/argeo-companion.ini $CONF_RW/config.ini + + cd $EXEC_DIR + $JVM \ + -Dlog4j.configuration="file:$CONF_DIR/log4j.properties" \ + -Dargeo.osgi.sources=$A2_SOURCES \ + $JAVA_OPTS -jar $OSGI_FRAMEWORK \ + -console \ + -configuration "$CONF_RW" \ + -data "$DATA_DIR" +} + +start \ No newline at end of file diff --git a/rcp/dist/argeo-companion/rpm/etc/argeo-companion/argeo-companion.ini b/rcp/dist/argeo-companion/base/etc/argeo-companion/argeo-companion.ini similarity index 68% rename from rcp/dist/argeo-companion/rpm/etc/argeo-companion/argeo-companion.ini rename to rcp/dist/argeo-companion/base/etc/argeo-companion/argeo-companion.ini index 444c39d6c..5e405084b 100644 --- a/rcp/dist/argeo-companion/rpm/etc/argeo-companion/argeo-companion.ini +++ b/rcp/dist/argeo-companion/base/etc/argeo-companion/argeo-companion.ini @@ -1,9 +1,3 @@ -osgi.bundles=org.argeo.osgi.boot@start -osgi.clean=true - -argeo.osgi.start.2.rcp=\ -org.eclipse.core.runtime - argeo.osgi.start.2.node=\ org.eclipse.equinox.metatype,\ org.eclipse.equinox.ds,\ @@ -12,6 +6,9 @@ org.eclipse.equinox.cm,\ argeo.osgi.start.3.node=\ org.argeo.cms +argeo.osgi.start.4.rcp=\ +org.eclipse.core.runtime + applicationXMI=org.argeo.cms.e4.rcp/argeo-companion.e4xmi lifeCycleURI=bundleclass://org.argeo.cms.e4.rcp/org.argeo.cms.e4.rcp.CmsRcpLifeCycle clearPersistedState=true @@ -20,6 +17,18 @@ clearPersistedState=true # Remote node: #argeo.node.repo.labeledUri=http://root:demo@localhost:7070/jcr/node -log4j.configuration=file:../../log4j.properties argeo.node.useradmin.uris=os:/// eclipse.application=org.argeo.cms.e4.rcp.CmsE4Application + +# Bootstrap +osgi.bundles=org.argeo.osgi.boot@start +osgi.clean=true +# Packages provided by the OpenJDK JVM +org.osgi.framework.bootdelegation=com.sun.jndi.ldap,\ +com.sun.jndi.ldap.sasl,\ +com.sun.security.jgss,\ +com.sun.jndi.dns,\ +com.sun.nio.file,\ +com.sun.nio.sctp + +org.eclipse.equinox.http.jetty.autostart=false diff --git a/rcp/dist/argeo-companion/base/etc/argeo-companion/log4j.properties b/rcp/dist/argeo-companion/base/etc/argeo-companion/log4j.properties new file mode 100644 index 000000000..d93b23456 --- /dev/null +++ b/rcp/dist/argeo-companion/base/etc/argeo-companion/log4j.properties @@ -0,0 +1,15 @@ +log4j.rootLogger=WARN, console + +log4j.logger.org.argeo=DEBUG + +## Appenders +log4j.appender.console=org.apache.log4j.ConsoleAppender +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.ConversionPattern=%-5p %m%n + +log4j.appender.file=org.apache.log4j.DailyRollingFileAppender +log4j.appender.file.File=/var/log/argeo/argeo.csv +log4j.appender.file.layout=org.apache.log4j.PatternLayout +log4j.appender.file.layout.ConversionPattern=%d{ISO8601};"%m";%c;%p%n +log4j.appender.file.bufferedIO=true +log4j.appender.file.immediateFlush=false diff --git a/rcp/dist/argeo-companion/base/etc/argeo-companion/settings.sh b/rcp/dist/argeo-companion/base/etc/argeo-companion/settings.sh new file mode 100644 index 000000000..b20d4d8dd --- /dev/null +++ b/rcp/dist/argeo-companion/base/etc/argeo-companion/settings.sh @@ -0,0 +1,12 @@ +export LANG=en_US.utf8 +JAVA_OPTS="-showversion -Xmx128m" + +# JMX +#JAVA_OPTS="-showversion -Xmx512m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7084 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" + +# Development +#JAVA_OPTS="-ea -agentlib:jdwp=transport=dt_socket,server=y,address=*:8000,suspend=n -showversion -Xmx512m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7084 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" + +# JMX over server tunnel +#JAVA_OPTS="-showversion -Xmx2048m -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.rmi.port=7084 -Dcom.sun.management.jmxremote.port=7084 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" +# and then: ssh root@remote-host -L 7084:127.0.0.1:7084 -N \ No newline at end of file diff --git a/rcp/dist/argeo-companion/pom.xml b/rcp/dist/argeo-companion/pom.xml new file mode 100644 index 000000000..8e5de5d26 --- /dev/null +++ b/rcp/dist/argeo-companion/pom.xml @@ -0,0 +1,124 @@ + + 4.0.0 + + org.argeo.slc.rcp + dist + 2.1.86-SNAPSHOT + .. + + argeo-companion + pom + Argeo Companion + + + dist + + + org.argeo.commons + org.argeo.dep.cms.client + ${version.argeo-commons} + + + org.argeo.commons + org.argeo.dep.cms.node + ${version.argeo-commons} + + + + org.argeo.slc.rcp + org.argeo.dep.cms.e4.rcp + 2.1.86-SNAPSHOT + + + + org.argeo.commons + osgi-boot + zip + ${version.argeo-commons} + + + + + + org.apache.maven.plugins + maven-assembly-plugin + + argeo-companion-${project.version} + false + + assembly/argeo-companion.xml + + + + + assembly-base + package + + single + + + + + + + + + rpmbuild + + + + org.codehaus.mojo + rpm-maven-plugin + + + rpm-node + package + + rpm + + + argeo-companion + + + /etc/argeo-companion + root + wheel + 640 + noreplace + false + + + base/etc/argeo-companion + + + + + /usr/bin + root + root + 755 + false + + + rpm/usr/bin + + argeo-companion + + + + + + + argeo-cms-e4-rcp + osgi-boot + + + + + + + + + + + diff --git a/rcp/dist/argeo-companion/rpm/etc/argeo-companion/log4j.properties b/rcp/dist/argeo-companion/rpm/etc/argeo-companion/log4j.properties deleted file mode 100644 index 13f949ff5..000000000 --- a/rcp/dist/argeo-companion/rpm/etc/argeo-companion/log4j.properties +++ /dev/null @@ -1,32 +0,0 @@ -log4j.rootLogger=WARN, development - -## Levels -log4j.logger.org.argeo=DEBUG -log4j.logger.org.argeo.jackrabbit.remote.ExtendedDispatcherServlet=WARN -log4j.logger.org.argeo.server.webextender.TomcatDeployer=INFO - -#log4j.logger.org.springframework.security=DEBUG -#log4j.logger.org.apache.commons.exec=DEBUG -#log4j.logger.org.apache.jackrabbit.webdav=DEBUG -#log4j.logger.org.apache.jackrabbit.remote=DEBUG -#log4j.logger.org.apache.jackrabbit.core.observation=DEBUG - -log4j.logger.org.apache.catalina=INFO -log4j.logger.org.apache.coyote=INFO - -log4j.logger.org.apache.directory=INFO -log4j.logger.org.apache.directory.server=ERROR -log4j.logger.org.apache.jackrabbit.core.query.lucene=ERROR - -## Appenders -# console is set to be a ConsoleAppender. -log4j.appender.console=org.apache.log4j.ConsoleAppender - -# console uses PatternLayout. -log4j.appender.console.layout=org.apache.log4j.PatternLayout -log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c - [%t]%n - -# development appender (slow!) -log4j.appender.development=org.apache.log4j.ConsoleAppender -log4j.appender.development.layout=org.apache.log4j.PatternLayout -log4j.appender.development.layout.ConversionPattern=%d{HH:mm:ss} [%16.16t] %5p %m (%F:%L) %c%n diff --git a/rcp/dist/argeo-companion/rpm/usr/bin/argeo-companion b/rcp/dist/argeo-companion/rpm/usr/bin/argeo-companion index ab25dc79e..c48beb80f 100755 --- a/rcp/dist/argeo-companion/rpm/usr/bin/argeo-companion +++ b/rcp/dist/argeo-companion/rpm/usr/bin/argeo-companion @@ -5,18 +5,14 @@ JVM=java # Directories and files CONF_DIR=/etc/$APP -CONF_DIRS=/etc/$APP/conf.d -BASE_POLICY_ALL=/usr/share/$APP/all.policy -BASE_CONFIG_INI=/usr/share/$APP/config.ini -EXEC_DIR=$HOME/.local/share/argeo-companion +EXEC_DIR=$HOME/.local/share/$APP DATA_DIR=$EXEC_DIR/data CONF_RW=$EXEC_DIR/state -CONFIG_INI=$CONF_RW/config.ini +A2_SOURCES=a2:///usr/share/osgi,a2:///usr/lib/osgi OSGI_INSTALL_AREA=/usr/share/osgi/boot OSGI_FRAMEWORK=$OSGI_INSTALL_AREA/org.eclipse.osgi.jar -ECLIPSE_LAUNCHER=$OSGI_INSTALL_AREA/org.eclipse.equinox.launcher.jar # Overwrite variables if [ -f $CONF_DIR/settings.sh ];then @@ -28,27 +24,17 @@ RETVAL=0 start() { mkdir -p $CONF_RW mkdir -p $DATA_DIR - - # Merge config files - printf "## Equinox configuration - Generated by /usr/sbin/nodectl ##\n\n" > $CONFIG_INI -# cat $BASE_CONFIG_INI >> $CONFIG_INI - printf "\n##\n## $CONF_DIR/$APP.ini\n##\n\n" >> $CONFIG_INI - cat $CONF_DIR/$APP.ini >> $CONFIG_INI - for file in `ls -v $CONF_DIRS/*.ini`; do - printf "\n##\n## $file\n##\n\n" >> $CONFIG_INI - cat $file >> $CONFIG_INI - done; - -# $JAVA_OPTS -jar $OSGI_FRAMEWORK \ + + cp $CONF_DIR/argeo-companion.ini $CONF_RW/config.ini cd $EXEC_DIR $JVM \ -Dlog4j.configuration="file:$CONF_DIR/log4j.properties" \ - -Dosgi.framework=$OSGI_FRAMEWORK \ - $JAVA_OPTS -classpath $ECLIPSE_LAUNCHER org.eclipse.equinox.launcher.Main \ + -Dargeo.osgi.sources=$A2_SOURCES \ + $JAVA_OPTS -jar $OSGI_FRAMEWORK \ + -console \ -configuration "$CONF_RW" \ -data "$DATA_DIR" } -start - +start \ No newline at end of file diff --git a/rcp/dist/pom.xml b/rcp/dist/pom.xml new file mode 100644 index 000000000..2a7c54401 --- /dev/null +++ b/rcp/dist/pom.xml @@ -0,0 +1,18 @@ + + + 4.0.0 + + org.argeo.slc.rcp + argeo-rcp + 2.1.86-SNAPSHOT + .. + + dist + RCP Deployable Distributions + pom + + argeo-companion + + \ No newline at end of file diff --git a/rcp/pom.xml b/rcp/pom.xml index 3663069df..d5f401005 100644 --- a/rcp/pom.xml +++ b/rcp/pom.xml @@ -17,6 +17,7 @@ org.argeo.cms.desktop org.argeo.cms.e4.rcp dep + dist -- 2.39.2