From: Mathieu Baudier Date: Mon, 4 Mar 2024 18:19:26 +0000 (+0100) Subject: Introduce init runtime manager X-Git-Tag: v2.3.6~11 X-Git-Url: https://git.argeo.org/?p=gpl%2Fargeo-freed.git;a=commitdiff_plain;h=40ecc06bea96cb976bc04abe84bc7ee6118ead25 Introduce init runtime manager --- diff --git a/etc/argeo/user/argeo.ini b/etc/argeo/user/argeo.ini new file mode 100644 index 0000000..2cb5396 --- /dev/null +++ b/etc/argeo/user/argeo.ini @@ -0,0 +1,18 @@ + +## OSGi system extensions +org.osgi.framework.system.packages.extra=\ +sun.security.util,\ +sun.security.internal.spec,\ +sun.security.provider,\ +com.sun.net.httpserver,\ +com.sun.jndi.ldap,\ +com.sun.jndi.ldap.sasl,\ +com.sun.jndi.dns,\ +com.sun.security.jgss,\ +com.sun.nio.file,\ +com.sun.nio.sctp + +# Disable Equinox Jetty autostart +org.eclipse.equinox.http.jetty.autostart=false + +osgi.framework.useSystemProperties=false \ No newline at end of file diff --git a/etc/argeo/user/cms/cms.ini b/etc/argeo/user/cms/cms.ini new file mode 100644 index 0000000..29a8339 --- /dev/null +++ b/etc/argeo/user/cms/cms.ini @@ -0,0 +1,21 @@ +argeo.osgi.sources=\ +a2+reference:///\ +?osgi=equinox\ +&crypto=fips\ +&swt=rap\ + +argeo.osgi.start.2=\ +org.eclipse.equinox.http.servlet,\ +org.apache.felix.scr,\ +org.eclipse.equinox.console,\ +org.eclipse.rap.rwt.osgi,\ + +argeo.osgi.start.3=\ +org.argeo.cms,\ +org.argeo.cms.swt.rap,\ +org.argeo.cms.swt.rcp,\ +org.argeo.cms.ee,\ +org.argeo.cms.lib.dbus,\ +org.argeo.cms.lib.sshd,\ +org.argeo.cms.lib.equinox,\ +org.argeo.cms.lib.jetty,\ diff --git a/etc/argeo/user/cms/debug.ini b/etc/argeo/user/cms/debug.ini new file mode 100644 index 0000000..9a7f33c --- /dev/null +++ b/etc/argeo/user/cms/debug.ini @@ -0,0 +1 @@ +osgi.clean=true \ No newline at end of file diff --git a/etc/argeo/user/jvm.args b/etc/argeo/user/jvm.args new file mode 100644 index 0000000..e69de29 diff --git a/etc/argeo/user/slc/argeo.ini b/etc/argeo/user/slc/argeo.ini new file mode 100644 index 0000000..45c47c9 --- /dev/null +++ b/etc/argeo/user/slc/argeo.ini @@ -0,0 +1,19 @@ + +## OSGi system extensions +org.osgi.framework.system.packages.extra=\ +org.argeo.init,\ +org.argeo.init.a2,\ +org.argeo.init.osgi,\ +sun.security.util,\ +sun.security.internal.spec,\ +sun.security.provider,\ +com.sun.net.httpserver,\ +com.sun.jndi.ldap,\ +com.sun.jndi.ldap.sasl,\ +com.sun.jndi.dns,\ +com.sun.security.jgss,\ +com.sun.nio.file,\ +com.sun.nio.sctp + +# Disable Equinox Jetty autostart +org.eclipse.equinox.http.jetty.autostart=false diff --git a/etc/argeo/user/slc/debug.ini b/etc/argeo/user/slc/debug.ini new file mode 100644 index 0000000..0ab492a --- /dev/null +++ b/etc/argeo/user/slc/debug.ini @@ -0,0 +1,2 @@ +osgi.console=2023 +osgi.clean=true \ No newline at end of file diff --git a/etc/argeo/user/slc/slc.ini b/etc/argeo/user/slc/slc.ini new file mode 100644 index 0000000..02f6e09 --- /dev/null +++ b/etc/argeo/user/slc/slc.ini @@ -0,0 +1,22 @@ + +argeo.osgi.sources=\ +a2+reference:///\ +?osgi=equinox\ +&include=org.argeo.tp\ +&include=org.argeo.tp.osgi\ +&include=org.argeo.tp.eclipse\ +&include=org.argeo.tp.httpd\ +&include=org.argeo.tp.sshd\ +&include=org.argeo.tp.sys\ +&include=org.argeo.cms\ +&include=org.argeo.slc\ + +## Active modules +argeo.osgi.start.2=\ +org.apache.felix.scr,\ +org.eclipse.equinox.console,\ + +argeo.osgi.start.3=\ +org.argeo.cms,\ +org.argeo.cms.lib.dbus,\ +org.argeo.slc.cms,\ diff --git a/etc/default/argeo b/etc/default/argeo new file mode 100644 index 0000000..73bddc1 --- /dev/null +++ b/etc/default/argeo @@ -0,0 +1,5 @@ +# Whether we use a local deployment +# /usr/$ARGEO_LOCAL/share +# /usr/$ARGEO_LOCAL/etc +# etc. +#ARGEO_LOCAL=local \ No newline at end of file diff --git a/local.mk b/local.mk index 16e212d..b2af135 100644 --- a/local.mk +++ b/local.mk @@ -25,3 +25,4 @@ install: $(COPY) -r usr/libexec/* $(DESTDIR)$(libexecdir) $(MAKE) -C sjbin install systemctl daemon-reload + \ No newline at end of file diff --git a/usr/lib/argeo/jvm.args b/usr/lib/argeo/jvm.args new file mode 100644 index 0000000..f03fda7 --- /dev/null +++ b/usr/lib/argeo/jvm.args @@ -0,0 +1,7 @@ +# Force UTF-8 encoding +-Dfile.encoding=UTF-8 + +# Ensure OpenJDK and OpenJ9 are compatible +-XX:+IgnoreUnrecognizedVMOptions + +-cp /usr/local/share/a2/osgi/equinox/org.argeo.tp.osgi/org.eclipse.osgi.3.18.jar:/usr/local/share/a2/org.argeo.cms/org.argeo.init.2.3.jar \ No newline at end of file diff --git a/usr/lib/systemd/system/argeo@.service b/usr/lib/systemd/system/argeo@.service index f3654cd..b940216 100644 --- a/usr/lib/systemd/system/argeo@.service +++ b/usr/lib/systemd/system/argeo@.service @@ -16,7 +16,6 @@ CacheDirectory=argeo.d/%I WorkingDirectory=/var/lib/argeo.d/%I ExecStart=java \ --Dfile.encoding=UTF-8 \ -Dosgi.configuration.cascaded=true \ -Dosgi.sharedConfiguration.area=/etc/argeo.d/%I/ \ -Dosgi.sharedConfiguration.area.readOnly=true \ @@ -29,8 +28,9 @@ ExecStart=java \ -Dorg.eclipse.equinox.http.jetty.autostart=false \ @/etc/argeo.d/jvm.args \ @${CONFIGURATION_DIRECTORY}/jvm.args \ -@/usr/share/argeo/jvm.args - +@/usr/share/argeo/jvm.args \ +org.argeo.init.Service + # Exit codes of the JVM when SIGTERM or SIGINT have been caught: SuccessExitStatus=143 130 diff --git a/usr/lib/systemd/user/argeo.service b/usr/lib/systemd/user/argeo.service new file mode 100644 index 0000000..8534a94 --- /dev/null +++ b/usr/lib/systemd/user/argeo.service @@ -0,0 +1,31 @@ +[Unit] +Description=Argeo user runtime + +[Service] +Type=simple +StateDirectory=argeo/slc +LogsDirectory=argeo/slc +ConfigurationDirectory=argeo/slc +CacheDirectory=argeo/slc +WorkingDirectory=/usr/local/ +EnvironmentFile=/usr/local/etc/default/argeo + +# Optional files +ExecStartPre=/usr/bin/mkdir -p ${CONFIGURATION_DIRECTORY} +ExecStartPre=/usr/bin/touch ${CONFIGURATION_DIRECTORY}/jvm.args + +ExecStart=java \ +-Dosgi.framework.useSystemProperties=false \ +-Dosgi.noShutdown=true \ +-Declipse.ignoreApp=true \ +@etc/argeo/user/jvm.args \ +@${CONFIGURATION_DIRECTORY}/jvm.args \ +@lib/argeo/jvm.args \ +org.argeo.init.RuntimeManager \ +etc/argeo/user/slc + +# Exit codes of the JVM when SIGTERM or SIGINT have been caught: +SuccessExitStatus=143 130 + +[Install] +WantedBy=multi-user.target diff --git a/usr/lib/systemd/user/argeo@.service b/usr/lib/systemd/user/argeo@.service index 6704c8f..3e378b8 100644 --- a/usr/lib/systemd/user/argeo@.service +++ b/usr/lib/systemd/user/argeo@.service @@ -10,7 +10,6 @@ CacheDirectory=argeo.d/%I #WorkingDirectory= ExecStart=java \ --Dfile.encoding=UTF-8 \ -Dosgi.configuration.cascaded=true \ -Dosgi.sharedConfiguration.area=/etc/argeo.user.d/%I/ \ -Dosgi.sharedConfiguration.area.readOnly=true \ @@ -24,7 +23,9 @@ ExecStart=java \ -Djava.library.path=/usr/lib/a2/swt/rcp/org.argeo.tp.swt/ \ @/etc/argeo.user.d/jvm.args \ @/etc/argeo.user.d/%I/jvm.args \ -@/usr/share/argeo/jvm.args +@/usr/share/argeo/jvm.args \ +org.argeo.init.Service + # Exit codes of the JVM when SIGTERM or SIGINT have been caught: SuccessExitStatus=143 130 diff --git a/usr/share/argeo/jvm.args b/usr/share/argeo/jvm.args index 2d3190d..0f24e94 100644 --- a/usr/share/argeo/jvm.args +++ b/usr/share/argeo/jvm.args @@ -1 +1,7 @@ --cp /usr/share/a2/osgi/equinox/org.argeo.tp.osgi/org.eclipse.osgi.3.18.jar:/usr/share/a2/org.argeo.cms/org.argeo.init.2.3.jar org.argeo.init.Service \ No newline at end of file +# Force UTF-8 encoding +-Dfile.encoding=UTF-8 + +# Ensure OpenJDK and OpenJ9 are compatible +-XX:+IgnoreUnrecognizedVMOptions + +-cp /usr/share/a2/osgi/equinox/org.argeo.tp.osgi/org.eclipse.osgi.3.18.jar:/usr/share/a2/org.argeo.cms/org.argeo.init.2.3.jar \ No newline at end of file