java.security.manager=
java.security.policy=file:../../all.policy
-argeo.node.repo.type=localfs
+argeo.node.repo.type=h2
#argeo.node.useradmin.uris=ldap://uid=admin,ou=system:secret@localhost:10389/dc=example,dc=com
#argeo.node.useradmin.uris=ldap://uid=admin,ou=system:secret@localhost:10389\
</source>
</sources>
</mapping>
+ <mapping>
+ <directory>/etc/node/conf.d</directory>
+ <username>root</username>
+ <groupname>node</groupname>
+ <filemode>640</filemode>
+ <configuration>noreplace</configuration>
+ <directoryIncluded>false</directoryIncluded>
+ <sources>
+ <source>
+ <location>rpm/etc/node/conf.d</location>
+ <includes>
+ <include>*.ini</include>
+ <include>*.txt</include>
+ </includes>
+ </source>
+ </sources>
+ </mapping>
<mapping>
<directory>/usr/lib/systemd/system</directory>
<username>root</username>
</source>
</sources>
</mapping>
+ <mapping>
+ <directory>/usr/share/node</directory>
+ <username>root</username>
+ <groupname>root</groupname>
+ <filemode>644</filemode>
+ <directoryIncluded>false</directoryIncluded>
+ <sources>
+ <source>
+ <location>rpm/usr/share/node</location>
+ <includes>
+ <include>config.ini</include>
+ <include>all.policy</include>
+ </includes>
+ </source>
+ </sources>
+ </mapping>
<mapping>
<directory>/usr/sbin</directory>
<username>root</username>
<scriptFile>rpm/scripts/preinstall</scriptFile>
</preinstallScriptlet>
<requires>
-<!-- <require>argeo-cms-platform</require> -->
+ <require>argeo-cms-node</require>
<require>osgi-boot</require>
<!-- do not explicitely require java -->
</requires>
--- /dev/null
+# Rename to <my app>.ini
+
+# Backend
+#argeo.osgi.start.5.apps=org.argeo.suite.apps
+
+# UI
+#argeo.osgi.start.6.apps=org.argeo.suite.apps.web,org.argeo.suite.workbench.rap
+++ /dev/null
-argeo.node.repo.type=h2
-org.osgi.service.http.port=8080
-osgi.console=2323
-
-# Backend
-#argeo.osgi.start.5.apps=org.argeo.suite.apps
-
-# UI
-#argeo.osgi.start.6.apps=org.argeo.suite.apps.web,org.argeo.suite.workbench.rap
-
-# DO NOT CHANGE BELOW UNLESS YOU KNOW WHAT YOU ARE DOING
-osgi.clean=true
-osgi.bundles=org.argeo.osgi.boot.jar@start
-argeo.osgi.bundles=\
-/usr/local/share/osgi;in=**/*.jar,\
-/usr/share/osgi;in=**/*.jar
-
-argeo.osgi.start.2.node=\
-org.eclipse.equinox.http.servlet,\
-org.eclipse.equinox.http.jetty,\
-org.eclipse.equinox.metatype,\
-org.eclipse.equinox.cm,\
-org.eclipse.rap.rwt.osgi
-
-argeo.osgi.start.3.node=\
-org.argeo.cms
-
-argeo.osgi.start.4.node=\
-org.eclipse.gemini.blueprint.extender,\
-org.eclipse.equinox.http.registry
-
-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
-
-eclipse.ignoreApp=true
-osgi.noShutdown=true
-org.eclipse.equinox.http.jetty.autostart=false
-org.eclipse.rap.workbenchAutostart=false
--- /dev/null
+## HTTP server
+org.osgi.service.http.port=8080
+
+## System management
+osgi.console=2323
+
+## Standalone
+#argeo.node.useradmin.uris=dc=example,dc=com.ldif
+#argeo.node.repo.type=h2
+
+## Deployed
+#argeo.node.useradmin.uris=ldap://cn=Directory%20Manager:argeoargeo@localhost/dc=example,dc=com
+#argeo.node.repo.type=postgresql
+#argeo.node.repo.dburl=jdbc:postgresql://localhost/node
+#argeo.node.repo.dbuser=argeo
+#argeo.node.repo.dbpassword=argeo
+
+## Complex user configuration examples
+#argeo.node.useradmin.uris="dc=example,dc=com.ldif dc=example,dc=org.ldif"
+#argeo.node.useradmin.uris="ldap://uid=admin,ou=system:secret@localhost:10389\
+#/dc=example,dc=com?userBase=ou=users&groupBase=ou=groups dc=example,dc=org.ldif"
+
+++ /dev/null
-grant {
- permission java.security.AllPermission;
-};
\ No newline at end of file
--- /dev/null
+export LANG=en_US.utf8
+JAVA_OPTS="-showversion -Xmx128m"
+#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"
# 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=/var/lib/$APP
DATA_DIR=$EXEC_DIR/data
CONF_RW=$EXEC_DIR/state
+CONFIG_INI=$CONF_RW/config.ini
LOG_DIR=/var/log/$APP
LOG_FILE=$LOG_DIR/$APP.log
RUN_DIR=/var/run/$APP
PID_FILE=$RUN_DIR/$APP.pid
-#SHUTDOWN_FILE=$RUN_DIR/$APP.shutdown
OSGI_INSTALL_AREA=/usr/share/osgi/boot
OSGI_FRAMEWORK=$OSGI_INSTALL_AREA/org.eclipse.osgi.jar
RETVAL=0
start() {
- if [ -f $PID_FILE ];then
- PID=`cat $PID_FILE`
- kill -0 $PID &> /dev/null
- PID_EXISTS=$?
- if [ $PID_EXISTS -eq 0 ]; then
- echo $APP already running with pid $PID
- RETVAL=1
- return $RETVAL
- else
- echo Old $APP process with pid $PID is dead, removing $PID_FILE
- rm -f $PID_FILE
- fi
- fi
+ mkdir -p $CONF_RW
+ mkdir -p $DATA_DIR
+ chown -R $APP.APP $EXEC_DIR
+
+ # Merge config files
+ echo ## Equinox configuration - Generated by /usr/sbin/nodectl > $CONFIG_INI
+ cat $BASE_CONFIG_INI >> $CONFIG_INI
+ cat $CONF_DIR/$APP.ini >> $CONFIG_INI
+ for file in `ls -v $CONF_DIRS/*.ini`; do
+ echo "\n# $file\n" >> $CONFIG_INI;
+ cat $file >> $CONFIG_INI
+ done;
-# if [ ! -f $CONF_RW/config.ini ]; then
- cp --preserve $CONF_DIR/config.ini $CONF_RW/config.ini
-# fi
-# touch $SHUTDOWN_FILE
cd $EXEC_DIR
$JVM \
-Dlog4j.configuration="file:$CONF_DIR/log4j.properties" \
- -Djava.security.manager= \
- -Djava.security.policy="file:$CONF_DIR/node.policy" \
$JAVA_OPTS -jar $OSGI_FRAMEWORK \
-configuration "$CONF_RW" \
-data "$DATA_DIR"
fi
# notifies application by removing the shutdown file
- rm -f $SHUTDOWN_FILE
+# rm -f $SHUTDOWN_FILE
+ kill $PID
# wait 10 min for application to shutdown, then kill it
TIMEOUT=$((10*60))
--- /dev/null
+grant {
+ permission java.security.AllPermission;
+};
\ No newline at end of file
--- /dev/null
+# Only Argeo OSGi Boot is explicitly started
+osgi.bundles=org.argeo.osgi.boot.jar@start
+osgi.clean=true
+
+# Provisioning
+argeo.osgi.bundles=\
+/etc/node/modules;in=*/*,\
+/usr/local/share/osgi;in=**/*.jar,\
+/usr/share/osgi;in=**/*.jar
+
+# Required standard bundles to start
+argeo.osgi.start.2.node=\
+org.eclipse.equinox.http.servlet,\
+org.eclipse.equinox.http.jetty,\
+org.eclipse.equinox.metatype,\
+org.eclipse.equinox.cm,\
+org.eclipse.rap.rwt.osgi
+
+# Required CMS bundles to start
+argeo.osgi.start.3.node=\
+org.argeo.cms
+
+# Extension managers
+argeo.osgi.start.4.node=\
+org.eclipse.gemini.blueprint.extender,\
+org.eclipse.equinox.http.registry
+
+# 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
+
+# Security manager
+java.security.manager=
+java.security.policy=file:/usr/share/node/all.policy
+
+# Required properties
+eclipse.ignoreApp=true
+osgi.noShutdown=true
+org.eclipse.equinox.http.jetty.autostart=false
+org.eclipse.rap.workbenchAutostart=false