diff --git a/.classpath b/.classpath
index 8066ed5d8..647a2f837 100644
--- a/.classpath
+++ b/.classpath
@@ -2,7 +2,7 @@
-
+
@@ -28,5 +28,10 @@
+
+
+
+
+
diff --git a/.github/workflows/buildcheck.yml b/.github/workflows/buildcheck.yml
new file mode 100644
index 000000000..acd66ee87
--- /dev/null
+++ b/.github/workflows/buildcheck.yml
@@ -0,0 +1,40 @@
+# This workflow will build a Java project with Ant
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-ant
+
+name: OpenJVerein build check
+
+on:
+ pull_request:
+ types: [opened, reopened, synchronize, edited]
+ paths:
+ - 'plugin.xml'
+ - 'build/**'
+ - 'lib/**'
+ - 'lib.src/**'
+ - 'src/**'
+jobs:
+ call-reusable-workflow:
+ uses: ./.github/workflows/reusable-build.yml
+
+ build-check:
+ needs: call-reusable-workflow
+ runs-on: ubuntu-latest
+ steps:
+ - name: Restore cached tags and jars
+ id: cache-tags-jars
+ uses: actions/cache@v4
+ with:
+ path: |
+ ./cached-tags
+ jameica
+ hibiscus
+ key: ${{ runner.os }}-${{ github.repository_id }}
+
+ - name: Checkout openjverein
+ uses: actions/checkout@v4
+ with:
+ path: jverein
+
+ - name: Build openjverein plugin
+ working-directory: ./
+ run: ant -noinput -buildfile jverein/build/build.xml compile
diff --git a/.github/workflows/nightly-builds.yml b/.github/workflows/nightly-build.yml
similarity index 61%
rename from .github/workflows/nightly-builds.yml
rename to .github/workflows/nightly-build.yml
index 5569b1bf6..1156d7691 100644
--- a/.github/workflows/nightly-builds.yml
+++ b/.github/workflows/nightly-build.yml
@@ -1,7 +1,7 @@
# This workflow will build a Java project with Ant
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-ant
-name: openjverein nightly release
+name: OpenJVerein nightly release
on:
push:
@@ -11,41 +11,24 @@ on:
- '**'
jobs:
- build:
- name: Building release and upload to branch
+ call-reusable-workflow:
+ uses: ./.github/workflows/reusable-build.yml
+ nightly-build:
+ needs: call-reusable-workflow
runs-on: ubuntu-latest
-
steps:
- - name: Set up JDK 11 for x64
- uses: actions/setup-java@v3
- with:
- java-version: '11'
- distribution: 'temurin'
- architecture: x64
-
- - name: Check out jameica
- uses: actions/checkout@v4
+ - name: Restore cached tags and jars
+ id: cache-tags-jars
+ uses: actions/cache@v4
with:
- repository: willuhn/jameica
- path: jameica
-
- - name: Build jameica nightly
- working-directory: ./
- run: ant -noinput -buildfile jameica/build/build.xml nightly
-
- - name: Check out hibiscus
- uses: actions/checkout@v4
- with:
- repository: willuhn/hibiscus
- path: hibiscus
-
- - name: Build hibiscus nightly
- working-directory: ./
- run: ant -noinput -buildfile hibiscus/build/build.xml nightly
+ path: |
+ ./cached-tags
+ jameica
+ hibiscus
+ key: ${{ runner.os }}-${{ github.repository_id }}
- name: Checkout openjverein
- id: openjverein_checkout
uses: actions/checkout@v4
with:
path: jverein
@@ -55,7 +38,7 @@ jobs:
working-directory: ./
run: |
ant_output=$(ant -e -q -noinput -buildfile jverein/build/build.xml nightly)
- echo $ant_output
+ echo ${ant_output}
ssa="SELECTED_VERSION="
ssb=".zip"
@@ -74,11 +57,11 @@ jobs:
tmp_path=$(echo $text | sed -rn 's/^([^[:blank:]]*).*$/\1/p')
echo "selected_version=${tmp_version}" >> $GITHUB_OUTPUT
- echo "selected_filename=$tmp_filename" >> $GITHUB_OUTPUT
- echo "selected_path=$tmp_path" >> $GITHUB_OUTPUT
+ echo "selected_filename=${tmp_filename}" >> $GITHUB_OUTPUT
+ echo "selected_path=${tmp_path}" >> $GITHUB_OUTPUT
builddatetime=$(date +'%Y-%m-%d %H:%M')
- echo "### Version: $tmp_version | filename: $tmp_filename | build datetime: $builddatetime" >> $GITHUB_STEP_SUMMARY
+ echo "### Version: ${tmp_version} | filename: ${tmp_filename} | build datetime: ${builddatetime}" >> $GITHUB_STEP_SUMMARY
# Update tag
- name: Tag repo
@@ -95,4 +78,4 @@ jobs:
prerelease: true
name: Release ${{ steps.openjverein.outputs.selected_version }}
files: ./jverein/${{ steps.openjverein.outputs.selected_path }}
- generate_release_notes: false
\ No newline at end of file
+ generate_release_notes: false
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index b0c1482ef..a595da09e 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,46 +1,29 @@
# This workflow will build a Java project with Ant
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-ant
-name: openjverein official release
+name: OpenJVerein official release
on: workflow_dispatch
jobs:
- build:
- name: Building release and upload to branch
+ call-reusable-workflow:
+ uses: ./.github/workflows/reusable-build.yml
+ release:
+ needs: call-reusable-workflow
runs-on: ubuntu-latest
-
steps:
- - name: Set up JDK 11 for x64
- uses: actions/setup-java@v3
- with:
- java-version: '11'
- distribution: 'temurin'
- architecture: x64
-
- - name: Check out jameica
- uses: actions/checkout@v4
+ - name: Restore cached tags and jars
+ id: cache-tags-jars
+ uses: actions/cache@v4
with:
- repository: willuhn/jameica
- path: jameica
-
- - name: Build jameica nightly
- working-directory: ./
- run: ant -noinput -buildfile jameica/build/build.xml nightly
-
- - name: Check out hibiscus
- uses: actions/checkout@v4
- with:
- repository: willuhn/hibiscus
- path: hibiscus
-
- - name: Build hibiscus nightly
- working-directory: ./
- run: ant -noinput -buildfile hibiscus/build/build.xml nightly
+ path: |
+ ./cached-tags
+ jameica
+ hibiscus
+ key: ${{ runner.os }}-${{ github.repository_id }}
- name: Checkout openjverein
- id: openjverein_checkout
uses: actions/checkout@v4
with:
path: jverein
@@ -50,7 +33,7 @@ jobs:
working-directory: ./
run: |
ant_output=$(ant -e -q -noinput -buildfile jverein/build/build.xml)
- echo $ant_output
+ echo ${ant_output}
ssa="SELECTED_VERSION="
ssb=".zip"
@@ -70,11 +53,11 @@ jobs:
tmp_path=$(echo $text | sed -rn 's/^([^[:blank:]]*).*$/\1/p')
echo "selected_version=${tmp_version}" >> $GITHUB_OUTPUT
- echo "selected_filename=$tmp_filename" >> $GITHUB_OUTPUT
- echo "selected_path=$tmp_path" >> $GITHUB_OUTPUT
+ echo "selected_filename=${tmp_filename}" >> $GITHUB_OUTPUT
+ echo "selected_path=${tmp_path}" >> $GITHUB_OUTPUT
builddatetime=$(date +'%Y-%m-%d %H:%M')
- echo "### Version: $tmp_version | filename: $tmp_filename | build datetime: $builddatetime" >> $GITHUB_STEP_SUMMARY
+ echo "### Version: ${tmp_version} | filename: ${tmp_filename} | build datetime: ${builddatetime}" >> $GITHUB_STEP_SUMMARY
- name: Release
uses: softprops/action-gh-release@v2
@@ -83,4 +66,4 @@ jobs:
prerelease: false
name: Release ${{ steps.openjverein.outputs.selected_version }}
files: ./jverein/${{ steps.openjverein.outputs.selected_path }}
- generate_release_notes: true
\ No newline at end of file
+ generate_release_notes: true
diff --git a/.github/workflows/reusable-build.yml b/.github/workflows/reusable-build.yml
new file mode 100644
index 000000000..2b8c51311
--- /dev/null
+++ b/.github/workflows/reusable-build.yml
@@ -0,0 +1,97 @@
+name: Reusable build steps
+
+on:
+ workflow_call:
+
+jobs:
+ setup-java-and-cache:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Set up JDK for x64
+ uses: actions/setup-java@v4
+ with:
+ java-version: '11'
+ distribution: 'temurin'
+ architecture: x64
+
+ - name: Set env
+ id: setenvs
+ run: |
+ jameica_tag=$(git ls-remote --refs --tags --sort="-v:refname" https://github.com/willuhn/jameica.git V_\* | head -1 | cut -f 2 | cut -d / -f 3)
+ echo "jameica_tag=${jameica_tag}" >> $GITHUB_ENV
+ hibiscus_tag=$(git ls-remote --refs --tags --sort="-v:refname" https://github.com/willuhn/hibiscus.git V_\* | head -1 | cut -f 2 | cut -d / -f 3)
+ echo "hibiscus_tag=${hibiscus_tag}" >> $GITHUB_ENV
+ echo "### jameica_tag: ${jameica_tag} | hibiscus_tag: ${hibiscus_tag}"
+
+ - name: Restore cached tags and folders
+ id: cache-tags-jars
+ uses: actions/cache@v4
+ with:
+ path: |
+ ./cached-tags
+ jameica
+ hibiscus
+ key: ${{ runner.os }}-${{ github.repository_id }}
+
+ - name: Load cached tags
+ id: load-cache
+ run: |
+ if [ -f ./cached-tags/jameica_tag ]; then
+ cached_jameica_tag=$(cat ./cached-tags/jameica_tag)
+ echo "cached_jameica_tag=${cached_jameica_tag}" >> $GITHUB_ENV
+ else
+ echo "cached_jameica_tag=" >> $GITHUB_ENV
+ fi
+ if [ -f ./cached-tags/hibiscus_tag ]; then
+ cached_hibiscus_tag=$(cat ./cached-tags/hibiscus_tag)
+ echo "cached_hibiscus_tag=${cached_hibiscus_tag}" >> $GITHUB_ENV
+ else
+ echo "cached_hibiscus_tag=" >> $GITHUB_ENV
+ fi
+ echo "### cached_jameica_tag: ${cached_jameica_tag} | cached_hibiscus_tag: ${cached_hibiscus_tag}"
+
+ - name: Checkout jameica
+ if: ${{ env.cached_jameica_tag != env.jameica_tag }}
+ uses: actions/checkout@v4
+ with:
+ repository: willuhn/jameica
+ path: jameica
+ ref: ${{ env.jameica_tag }}
+
+ - name: Build jameica jar
+ if: ${{ env.cached_jameica_tag != env.jameica_tag }}
+ working-directory: ./
+ run: |
+ ant -noinput -buildfile jameica/build/build.xml jar
+ find jameica/releases/ -type f -name jameica.jar -exec cp {} jameica/releases/jameica-lib.jar \;
+
+ - name: Checkout hibiscus
+ if: ${{ env.cached_hibiscus_tag != env.hibiscus_tag }}
+ uses: actions/checkout@v4
+ with:
+ repository: willuhn/hibiscus
+ path: hibiscus
+ ref: ${{ env.hibiscus_tag }}
+
+ - name: Build hibiscus jar
+ if: ${{ env.cached_hibiscus_tag != env.hibiscus_tag }}
+ working-directory: ./
+ run: |
+ ant -noinput -buildfile hibiscus/build/build.xml jar
+ find hibiscus/releases/ -type f -name hibiscus.jar -exec cp {} hibiscus/releases/hibiscus-lib.jar \;
+
+ - name: Create cache files and needed folders
+ run: |
+ mkdir -p ./cached-tags
+ echo "${{ env.jameica_tag }}" > ./cached-tags/jameica_tag
+ echo "${{ env.hibiscus_tag }}" > ./cached-tags/hibiscus_tag
+
+ - name: Cache tags and folders
+ uses: actions/cache@v4
+ if: always()
+ with:
+ path: |
+ ./cached-tags
+ jameica
+ hibiscus
+ key: ${{ runner.os }}-${{ github.repository_id }}
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 7341ab168..049e42fd3 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,11 +1,11 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.compliance=11
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=11
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 64a89fa22..980e80820 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -20,7 +20,9 @@ Das Handbuch ist im Repository https://github.com/openjverein/jverein-Book. Der
Für die OpenJVerein-Entwicklung werden benötigt
- Eclipse/IntelliJ IDEA
-- Java 11+ (JDK)
+- Java 11 (JDK)
+
+Es wird Java 11 (keine höhere Version) benötigt, damit die Kompatibilität zu Jameica gewährleistet ist und keine APIs verwendet werden, die in späteren Java Versionen eingeführt wurden.
# Build und Test
Build und Test sind hier beschrieben: https://www.willuhn.de/wiki/doku.php?id=develop:eclipse
diff --git a/build/build.xml b/build/build.xml
index e9595863f..c5c8df499 100644
--- a/build/build.xml
+++ b/build/build.xml
@@ -54,7 +54,7 @@
-
+
diff --git a/junit/src/de/jost_net/JVereinJUnit/io/Adressbuch/AdressaufbereitungTest.java b/junit/src/de/jost_net/JVereinJUnit/io/Adressbuch/AdressaufbereitungTest.java
index 83bcd7ce6..64ae2d8d7 100644
--- a/junit/src/de/jost_net/JVereinJUnit/io/Adressbuch/AdressaufbereitungTest.java
+++ b/junit/src/de/jost_net/JVereinJUnit/io/Adressbuch/AdressaufbereitungTest.java
@@ -27,6 +27,7 @@
import de.jost_net.JVerein.gui.input.GeschlechtInput;
import de.jost_net.JVerein.io.IAdresse;
import de.jost_net.JVerein.io.Adressbuch.Adressaufbereitung;
+import de.jost_net.JVerein.keys.Staat;
@RunWith(JUnit4.class)
public class AdressaufbereitungTest
@@ -221,6 +222,13 @@ public String getOrt() throws RemoteException
@Override
public String getStaat() throws RemoteException
+ {
+ return Staat.getStaat(getStaatCode());
+ }
+
+
+ @Override
+ public String getStaatCode() throws RemoteException
{
return staat;
}
diff --git a/lib/dom4j-2.1.4.jar b/lib/dom4j-2.1.4.jar
new file mode 100644
index 000000000..0769bed92
Binary files /dev/null and b/lib/dom4j-2.1.4.jar differ
diff --git a/lib/jakarta.activation-api-2.1.3.jar b/lib/jakarta.activation-api-2.1.3.jar
new file mode 100644
index 000000000..0d015d542
Binary files /dev/null and b/lib/jakarta.activation-api-2.1.3.jar differ
diff --git a/lib/mustang-2.16.0.jar b/lib/mustang-2.16.0.jar
new file mode 100644
index 000000000..b8c0461fb
Binary files /dev/null and b/lib/mustang-2.16.0.jar differ
diff --git a/lib/xmpbox-3.0.3.jar b/lib/xmpbox-3.0.3.jar
new file mode 100644
index 000000000..26e3029e4
Binary files /dev/null and b/lib/xmpbox-3.0.3.jar differ
diff --git a/nbproject/project.xml b/nbproject/project.xml
index ea1053410..ee9501578 100644
--- a/nbproject/project.xml
+++ b/nbproject/project.xml
@@ -83,7 +83,7 @@ auxiliary.show.customizer.message=
src
${define.compilepath}
releases
- 1.6
+ 11
diff --git a/plugin.xml b/plugin.xml
index 85aab8d70..9b9d95005 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -1,7 +1,7 @@
+ name="jverein" version="2.9.0" class="de.jost_net.JVerein.JVereinPlugin">
OpenSource-Vereinsverwaltung
https://openjverein.github.io/jameica-repository/[PLUGIN_ZIP]
diff --git a/src/com/schlevoigt/JVerein/gui/control/BuchungsTextKorrekturControl.java b/src/com/schlevoigt/JVerein/gui/control/BuchungsTextKorrekturControl.java
index 43b71c4de..29ca862ea 100644
--- a/src/com/schlevoigt/JVerein/gui/control/BuchungsTextKorrekturControl.java
+++ b/src/com/schlevoigt/JVerein/gui/control/BuchungsTextKorrekturControl.java
@@ -144,6 +144,7 @@ public void refreshBuchungen() throws RemoteException {
for (Buchung b : query.get()) {
buchungsList.addItem(b);
}
+ buchungsList.sort();
}
private void starteKorrektur() {
diff --git a/src/com/schlevoigt/JVerein/gui/view/BuchungsTexteKorrigierenView.java b/src/com/schlevoigt/JVerein/gui/view/BuchungsTexteKorrigierenView.java
index 01170406d..917d7ead7 100644
--- a/src/com/schlevoigt/JVerein/gui/view/BuchungsTexteKorrigierenView.java
+++ b/src/com/schlevoigt/JVerein/gui/view/BuchungsTexteKorrigierenView.java
@@ -28,7 +28,7 @@ public class BuchungsTexteKorrigierenView extends AbstractView {
@Override
public void bind() throws Exception {
- GUI.getView().setTitle("Buchungstexte korrigieren");
+ GUI.getView().setTitle("Buchungskorrektur");
final BuchungsTextKorrekturControl control = new BuchungsTextKorrekturControl(this);
diff --git a/src/de/jost_net/JVerein/Queries/BuchungQuery.java b/src/de/jost_net/JVerein/Queries/BuchungQuery.java
index 7776802e4..b045eaf0a 100644
--- a/src/de/jost_net/JVerein/Queries/BuchungQuery.java
+++ b/src/de/jost_net/JVerein/Queries/BuchungQuery.java
@@ -23,6 +23,7 @@
import de.jost_net.JVerein.Einstellungen;
import de.jost_net.JVerein.io.Suchbetrag;
+import de.jost_net.JVerein.keys.Kontoart;
import de.jost_net.JVerein.rmi.Buchung;
import de.jost_net.JVerein.rmi.Buchungsart;
import de.jost_net.JVerein.rmi.Konto;
@@ -180,7 +181,8 @@ else if (!geldkonto)
{
it.join("konto");
it.addFilter("konto.id = buchung.konto");
- it.addFilter("anlagenkonto = true");
+ it.addFilter("kontoart = ?",
+ new Object[] { Kontoart.ANLAGE.getKey() });
}
diff --git a/src/de/jost_net/JVerein/Queries/MitgliedQuery.java b/src/de/jost_net/JVerein/Queries/MitgliedQuery.java
index 7edf1cf95..94fb909e5 100644
--- a/src/de/jost_net/JVerein/Queries/MitgliedQuery.java
+++ b/src/de/jost_net/JVerein/Queries/MitgliedQuery.java
@@ -55,6 +55,8 @@ public class MitgliedQuery
String zusatzfeld = null;
String zusatzfelder = null;
+
+ String sort = "";
public MitgliedQuery(FilterControl control)
{
@@ -65,6 +67,7 @@ public MitgliedQuery(FilterControl control)
public ArrayList get(int adresstyp, String sort) throws RemoteException
{
+ this.sort = sort;
zusatzfeld = control.getAdditionalparamprefix1();
zusatzfelder = control.getAdditionalparamprefix2();
@@ -72,13 +75,6 @@ public ArrayList get(int adresstyp, String sort) throws RemoteExceptio
ArrayList