Introduce init runtime manager
authorMathieu Baudier <mbaudier@argeo.org>
Mon, 4 Mar 2024 18:19:26 +0000 (19:19 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Mon, 4 Mar 2024 18:19:26 +0000 (19:19 +0100)
14 files changed:
etc/argeo/user/argeo.ini [new file with mode: 0644]
etc/argeo/user/cms/cms.ini [new file with mode: 0644]
etc/argeo/user/cms/debug.ini [new file with mode: 0644]
etc/argeo/user/jvm.args [new file with mode: 0644]
etc/argeo/user/slc/argeo.ini [new file with mode: 0644]
etc/argeo/user/slc/debug.ini [new file with mode: 0644]
etc/argeo/user/slc/slc.ini [new file with mode: 0644]
etc/default/argeo [new file with mode: 0644]
local.mk
usr/lib/argeo/jvm.args [new file with mode: 0644]
usr/lib/systemd/system/argeo@.service
usr/lib/systemd/user/argeo.service [new file with mode: 0644]
usr/lib/systemd/user/argeo@.service
usr/share/argeo/jvm.args

diff --git a/etc/argeo/user/argeo.ini b/etc/argeo/user/argeo.ini
new file mode 100644 (file)
index 0000000..2cb5396
--- /dev/null
@@ -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 (file)
index 0000000..29a8339
--- /dev/null
@@ -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 (file)
index 0000000..9a7f33c
--- /dev/null
@@ -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 (file)
index 0000000..e69de29
diff --git a/etc/argeo/user/slc/argeo.ini b/etc/argeo/user/slc/argeo.ini
new file mode 100644 (file)
index 0000000..45c47c9
--- /dev/null
@@ -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 (file)
index 0000000..0ab492a
--- /dev/null
@@ -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 (file)
index 0000000..02f6e09
--- /dev/null
@@ -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 (file)
index 0000000..73bddc1
--- /dev/null
@@ -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
index 16e212d0c03cbb021e12c91fbdd1f51b01932210..b2af1350ae93149c275b19ed65826d4f0467129b 100644 (file)
--- 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 (file)
index 0000000..f03fda7
--- /dev/null
@@ -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
index f3654cd1798798a09856868701916500e083e6d4..b940216f759e11ca9625277cd98f51e136cb9315 100644 (file)
@@ -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 (file)
index 0000000..8534a94
--- /dev/null
@@ -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
index 6704c8fe0b74f6a7b0e368c9c9fd1a07353031f3..3e378b8df055bb0e996b23ae5f7cc0db66eb2bc6 100644 (file)
@@ -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
 
index 2d3190d6f74b652a301f116f19f21da2b235abce..0f24e947834b7648fca42d8c742c27553fbe43a9 100644 (file)
@@ -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