[Git][java-team/jameica][upstream] New upstream version 2.12.0+dfsg
Jochen Sprickerhof (@jspricke)
gitlab at salsa.debian.org
Sat Nov 8 15:56:07 GMT 2025
Jochen Sprickerhof pushed to branch upstream at Debian Java Maintainers / jameica
Commits:
61ef37f7 by Jochen Sprickerhof at 2025-11-04T20:47:35+01:00
New upstream version 2.12.0+dfsg
- - - - -
29 changed files:
- .classpath
- − build/BUILD
- build/ChangeLog
- build/build.properties
- build/build.xml
- − build/jameica-openbsd.sh
- − build/launch4j-win32.xml
- download.gradle
- plugin.xml
- src/de/willuhn/jameica/gui/Navigation.java
- src/de/willuhn/jameica/gui/input/SearchInput.java
- src/de/willuhn/jameica/gui/parts/TitlePart.java
- src/de/willuhn/jameica/gui/util/SWTUtil.java
- src/de/willuhn/jameica/services/LockService.java
- src/de/willuhn/jameica/services/VelocityService.java
- src/de/willuhn/jameica/system/Application.java
- src/de/willuhn/jameica/system/Config.java
- + src/de/willuhn/jameica/system/MigratingMultipleClassLoader.java
- src/de/willuhn/jameica/system/Platform.java
- src/de/willuhn/jameica/system/Server.java
- src/img/150/panelbar-button-default.png
- src/img/150/panelbar-button-hover.png
- src/img/150/panelbar.png
- src/img/200/panelbar-button-default.png
- src/img/200/panelbar-button-hover.png
- src/img/200/panelbar.png
- src/img/300/panelbar-button-default.png
- src/img/300/panelbar-button-hover.png
- src/img/300/panelbar.png
Changes:
=====================================
.classpath
=====================================
@@ -21,7 +21,6 @@
<classpathentry exported="true" kind="lib" path="lib/bouncycastle/bcpkix-jdk18on-1.72.jar"/>
<classpathentry exported="true" kind="lib" path="lib/bouncycastle/bcprov-jdk18on-1.72.jar"/>
<classpathentry exported="true" kind="lib" path="lib/bouncycastle/bcutil-jdk18on-1.72.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/h2/h2-1.4.199.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jakarta_commons/commons-cli-1.3.1.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jakarta_commons/commons-collections-3.2.2.jar"/>
<classpathentry exported="true" kind="lib" path="lib/jakarta_commons/commons-logging-1.2.jar"/>
@@ -45,5 +44,12 @@
<classpathentry exported="true" kind="lib" path="lib/swt/org.eclipse.jface-3.28.0.jar"/>
<classpathentry exported="true" kind="lib" path="lib/swt/org.eclipse.osgi-3.18.200.jar"/>
<classpathentry exported="true" kind="lib" path="lib/swt/com.ibm.icu_52.1.0.v201404241930.jar"/>
+ <classpathentry kind="lib" path="lib/jakarta_ee/angus-activation-2.0.2.jar"/>
+ <classpathentry kind="lib" path="lib/jakarta_ee/istack-commons-runtime-4.1.2.jar"/>
+ <classpathentry kind="lib" path="lib/jakarta_ee/jakarta.activation-api-2.1.3.jar"/>
+ <classpathentry kind="lib" path="lib/jakarta_ee/jakarta.xml.bind-api-4.0.2.jar"/>
+ <classpathentry kind="lib" path="lib/jakarta_ee/jaxb-core-4.0.5.jar"/>
+ <classpathentry kind="lib" path="lib/jakarta_ee/jaxb-runtime-4.0.5.jar"/>
+ <classpathentry kind="lib" path="lib/jakarta_ee/txw2-4.0.5.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
=====================================
build/BUILD deleted
=====================================
@@ -1,3 +0,0 @@
-#Build Number for ANT. Do not edit!
-#Fri Apr 14 15:30:08 CEST 2023
-build.number=488
=====================================
build/ChangeLog
=====================================
@@ -1,3 +1,13 @@
+2025-10-29 Version 2.12.0
+
+ * CHG: 0192 Support fr 32Bit-Windows, 32Bit-Linux und OpenBSD entfernt, Build-Script vereinfacht
+ * NEW: 0191 Update auf SWT 4.37 fr linux64, linux-arm64, win64, macos64, macos64-aarch64
+ * BUG: 0190 Das horizontale Skalieren des Hintergrundbildes war falsch - wirkt sich erst in SWT 4.37 aus
+ * BUG: 0189 Die Bilder fr die Zoom-Stufen hatten nicht die selben Seitenverhltnisse wie das Original-Bild. Fhrt in SWT 4.37 zu einer SWTException
+ * NEW: 0188 lib/jakarta_ee/* hinzugefgt
+ * BUG: 0187 Lock-File nur noch lschen, wenn wir es selbst erzeugt haben - siehe https://homebanking-hilfe.de/forum/topic.php?t=27446
+ * NEW: 0186 Erster Code fr H2-Migration (mehrere Versionen des H2-Treibers im Classpath, kann per "migration-h2=true/false" in de.willuhn.jameica.system.Config.properties umgeschaltet werden
+
2025-02-04 Version 2.10.5
* NEW: 0185 Wir liefern jetzt sowohl MariaDB- als auch MySQL-Treiber mit
=====================================
build/build.properties
=====================================
@@ -13,11 +13,9 @@ define.java.version = 11
define.projectname = jameica
define.jarfilename = ${define.projectname}.jar
-define.jarfilename.win32 = ${define.projectname}-win32.jar
define.jarfilename.win64 = ${define.projectname}-win64.jar
define.jarfilename.macos64 = ${define.projectname}-macos64.jar
define.jarfilename.macosaarch64 = ${define.projectname}-macos-aarch64.jar
-define.jarfilename.linux = ${define.projectname}-linux.jar
define.jarfilename.linux64 = ${define.projectname}-linux64.jar
define.jarfilename.linuxarm64 = ${define.projectname}-linuxarm64.jar
define.jarfilename.openbsd = ${define.projectname}-openbsd.jar
@@ -61,7 +59,7 @@ define.commonlibs = lib/bouncycastle/bcpkix-jdk18on-1.72.jar \
define.package = de.willuhn.jameica
project.nightly = releases/nightly
-project.release = releases/${system.version}-${build.number}
+project.release = releases/${system.version}
project.src = ${project.release}/src/classes
project.tmp = ${project.release}/tmp
project.javadoc = ${project.release}/javadoc
@@ -69,31 +67,24 @@ project.zipdir = ${project.release}/${define.projectname}
class.dir = ${project.tmp}/bin
project.zipfilename = ${define.projectname}-${system.version}.zip
-project.zipfilename.win32 = ${define.projectname}-win32-${system.version}.zip
project.zipfilename.win64 = ${define.projectname}-win64-${system.version}.zip
-project.zipfilename.linux = ${define.projectname}-linux-${system.version}.zip
project.zipfilename.linux64 = ${define.projectname}-linux64-${system.version}.zip
project.zipfilename.linuxarm64 = ${define.projectname}-linuxarm64-${system.version}.zip
project.zipfilename.macos64 = ${define.projectname}-macos64-${system.version}.zip
project.zipfilename.macosaarch64 = ${define.projectname}-macos-aarch64-${system.version}.zip
-project.zipfilename.openbsd = ${define.projectname}-openbsd-${system.version}.zip
-classpath.win32 = ${define.jarfilename} lib/swt/win32/swt.jar ${define.commonlibs}
classpath.win64 = ${define.jarfilename} lib/swt/win64/swt.jar ${define.commonlibs}
-classpath.linux = ${define.jarfilename} lib/swt/linux/swt.jar ${define.commonlibs}
classpath.linux64 = ${define.jarfilename} lib/swt/linux64/swt.jar ${define.commonlibs}
classpath.linuxarm64 = ${define.jarfilename} lib/swt/linux-arm64/swt.jar ${define.commonlibs}
classpath.macosaarch64 = ${define.jarfilename} lib/swt/macos-aarch64/swt.jar ${define.commonlibs}
classpath.macos64 = ${define.jarfilename} lib/swt/macos64/swt.jar ${define.commonlibs}
-classpath.openbsd = ${define.jarfilename} /usr/local/share/java/classes/swt.jar ${define.commonlibs}
-## Wenn fuer Win32/Win64/MacOS64 ein JRE gebundelt werden soll, muss hier der Pfad zu der ZIP/TAR.GZ-Datei des JRE angegeben werden
+## Wenn ein JRE gebundelt werden soll, muss hier der Pfad zu der ZIP/TAR.GZ-Datei des JRE angegeben werden
## Ausserdem muss Ant dann mit dem Parameter "-Djre.embedd=true" aufgerufen werden
## Beispiel:
-define.jre.win32 = ../jre/OpenJDK11U-jre_x86-32_windows_hotspot_11.0.18_10.zip
-define.jre.win64 = ../jre/OpenJDK21U-jre_x64_windows_hotspot_21.0.6_7.zip
-define.jre.macos64 = ../jre/OpenJDK21U-jre_x64_mac_hotspot_21.0.6_7.tar.gz
-define.jre.macosaarch64 = ../jre/OpenJDK21U-jre_aarch64_mac_hotspot_21.0.6_7.tar.gz
+define.jre.win64 = ../jre/OpenJDK21U-jre_x64_windows_hotspot_21.0.8_9.zip
+define.jre.macos64 = ../jre/OpenJDK21U-jre_x64_mac_hotspot_21.0.8_9.tar.gz
+define.jre.macosaarch64 = ../jre/OpenJDK21U-jre_aarch64_mac_hotspot_21.0.9_10.tar.gz
signjar.keystore = /home/willuhn/.jameica/jameica.ca/jameica.ca.keystore
signjar.storepass = /home/willuhn/.jameica/jameica.ca/jameica.ca.storepass
=====================================
build/build.xml
=====================================
@@ -8,32 +8,24 @@
<property environment="env" />
<property name="build.dir" value="build" />
-
- <!-- read build number -->
- <buildnumber file="${build.dir}/BUILD" />
<xmlproperty file="plugin.xml" collapseattributes="true" />
- <!-- create scm tag -->
- <propertyfile file="${build.dir}/TAG">
- <entry key="mytag" value="${system.version}" />
- </propertyfile>
- <replaceregexp flags="g" file="${build.dir}/TAG" match="\." replace="_" />
- <loadproperties srcFile="${build.dir}/TAG" />
- <delete file="${build.dir}/TAG" />
- <property name="tag" value="V_${mytag}_BUILD_${build.number}" />
-
<loadproperties srcFile="${build.dir}/build.properties" />
<available file="${signjar.keystore}" type="file" property="havekeystore" />
<echo message="VERSION: ${system.version}" />
- <echo message="Tag : ${tag}" />
- <echo message="BUILD : ${build.number}" />
<echo message="JAVA : ${java.version}" />
<path id="compilepath">
<fileset dir="lib">
<include name="**/*.jar" />
+
+ <!-- Datenbank-Treiber beim Compilieren nicht im Classpath verwenden -->
+ <exclude name="**/h2/*.jar" />
+ <exclude name="**/h2/**/*.jar" />
+ <exclude name="**/mariadb/*.jar" />
+ <exclude name="**/mysql/*.jar" />
</fileset>
</path>
</target>
@@ -65,21 +57,6 @@
</copy>
</target>
-
-
- <target depends="compile" name="tag" description="tags the source in the scm">
-
- <exec executable="git" failonerror="true" dir="${basedir}">
- <arg line="tag -m ${tag} ${tag}" />
- </exec>
-
- <exec executable="git" failonerror="true" dir="${basedir}">
- <arg line="push origin ${tag}" />
- </exec>
-
- </target>
-
-
<target depends="compile" name="jar" description="generates the jar files">
<mkdir dir="${project.release}" />
@@ -95,7 +72,6 @@
<attribute name="Built-Date" value="${DSTAMP}" />
<attribute name="Implementation-Title" value="${define.projectname}" />
<attribute name="Implementation-Version" value="${system.version}" />
- <attribute name="Implementation-Buildnumber" value="${build.number}" />
</manifest>
<fileset dir="${class.dir}" />
</jar>
@@ -105,10 +81,6 @@
<!-- Die plattformspezifischen JAR-Dateien mit dem Classpath des OS -->
- <antcall target="sub_jar_create">
- <param name="param.filename" value="${define.jarfilename.linux}" />
- <param name="param.classpath" value="${classpath.linux}" />
- </antcall>
<antcall target="sub_jar_create">
<param name="param.filename" value="${define.jarfilename.linux64}" />
<param name="param.classpath" value="${classpath.linux64}" />
@@ -117,10 +89,6 @@
<param name="param.filename" value="${define.jarfilename.linuxarm64}" />
<param name="param.classpath" value="${classpath.linuxarm64}" />
</antcall>
- <antcall target="sub_jar_create">
- <param name="param.filename" value="${define.jarfilename.win32}" />
- <param name="param.classpath" value="${classpath.win32}" />
- </antcall>
<antcall target="sub_jar_create">
<param name="param.filename" value="${define.jarfilename.win64}" />
<param name="param.classpath" value="${classpath.win64}" />
@@ -133,10 +101,6 @@
<param name="param.filename" value="${define.jarfilename.macosaarch64}" />
<param name="param.classpath" value="${classpath.macosaarch64}" />
</antcall>
- <antcall target="sub_jar_create">
- <param name="param.filename" value="${define.jarfilename.openbsd}" />
- <param name="param.classpath" value="${classpath.openbsd}" />
- </antcall>
</target>
<target depends="jar" name="zip" description="generates the zip files">
@@ -172,10 +136,6 @@
<param name="param.target" value="${project.zipdir}/jre-win64" />
<param name="param.source" value="${define.jre.win64}" />
</antcall>
- <antcall target="sub_addjre_zip">
- <param name="param.target" value="${project.zipdir}/jre-win32" />
- <param name="param.source" value="${define.jre.win32}" />
- </antcall>
<antcall target="sub_addjre_tar">
<param name="param.target" value="${project.zipdir}/jre-macos64" />
<param name="param.source" value="${define.jre.macos64}" />
@@ -185,36 +145,6 @@
<param name="param.source" value="${define.jre.macosaarch64}" />
</antcall>
- <!-- ZIP-File fuer Linux -->
- <zip destfile="${project.release}/${project.zipfilename.linux}" duplicate="fail">
- <zipfileset dir="${project.release}">
- <include name="${define.projectname}" />
- <include name="${define.projectname}/plugin.xml" />
- <include name="${define.projectname}/${define.jarfilename}" />
- <include name="${define.projectname}/${define.jarfilename.linux}" />
- <include name="${define.projectname}/LICENSE" />
- <include name="${define.projectname}/COPYING" />
- <include name="${define.projectname}/README" />
- <include name="${define.projectname}/.jameica" />
- <include name="${define.projectname}/jameica-icon.png" />
- <include name="${define.projectname}/jameica.service" />
- <include name="${define.projectname}/plugins" />
- <include name="${define.projectname}/lib/**" />
-
- <exclude name="${define.projectname}/lib/swt/win*/**" />
- <exclude name="${define.projectname}/lib/swt/macos*/**" />
- <exclude name="${define.projectname}/lib/swt/linux64/**" />
- <exclude name="${define.projectname}/lib/swt/linux-arm64/**" />
- <exclude name="${define.projectname}/*.icns" />
- <exclude name="${define.projectname}/*.plist" />
- </zipfileset>
- <zipfileset dir="${project.release}" filemode="755">
- <include name="${define.projectname}/jameica.sh" />
- <include name="${define.projectname}/jameicaserver.sh" />
- <include name="${define.projectname}/rcjameica*" />
- </zipfileset>
- </zip>
-
<!-- ZIP-File fuer Linux64 -->
<zip destfile="${project.release}/${project.zipfilename.linux64}" duplicate="fail">
<zipfileset dir="${project.release}">
@@ -233,7 +163,6 @@
<exclude name="${define.projectname}/lib/swt/win*/**" />
<exclude name="${define.projectname}/lib/swt/macos*/**" />
- <exclude name="${define.projectname}/lib/swt/linux/**" />
<exclude name="${define.projectname}/lib/swt/linux-arm64/**" />
<exclude name="${define.projectname}/*.icns" />
<exclude name="${define.projectname}/*.plist" />
@@ -262,7 +191,6 @@
<exclude name="${define.projectname}/lib/swt/win*/**" />
<exclude name="${define.projectname}/lib/swt/macos*/**" />
- <exclude name="${define.projectname}/lib/swt/linux/**" />
<exclude name="${define.projectname}/lib/swt/linux64/**" />
<exclude name="${define.projectname}/*.icns" />
<exclude name="${define.projectname}/*.plist" />
@@ -274,28 +202,6 @@
</zipfileset>
</zip>
- <zip destfile="${project.release}/${project.zipfilename.win32}">
- <zipfileset dir="${project.release}">
- <include name="${define.projectname}" />
- <include name="${define.projectname}/plugin.xml" />
- <include name="${define.projectname}/${define.jarfilename}" />
- <include name="${define.projectname}/${define.jarfilename.win32}" />
- <include name="${define.projectname}/LICENSE" />
- <include name="${define.projectname}/COPYING" />
- <include name="${define.projectname}/README" />
- <include name="${define.projectname}/jameica-win32.exe" />
- <include name="${define.projectname}/plugins" />
- <include name="${define.projectname}/lib/**" />
- <include name="${define.projectname}/jre-win32/**" />
-
- <exclude name="${define.projectname}/lib/swt/win64/**" />
- <exclude name="${define.projectname}/lib/swt/macos*/**" />
- <exclude name="${define.projectname}/lib/swt/linux*/**" />
- <exclude name="${define.projectname}/*.icns" />
- <exclude name="${define.projectname}/*.plist" />
- </zipfileset>
- </zip>
-
<!-- ZIP-File fuer Win64 -->
<zip destfile="${project.release}/${project.zipfilename.win64}">
<zipfileset dir="${project.release}">
@@ -311,7 +217,6 @@
<include name="${define.projectname}/lib/**" />
<include name="${define.projectname}/jre-win64/**" />
- <exclude name="${define.projectname}/lib/swt/win32/**" />
<exclude name="${define.projectname}/lib/swt/macos*/**" />
<exclude name="${define.projectname}/lib/swt/linux*/**" />
<exclude name="${define.projectname}/*.icns" />
@@ -378,31 +283,6 @@
</zipfileset>
</zip>
- <!-- ZIP-File fuer OpenBSD -->
- <zip destfile="${project.release}/${project.zipfilename.openbsd}" duplicate="fail">
- <zipfileset dir="${project.release}">
- <include name="${define.projectname}" />
- <include name="${define.projectname}/plugin.xml" />
- <include name="${define.projectname}/${define.jarfilename}" />
- <include name="${define.projectname}/${define.jarfilename.openbsd}" />
- <include name="${define.projectname}/LICENSE" />
- <include name="${define.projectname}/COPYING" />
- <include name="${define.projectname}/README" />
- <include name="${define.projectname}/jameica-icon.png" />
- <include name="${define.projectname}/plugins" />
- <include name="${define.projectname}/lib/**" />
-
- <exclude name="${define.projectname}/lib/swt/win*/**" />
- <exclude name="${define.projectname}/lib/swt/linux*/**" />
- <exclude name="${define.projectname}/lib/swt/macos*/**" />
- <exclude name="${define.projectname}/*.icns" />
- <exclude name="${define.projectname}/*.plist" />
- </zipfileset>
- <zipfileset dir="${project.release}" filemode="755">
- <include name="${define.projectname}/jameica-openbsd.sh" />
- </zipfileset>
- </zip>
-
<!-- ZIP-File mit allen Betriebssystemen -->
<zip destfile="${project.release}/${project.zipfilename}" duplicate="fail">
<zipfileset dir="${project.release}">
@@ -417,10 +297,8 @@
</zipfileset>
</zip>
-
</target>
-
<target depends="compile" name="src" description="build source package, depends compile target to make sure, the code has no errors">
<mkdir dir="${project.release}" />
<mkdir dir="${project.tmp}/${define.projectname}" />
@@ -435,7 +313,6 @@
<include name="test/**" />
<include name="${src.dir}/**" />
<include name="${build.dir}/**" />
- <exclude name="${build.dir}/BUILD" />
</fileset>
</copy>
<zip casesensitive="true" zipfile="${project.release}/${define.srcfilename}">
@@ -475,25 +352,19 @@
<target name="sign" description="signs the jar/zip file">
<checksum format="MD5SUM" algorithm="SHA" file="${project.release}/${define.srcfilename}" />
<checksum format="MD5SUM" algorithm="SHA" file="${project.release}/${project.zipfilename}" />
- <checksum format="MD5SUM" algorithm="SHA" file="${project.release}/${project.zipfilename.win32}" />
<checksum format="MD5SUM" algorithm="SHA" file="${project.release}/${project.zipfilename.win64}" />
- <checksum format="MD5SUM" algorithm="SHA" file="${project.release}/${project.zipfilename.linux}" />
<checksum format="MD5SUM" algorithm="SHA" file="${project.release}/${project.zipfilename.linux64}" />
<checksum format="MD5SUM" algorithm="SHA" file="${project.release}/${project.zipfilename.linuxarm64}" />
<checksum format="MD5SUM" algorithm="SHA" file="${project.release}/${project.zipfilename.macos64}" />
<checksum format="MD5SUM" algorithm="SHA" file="${project.release}/${project.zipfilename.macosaarch64}" />
- <checksum format="MD5SUM" algorithm="SHA" file="${project.release}/${project.zipfilename.openbsd}" />
<checksum format="MD5SUM" algorithm="SHA-256" file="${project.release}/${define.srcfilename}" />
<checksum format="MD5SUM" algorithm="SHA-256" file="${project.release}/${project.zipfilename}" />
- <checksum format="MD5SUM" algorithm="SHA-256" file="${project.release}/${project.zipfilename.win32}" />
<checksum format="MD5SUM" algorithm="SHA-256" file="${project.release}/${project.zipfilename.win64}" />
- <checksum format="MD5SUM" algorithm="SHA-256" file="${project.release}/${project.zipfilename.linux}" />
<checksum format="MD5SUM" algorithm="SHA-256" file="${project.release}/${project.zipfilename.linux64}" />
<checksum format="MD5SUM" algorithm="SHA-256" file="${project.release}/${project.zipfilename.linuxarm64}" />
<checksum format="MD5SUM" algorithm="SHA-256" file="${project.release}/${project.zipfilename.macos64}" />
<checksum format="MD5SUM" algorithm="SHA-256" file="${project.release}/${project.zipfilename.macosaarch64}" />
- <checksum format="MD5SUM" algorithm="SHA-256" file="${project.release}/${project.zipfilename.openbsd}" />
<echo message="Creating PGP signatures" />
@@ -504,15 +375,9 @@
<exec executable="gpg" failonerror="true" timeout="60000">
<arg line="-asb --use-agent ${project.release}/${project.zipfilename}" />
</exec>
- <exec executable="gpg" failonerror="true" timeout="60000">
- <arg line="-asb --use-agent ${project.release}/${project.zipfilename.win32}" />
- </exec>
<exec executable="gpg" failonerror="true" timeout="60000">
<arg line="-asb --use-agent ${project.release}/${project.zipfilename.win64}" />
</exec>
- <exec executable="gpg" failonerror="true" timeout="60000">
- <arg line="-asb --use-agent ${project.release}/${project.zipfilename.linux}" />
- </exec>
<exec executable="gpg" failonerror="true" timeout="60000">
<arg line="-asb --use-agent ${project.release}/${project.zipfilename.linux64}" />
</exec>
@@ -525,29 +390,21 @@
<exec executable="gpg" failonerror="true" timeout="60000">
<arg line="-asb --use-agent ${project.release}/${project.zipfilename.macosaarch64}" />
</exec>
- <exec executable="gpg" failonerror="true" timeout="60000">
- <arg line="-asb --use-agent ${project.release}/${project.zipfilename.openbsd}" />
- </exec>
</target>
- <target depends="init,compile,tag,jar,zip,javadoc,src,sign,lib,clean" description="build an official release" name="all" />
-
- <target depends="init,compile,jar,zip,src,lib,clean" description="build inofficial release" name="fast" />
+ <target depends="zip,javadoc,src,sign,lib,clean" description="build an official release" name="all" />
+ <target depends="zip,lib,clean" description="build inofficial release" name="fast" />
- <target depends="init,compile,jar,zip,javadoc,src" description="build nightly build" name="nightly">
+ <target depends="zip,javadoc,src" description="build nightly build" name="nightly">
<mkdir dir="${project.nightly}" />
<copy file="${project.release}/${project.zipfilename}" todir="${project.nightly}" />
- <copy file="${project.release}/${project.zipfilename.linux}" todir="${project.nightly}" />
<copy file="${project.release}/${project.zipfilename.linux64}" todir="${project.nightly}" />
<copy file="${project.release}/${project.zipfilename.linuxarm64}" todir="${project.nightly}" />
<copy file="${project.release}/${project.zipfilename.macos64}" todir="${project.nightly}" />
<copy file="${project.release}/${project.zipfilename.macosaarch64}" todir="${project.nightly}" />
- <copy file="${project.release}/${project.zipfilename.win32}" todir="${project.nightly}" />
<copy file="${project.release}/${project.zipfilename.win64}" todir="${project.nightly}" />
- <copy file="${project.release}/${project.zipfilename.openbsd}" todir="${project.nightly}" />
-
<copy file="${project.release}/${define.srcfilename}" todir="${project.nightly}" />
<antcall target="lib"/>
@@ -603,7 +460,6 @@
<attribute name="Built-Date" value="${DSTAMP}" />
<attribute name="Implementation-Title" value="${define.projectname}" />
<attribute name="Implementation-Version" value="${system.version}" />
- <attribute name="Implementation-Buildnumber" value="${build.number}" />
<attribute name="Main-Class" value="de.willuhn.jameica.Main" />
<attribute name="Class-Path" value="${param.classpath}" />
</manifest>
=====================================
build/jameica-openbsd.sh deleted
=====================================
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-# Open-BSD Start-Script fuer regulaeren Standalone-Betrieb.
-# Jameica wird hierbei mit GUI gestartet.
-
-link=$(readlink -f "$0")
-dir=$(dirname "$link")
-cd "$dir"
-
-java -Xmx512m -Xss64m -jar jameica-openbsd.jar $@
=====================================
build/launch4j-win32.xml deleted
=====================================
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<launch4jConfig>
- <dontWrapJar>true</dontWrapJar>
- <headerType>gui</headerType>
- <jar>jameica-win32.jar</jar>
- <outfile>C:\work\git\jameica\build\jameica-win32.exe</outfile>
- <errTitle>Bitte installieren Sie Java.</errTitle>
- <cmdLine></cmdLine>
- <chdir>.</chdir>
- <priority>normal</priority>
- <downloadUrl>https://adoptium.net/de/</downloadUrl>
- <supportUrl></supportUrl>
- <stayAlive>false</stayAlive>
- <restartOnCrash>false</restartOnCrash>
- <manifest></manifest>
- <icon>C:\work\git\hibiscus\icons\hibiscus.ico</icon>
- <jre>
- <path>jre-win32</path>
- <requiresJdk>false</requiresJdk>
- <requires64Bit>false</requires64Bit>
- <minVersion></minVersion>
- <maxVersion></maxVersion>
- <opt>-Xmx512m -Djava.net.preferIPv4Stack=true -Dswt.autoScale=quarter</opt>
- </jre>
- <versionInfo>
- <fileVersion>2.10.5.0</fileVersion>
- <txtFileVersion>2.10.5</txtFileVersion>
- <fileDescription>Jameica</fileDescription>
- <copyright>Olaf Willuhn</copyright>
- <productVersion>2.10.5.0</productVersion>
- <txtProductVersion>2.10.5</txtProductVersion>
- <productName>Jameica</productName>
- <companyName>Olaf Willuhn</companyName>
- <internalName>jameica-win32</internalName>
- <originalFilename>jameica-win32.exe</originalFilename>
- <trademarks></trademarks>
- <language>GERMAN</language>
- </versionInfo>
-</launch4jConfig>
\ No newline at end of file
=====================================
download.gradle
=====================================
@@ -40,12 +40,18 @@ dependencies {
compile 'commons-collections:commons-collections:3.+' // Version 3 brauchen wir noch wegen Velocity.
compile 'commons-logging:commons-logging:1.+'
compile 'com.mckoi:mckoisqldb:+'
- compile 'mysql:mysql-connector-java:5.+'
+ compile 'org.mariadb.jdbc:mariadb-java-client:+'
compile 'be.cyberelf.nanoxml:nanoxml:+'
compile 'org.apache.velocity:velocity:+'
compile 'oro:oro:+'
// Java EE. Ab Java 11 nicht mehr in Java enthalten
+
+ // jakarta.xml.*
+ compile 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.2'
+ compile 'org.glassfish.jaxb:jaxb-runtime:4.0.5'
+
+ // javax.xml.*
compile 'javax.xml.ws:jaxws-api:2.3.1'
compile 'org.glassfish.jaxb:jaxb-runtime:2.4.0-b180830.0438'
compile 'org.glassfish.main.javaee-api:javax.jws:3.1.2.2'
=====================================
plugin.xml
=====================================
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<system name="Jameica" version="2.10.5">
+<system name="Jameica" version="2.12.0">
<description>Jameica - Java based messages interchange</description>
- <url>https://www.willuhn.de/products/jameica/releases/2.10/jameica/jameica-2.10.5.zip</url>
+ <url>https://www.willuhn.de/products/jameica/releases/2.12/jameica/jameica-2.12.0.zip</url>
<homepage>https://www.willuhn.de/projects/jameica</homepage>
<license>GPL - http://www.gnu.org/copyleft/gpl.html</license>
=====================================
src/de/willuhn/jameica/gui/Navigation.java
=====================================
@@ -248,7 +248,7 @@ public class Navigation implements Part
*/
private void loadChildren(NavigationItem element, TreeItem parentTree) throws RemoteException
{
- GenericIterator childs = element.getChildren();
+ GenericIterator<?> childs = element.getChildren();
if (childs == null || childs.size() == 0)
return;
while (childs.hasNext())
@@ -268,7 +268,32 @@ public class Navigation implements Part
return;
load(navi,this.pluginTree);
}
-
+
+ /**
+ * Laed einen Navigationszweig neu. Dabei werden alle
+ * existierenden Eintrge durch die neu bergebenen ersetzt.
+ *
+ * @param item
+ * das neu zu ladende Navigations-Element.
+ * @throws Exception
+ */
+ public void reload(NavigationItem item) throws Exception
+ {
+ if (item == null)
+ return;
+ TreeItem ti = this.itemLookup.get(item.getID());
+ if (ti == null || ti.isDisposed())
+ return;
+
+ //Existierende Childs entfernen
+ for (TreeItem i : ti.getItems())
+ {
+ i.dispose();
+ }
+
+ //Childs neu laden
+ loadChildren(item,ti);
+ }
/**
* Aktualisiert einen Teil des Navigationsbaumes.
=====================================
src/de/willuhn/jameica/gui/input/SearchInput.java
=====================================
@@ -473,26 +473,33 @@ public class SearchInput extends AbstractInput
if (this.text != null && !this.text.isDisposed())
{
- // Das "setText" loest eine erneute Suche aus. Daher
- // ueberpringen wir die naechste
- this.inSearch = true;
-
- String s = format(this.value);
- this.text.setText(s == null ? "" : s);
-
- if (s != null && !s.equals(this.search))
- text.setForeground(Color.FOREGROUND.getSWTColor());
-
- if (this.listeners.size() > 0)
+ try
{
- Event e = new Event();
- e.data = this.value;
- e.text = s;
- for (Listener l:this.listeners)
+ // Das "setText" loest sonst eine erneute Suche aus
+ this.inSearch = true;
+
+ String s = format(this.value);
+ this.text.setText(s == null ? "" : s);
+
+ if (s != null && !s.equals(this.search))
+ text.setForeground(Color.FOREGROUND.getSWTColor());
+
+ if (this.listeners.size() > 0)
{
- l.handleEvent(e);
+ Event e = new Event();
+ e.data = this.value;
+ e.text = s;
+ for (Listener l:this.listeners)
+ {
+ l.handleEvent(e);
+ }
}
}
+ finally
+ {
+ this.inSearch = false;
+ }
+
}
}
=====================================
src/de/willuhn/jameica/gui/parts/TitlePart.java
=====================================
@@ -163,7 +163,7 @@ public class TitlePart implements Part
///////////////////////////////
// Der Titel selbst
- title = SWTUtil.getCanvas(head,image, SWT.BOTTOM | SWT.RIGHT);
+ title = SWTUtil.getCanvas(head,image, SWT.RIGHT | SWT.LEFT);
title.setBackground(GUI.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
title.setLayout(SWTUtil.createGrid(1,false));
{
=====================================
src/de/willuhn/jameica/gui/util/SWTUtil.java
=====================================
@@ -368,6 +368,7 @@ public class SWTUtil {
* @param image anzuzeigendes Hintergrundbild.
* @param align logische Kombinationen aus SWT.TOP, SWT.BOTTOM, SWT.LEFT, SWT.RIGHT.
* Wenn sowohl SWT.TOP als auch SWT.BOTTOM angegeben sind, wird das Bild vertikal gestreckt.
+ * Wenn sowohl SWT.LEFT als auch SWT.RIGHT angegeben sind, wird das Bild horizontal gestreckt.
* @return das erzeugte Canvas.
*/
public static Canvas getCanvas(final Composite parent, final Image image, final int align)
@@ -383,16 +384,23 @@ public class SWTUtil {
try
{
Rectangle r = parent.getBounds();
- int x = 0;
- int y = 0;
-
- if ((align & SWT.BOTTOM) != 0) y = r.height - i.height;
- if ((align & SWT.RIGHT) != 0) x = r.width - i.width;
if ((align & SWT.TOP) != 0 && (align & SWT.BOTTOM) != 0) // BUGZILLA 286 stretch vertically
- e.gc.drawImage(image,0,0, r.width, i.height, 0, 0, r.width, r.height);
+ {
+ e.gc.drawImage(image,0,0, i.width, i.height, 0, 0, i.width, r.height);
+ }
+ else if ((align & SWT.LEFT) != 0 && (align & SWT.RIGHT) != 0) // stretch horizontally
+ {
+ e.gc.drawImage(image,0,0, i.width, i.height, 0, 0, r.width, i.height);
+ }
else
- e.gc.drawImage(image,x,y);
+ {
+ int x = 0;
+ int y = 0;
+ if ((align & SWT.BOTTOM) != 0) y = r.height - i.height;
+ if ((align & SWT.RIGHT) != 0) x = r.width - i.width;
+ e.gc.drawImage(image,x,y);
+ }
}
catch (IllegalArgumentException ex)
{
=====================================
src/de/willuhn/jameica/services/LockService.java
=====================================
@@ -33,8 +33,10 @@ public class LockService implements Bootable
private RandomAccessFile raf = null;
private FileChannel channel = null;
private FileLock lock = null;
+ private File file = null;
private boolean unclean = false;
+ private boolean locked = false;
/**
* @see de.willuhn.boot.Bootable#depends()
@@ -53,7 +55,7 @@ public class LockService implements Bootable
if (Application.getStartupParams().isIgnoreLockfile())
return;
- File file = new File(Application.getConfig().getWorkDir(),"jameica.lock");
+ this.file = new File(Application.getConfig().getWorkDir(),"jameica.lock");
try
{
@@ -72,11 +74,6 @@ public class LockService implements Bootable
Logger.info("lockfile " + file + " exists, checking");
}
- // Beim Beenden loeschen wir die Datei grundsaetzlich, auch wenn wir
- // sie selbst nicht erstellt haben. Sollte das Lock des anderen
- // Prozesses noch drauf haengen, koennen wir sie eh nicht loeschen
- file.deleteOnExit();
-
// OK, wir haben die Datei. Jetzt locken wir sie
this.raf = new RandomAccessFile(file, "rw");
this.channel = this.raf.getChannel();
@@ -100,6 +97,7 @@ public class LockService implements Bootable
Logger.warn("detected unclean shutdown from previous run");
}
+ this.locked = true;
Logger.info(file + " successfully locked");
}
catch (OverlappingFileLockException e)
@@ -112,7 +110,14 @@ public class LockService implements Bootable
catch (IOException e)
{
Logger.error("unable to create/lock " + file,e);
- IOUtil.close(this.channel,this.raf);
+
+ // Nur schliessen, wenn wir selbst gelockt haben
+ if (this.locked)
+ {
+ IOUtil.close(this.channel,this.raf);
+ this.file.delete();
+ }
+
throw new JameicaException(e); // Hier koennen wir nichts mehr machen
}
}
@@ -124,7 +129,7 @@ public class LockService implements Bootable
{
try
{
- if (this.lock != null)
+ if (this.lock != null && this.locked)
this.lock.release();
}
catch (Exception e)
@@ -133,7 +138,11 @@ public class LockService implements Bootable
}
finally
{
- IOUtil.close(this.channel,this.raf);
+ if (this.locked)
+ {
+ IOUtil.close(this.channel,this.raf);
+ this.file.delete();
+ }
}
}
=====================================
src/de/willuhn/jameica/services/VelocityService.java
=====================================
@@ -230,52 +230,3 @@ public class VelocityService implements Bootable
}
}
}
-
-
-/**********************************************************************
- * $Log: VelocityService.java,v $
- * Revision 1.8 2012/04/05 23:25:46 willuhn
- * @N Support fuer das Senden von Messages direkt aus dem Manifest heraus (wurde zum Registrieren von Javascripts aus Java-losen Plugins heraus benoetigt)
- *
- * Revision 1.7 2010/02/08 11:53:57 willuhn
- * *** empty log message ***
- *
- * Revision 1.6 2010/02/08 11:09:17 willuhn
- * @B TICKET #39 Fehler in Velocity-Engine
- *
- * Revision 1.5 2010/02/04 11:58:49 willuhn
- * @N Velocity on-demand initialisieren
- *
- * Revision 1.4 2009/08/24 11:53:08 willuhn
- * @C Der VelocityService besitzt jetzt keinen globalen Resource-Loader mehr. Stattdessen hat jedes Plugin einen eigenen. Damit das funktioniert, darf man Velocity aber nicht mehr mit der statischen Methode "Velocity.getTemplate()" nutzen sondern mit folgendem Code:
- *
- * VelocityService s = (VelocityService) Application.getBootLoader().getBootable(VelocityService.class);
- * VelocityEngine engine = service.getEngine(MeinPlugin.class.getName());
- * Template = engine.getTemplate(name);
- *
- * Revision 1.3 2009/06/24 11:24:33 willuhn
- * @N Security-Manager via Bootloader setzen
- *
- * Revision 1.2 2008/11/05 00:18:59 willuhn
- * @N Apache Velocity aktualisiert (1.4 -> 1.5)
- * @N Apache Commons aktualisiert (noetig wegen Velocity-Update)
- *
- * Revision 1.1 2008/02/13 01:04:34 willuhn
- * @N Jameica auf neuen Bootloader umgestellt
- * @C Markus' Aenderungen RMI-Registrierung uebernommen
- *
- * Revision 1.3 2006/05/23 23:23:37 willuhn
- * @C geaendertes Log-Level in VelocityLoader
- *
- * Revision 1.2 2006/01/09 23:55:41 web0
- * *** empty log message ***
- *
- * Revision 1.1 2006/01/02 17:37:48 web0
- * @N moved Velocity to Jameica
- *
- * Revision 1.1 2005/08/16 23:14:35 willuhn
- * @N velocity export
- * @N context menus
- * @B bugfixes
- *
- **********************************************************************/
\ No newline at end of file
=====================================
src/de/willuhn/jameica/system/Application.java
=====================================
@@ -73,7 +73,7 @@ public final class Application {
// Wir nehmen grundsaetzlich unseren eigenen Classloader.
- MultipleClassLoader cl = new MultipleClassLoader();
+ MultipleClassLoader cl = new MigratingMultipleClassLoader();
cl.setName("loader.jameica");
cl.addClassloader(Application.class.getClassLoader());
=====================================
src/de/willuhn/jameica/system/Config.java
=====================================
@@ -24,7 +24,7 @@ import de.willuhn.logging.Logger;
import de.willuhn.util.ApplicationException;
/**
- * Liest die System-Konfiguration aus <i>config.xml</i>.
+ * Liest die System-Konfiguration aus <i>plugin.xml</i>.
* @author willuhn
*/
public final class Config
@@ -818,4 +818,17 @@ public final class Config
{
return StringUtils.trimToNull(settings.getString("jameica.system.i18n.untranslated.dir",null));
}
+
+ /**
+ * Liefert true, wenn die Migration mit dem angegebenen Namen aktiv ist.
+ * @param s der Name der Migration.
+ * @return true, wenn sie aktiv ist.
+ */
+ public boolean getMigration(String s)
+ {
+ if (s == null || !s.startsWith("migration-"))
+ return false;
+
+ return settings.getBoolean(s,false);
+ }
}
=====================================
src/de/willuhn/jameica/system/MigratingMultipleClassLoader.java
=====================================
@@ -0,0 +1,68 @@
+/**********************************************************************
+ *
+ * Copyright (c) 2025 Olaf Willuhn
+ * All rights reserved.
+ *
+ * This software is copyrighted work licensed under the terms of the
+ * Jameica License. Please consult the file "LICENSE" for details.
+ *
+ **********************************************************************/
+
+package de.willuhn.jameica.system;
+
+import java.net.URL;
+
+import de.willuhn.logging.Logger;
+import de.willuhn.util.MultipleClassLoader;
+
+/**
+ * Abgeleitet, um einzelne JARs je nach Konfiguration auszuklammern.
+ */
+public class MigratingMultipleClassLoader extends MultipleClassLoader
+{
+ /**
+ * @see de.willuhn.util.MultipleClassLoader#add(java.net.URL)
+ */
+ @Override
+ public void add(URL url)
+ {
+ final String key = this.getMigrationKey(url);
+ if (key != null)
+ {
+ // Checken, ob die Migration fr diese URL aktiviert ist
+ final boolean enabled = Application.getConfig().getMigration(key);
+ Logger.info("migration " + key + ": " + enabled);
+ if (!url.toString().contains(key + "/" + (enabled ? "enabled" : "disabled")))
+ {
+ Logger.info("excluding " + url);
+ return;
+ }
+ else
+ {
+ Logger.info("including " + url);
+ }
+ }
+ super.add(url);
+ }
+
+ /**
+ * Prft, ob die URL Teil einer Migration ist und liefert den Migration-Key.
+ * @param url die URL.
+ * @return der Migration-Key oder NULL.
+ */
+ private String getMigrationKey(URL url)
+ {
+ final String[] parts = url.getPath().split("/");
+ if (parts == null || parts.length < 1)
+ return null;
+
+ for (String s:parts)
+ {
+ if (s.startsWith("migration-"))
+ return s;
+ }
+ return null;
+ }
+}
+
+
=====================================
src/de/willuhn/jameica/system/Platform.java
=====================================
@@ -125,7 +125,14 @@ public class Platform
dir = this.getDefaultWorkdir();
this.workdir = new File(dir).getCanonicalFile();
- Logger.info("using workdir: " + this.workdir);
+
+ // Wenn direkt der Homebereich ausgewhlt wurde, korrigieren wir automatisch auf den Default-Ordner
+ final File home = new File(System.getProperty("user.home")).getCanonicalFile();
+ if (home != null && home.equals(this.workdir))
+ {
+ this.workdir = new File(this.getDefaultWorkdir()).getCanonicalFile();
+ Logger.error("not allowed to choose the users home dir (" + home + ") - auto-fixing to " + this.workdir);
+ }
// existiert bereits, ist aber eine Datei. FATAL!
if (this.workdir.exists() && !this.workdir.isDirectory())
@@ -135,20 +142,22 @@ public class Platform
try
{
if (inProgramDir(this.workdir))
- throw new ApplicationException("Bitte whlen Sie einen Benutzer-Ordner, der sich auerhalb des Programm-Verzeichnisses befindet.");
+ throw new ApplicationException("Bitte whlen Sie einen Benutzerordner, der sich auerhalb des Programm-Verzeichnisses befindet.");
}
catch (IOException ioe)
{
Logger.error("unable to check canonical path",ioe);
- throw new ApplicationException("Benutzer-Ordner nicht auswhlbar: " + ioe.getMessage());
+ throw new ApplicationException("Benutzerordner nicht auswhlbar: " + ioe.getMessage());
}
-
+
if (!this.workdir.exists())
{
Logger.info("creating " + this.workdir);
if (!this.workdir.mkdirs())
throw new Exception("Der Benutzerordner " + this.workdir + " konnte nicht erstellt werden.");
}
+
+ Logger.info("using workdir: " + this.workdir);
return this.workdir;
}
catch (ApplicationException ae)
=====================================
src/de/willuhn/jameica/system/Server.java
=====================================
@@ -89,8 +89,6 @@ public class Server implements ApplicationController
Logger.error("unable to detach terminal",e);
}
}
-
- // TODO: JameicaException muesste hier mal noch behandelt werden
}
/**
=====================================
src/img/150/panelbar-button-default.png
=====================================
Binary files a/src/img/150/panelbar-button-default.png and b/src/img/150/panelbar-button-default.png differ
=====================================
src/img/150/panelbar-button-hover.png
=====================================
Binary files a/src/img/150/panelbar-button-hover.png and b/src/img/150/panelbar-button-hover.png differ
=====================================
src/img/150/panelbar.png
=====================================
Binary files a/src/img/150/panelbar.png and b/src/img/150/panelbar.png differ
=====================================
src/img/200/panelbar-button-default.png
=====================================
Binary files a/src/img/200/panelbar-button-default.png and b/src/img/200/panelbar-button-default.png differ
=====================================
src/img/200/panelbar-button-hover.png
=====================================
Binary files a/src/img/200/panelbar-button-hover.png and b/src/img/200/panelbar-button-hover.png differ
=====================================
src/img/200/panelbar.png
=====================================
Binary files a/src/img/200/panelbar.png and b/src/img/200/panelbar.png differ
=====================================
src/img/300/panelbar-button-default.png
=====================================
Binary files a/src/img/300/panelbar-button-default.png and b/src/img/300/panelbar-button-default.png differ
=====================================
src/img/300/panelbar-button-hover.png
=====================================
Binary files a/src/img/300/panelbar-button-hover.png and b/src/img/300/panelbar-button-hover.png differ
=====================================
src/img/300/panelbar.png
=====================================
Binary files a/src/img/300/panelbar.png and b/src/img/300/panelbar.png differ
View it on GitLab: https://salsa.debian.org/java-team/jameica/-/commit/61ef37f723bfb8dd96331977cf323e2fb2d1c9e2
--
View it on GitLab: https://salsa.debian.org/java-team/jameica/-/commit/61ef37f723bfb8dd96331977cf323e2fb2d1c9e2
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20251108/aa62b2f0/attachment.htm>
More information about the pkg-java-commits
mailing list