From d8838514f9a14961b50ad32c9acbadedb577e879 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 15 Nov 2025 13:17:57 +0000 Subject: [PATCH 1/4] Initial plan From 9e930b0c4711c0075b883b90ee24360e1456f592 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 15 Nov 2025 13:20:59 +0000 Subject: [PATCH 2/4] Update Kernsoftware version to 3.19.2 in all modules Co-authored-by: ChristianHoesel <4498707+ChristianHoesel@users.noreply.github.com> --- de.bitctrl.dav.toolset.appanalyzer/build.gradle | 2 +- de.bitctrl.dav.toolset.archivcheck/build.gradle | 2 +- de.bitctrl.dav.toolset.kblister/build.gradle | 2 +- de.bitctrl.dav.toolset.parameter.klassufd/build.gradle | 2 +- de.bitctrl.dav.toolset.parameter.mqmarz/build.gradle | 2 +- de.bitctrl.dav.toolset.swelister/build.gradle | 2 +- de.bitctrl.dav.toolset.system/build.gradle | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/de.bitctrl.dav.toolset.appanalyzer/build.gradle b/de.bitctrl.dav.toolset.appanalyzer/build.gradle index 048bdc9..c32736f 100644 --- a/de.bitctrl.dav.toolset.appanalyzer/build.gradle +++ b/de.bitctrl.dav.toolset.appanalyzer/build.gradle @@ -19,7 +19,7 @@ nerzswe { //-------------------------------------------------------------------- // Abhängigkeiten //-------------------------------------------------------------------- -String kernsoftware_version = '3.19.0' +String kernsoftware_version = '3.19.2' dependencies { implementation "de.bsvrz.dav:de.bsvrz.dav.daf:$kernsoftware_version" diff --git a/de.bitctrl.dav.toolset.archivcheck/build.gradle b/de.bitctrl.dav.toolset.archivcheck/build.gradle index 5e9ac5a..56545e3 100644 --- a/de.bitctrl.dav.toolset.archivcheck/build.gradle +++ b/de.bitctrl.dav.toolset.archivcheck/build.gradle @@ -18,7 +18,7 @@ nerzswe { //-------------------------------------------------------------------- // Abhängigkeiten //-------------------------------------------------------------------- -String kernsoftware_version = '3.19.0' +String kernsoftware_version = '3.19.2' dependencies { implementation "de.bsvrz.dav:de.bsvrz.dav.daf:$kernsoftware_version" diff --git a/de.bitctrl.dav.toolset.kblister/build.gradle b/de.bitctrl.dav.toolset.kblister/build.gradle index 3325414..93e52f4 100644 --- a/de.bitctrl.dav.toolset.kblister/build.gradle +++ b/de.bitctrl.dav.toolset.kblister/build.gradle @@ -19,7 +19,7 @@ nerzswe { //-------------------------------------------------------------------- // Abhängigkeiten //-------------------------------------------------------------------- -String kernsoftware_version = '3.19.0' +String kernsoftware_version = '3.19.2' dependencies { implementation "de.bsvrz.dav:de.bsvrz.dav.daf:$kernsoftware_version" diff --git a/de.bitctrl.dav.toolset.parameter.klassufd/build.gradle b/de.bitctrl.dav.toolset.parameter.klassufd/build.gradle index 8a7ba22..9690f7a 100644 --- a/de.bitctrl.dav.toolset.parameter.klassufd/build.gradle +++ b/de.bitctrl.dav.toolset.parameter.klassufd/build.gradle @@ -18,7 +18,7 @@ nerzswe { //-------------------------------------------------------------------- // Abhängigkeiten //-------------------------------------------------------------------- -String kernsoftware_version = '3.19.0' +String kernsoftware_version = '3.19.2' dependencies { implementation "de.bsvrz.dav:de.bsvrz.dav.daf:$kernsoftware_version" diff --git a/de.bitctrl.dav.toolset.parameter.mqmarz/build.gradle b/de.bitctrl.dav.toolset.parameter.mqmarz/build.gradle index 15c47f5..5e59794 100644 --- a/de.bitctrl.dav.toolset.parameter.mqmarz/build.gradle +++ b/de.bitctrl.dav.toolset.parameter.mqmarz/build.gradle @@ -17,7 +17,7 @@ nerzswe { //-------------------------------------------------------------------- // Abhängigkeiten //-------------------------------------------------------------------- -String kernsoftware_version = '3.19.0' +String kernsoftware_version = '3.19.2' dependencies { implementation "de.bsvrz.dav:de.bsvrz.dav.daf:$kernsoftware_version" diff --git a/de.bitctrl.dav.toolset.swelister/build.gradle b/de.bitctrl.dav.toolset.swelister/build.gradle index ee3c049..95322b2 100644 --- a/de.bitctrl.dav.toolset.swelister/build.gradle +++ b/de.bitctrl.dav.toolset.swelister/build.gradle @@ -19,7 +19,7 @@ nerzswe { //-------------------------------------------------------------------- // Abhängigkeiten //-------------------------------------------------------------------- -String kernsoftware_version = '3.19.0' +String kernsoftware_version = '3.19.2' dependencies { implementation "de.bsvrz.dav:de.bsvrz.dav.daf:$kernsoftware_version" diff --git a/de.bitctrl.dav.toolset.system/build.gradle b/de.bitctrl.dav.toolset.system/build.gradle index f82a03d..0744364 100644 --- a/de.bitctrl.dav.toolset.system/build.gradle +++ b/de.bitctrl.dav.toolset.system/build.gradle @@ -19,7 +19,7 @@ nerzswe { //-------------------------------------------------------------------- // Abhängigkeiten //-------------------------------------------------------------------- -String kernsoftware_version = '3.19.0' +String kernsoftware_version = '3.19.2' dependencies { implementation "de.bsvrz.dav:de.bsvrz.dav.daf:$kernsoftware_version" From 4f0d5eb6e46d80e96726b664ff6b697c99ad8195 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 15 Nov 2025 15:19:54 +0000 Subject: [PATCH 3/4] Refactor: Use Java 17 features (records, pattern matching, var, lambdas) Co-authored-by: ChristianHoesel <4498707+ChristianHoesel@users.noreply.github.com> --- .../dav/toolset/appanalyzer/Exporter.java | 77 +++---------------- .../toolset/archivcheck/AkkumulationKey.java | 51 ++---------- .../dav/toolset/archivcheck/ArchivSizer.java | 21 ++--- 3 files changed, 24 insertions(+), 125 deletions(-) diff --git a/de.bitctrl.dav.toolset.appanalyzer/src/main/java/de/bitctrl/dav/toolset/appanalyzer/Exporter.java b/de.bitctrl.dav.toolset.appanalyzer/src/main/java/de/bitctrl/dav/toolset/appanalyzer/Exporter.java index d1c16f3..7713f5f 100644 --- a/de.bitctrl.dav.toolset.appanalyzer/src/main/java/de/bitctrl/dav/toolset/appanalyzer/Exporter.java +++ b/de.bitctrl.dav.toolset.appanalyzer/src/main/java/de/bitctrl/dav/toolset/appanalyzer/Exporter.java @@ -58,74 +58,15 @@ */ public class Exporter extends Thread { - private static class SummaryKey { - - private final String rolle; - private final SystemObjectType type; - private final AttributeGroup atg; - private final Aspect asp; - - SummaryKey(final String rolle, final SystemObjectType type, final AttributeGroup atg, final Aspect asp) { - this.rolle = rolle; - this.type = type; - this.atg = atg; - this.asp = asp; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = (prime * result) + ((asp == null) ? 0 : asp.hashCode()); - result = (prime * result) + ((atg == null) ? 0 : atg.hashCode()); - result = (prime * result) + ((rolle == null) ? 0 : rolle.hashCode()); - result = (prime * result) + ((type == null) ? 0 : type.hashCode()); - return result; - } - - @Override - public boolean equals(final Object obj) { - if (this == obj) { - return true; - } - if (obj == null) { - return false; - } - if (!(obj instanceof SummaryKey)) { - return false; - } - final SummaryKey other = (SummaryKey) obj; - if (asp == null) { - if (other.asp != null) { - return false; - } - } else if (!asp.equals(other.asp)) { - return false; - } - if (atg == null) { - if (other.atg != null) { - return false; - } - } else if (!atg.equals(other.atg)) { - return false; - } - if (rolle == null) { - if (other.rolle != null) { - return false; - } - } else if (!rolle.equals(other.rolle)) { - return false; - } - if (type == null) { - if (other.type != null) { - return false; - } - } else if (!type.equals(other.type)) { - return false; - } - return true; - } - + /** + * Key for summarizing export data by role, type, attribute group and aspect. + * + * @param rolle the role + * @param type the system object type + * @param atg the attribute group + * @param asp the aspect + */ + private record SummaryKey(String rolle, SystemObjectType type, AttributeGroup atg, Aspect asp) { } private final Set exportApplications = new HashSet<>(); diff --git a/de.bitctrl.dav.toolset.archivcheck/src/main/java/de/bitctrl/dav/toolset/archivcheck/AkkumulationKey.java b/de.bitctrl.dav.toolset.archivcheck/src/main/java/de/bitctrl/dav/toolset/archivcheck/AkkumulationKey.java index 580f27e..08e6194 100644 --- a/de.bitctrl.dav.toolset.archivcheck/src/main/java/de/bitctrl/dav/toolset/archivcheck/AkkumulationKey.java +++ b/de.bitctrl.dav.toolset.archivcheck/src/main/java/de/bitctrl/dav/toolset/archivcheck/AkkumulationKey.java @@ -26,48 +26,11 @@ package de.bitctrl.dav.toolset.archivcheck; -import java.util.Objects; - -class AkkumulationKey { - - private Object atg; - private Object asp; - - AkkumulationKey(final Object atg, final Object aspect) { - this.atg = atg; - this.asp = aspect; - } - - @Override - public boolean equals(final Object obj) { - - if (this == obj) { - return true; - } - if (obj instanceof AkkumulationKey) { - final AkkumulationKey akkKey = (AkkumulationKey) obj; - return Objects.equals(asp, akkKey.asp) && Objects.equals(atg, akkKey.atg); - } - - return false; - } - - public Object getAsp() { - return asp; - } - - public Object getAtg() { - return atg; - } - - @Override - public int hashCode() { - return Objects.hash(asp, atg); - } - - @Override - public String toString() { - return "AkkumulationKey [atg=" + atg + ", asp=" + asp + "]"; - } - +/** + * Key for accumulating archive data by attribute group and aspect. + * + * @param atg the attribute group + * @param asp the aspect + */ +record AkkumulationKey(Object atg, Object asp) { } diff --git a/de.bitctrl.dav.toolset.archivcheck/src/main/java/de/bitctrl/dav/toolset/archivcheck/ArchivSizer.java b/de.bitctrl.dav.toolset.archivcheck/src/main/java/de/bitctrl/dav/toolset/archivcheck/ArchivSizer.java index 1de3980..8a8d2c0 100644 --- a/de.bitctrl.dav.toolset.archivcheck/src/main/java/de/bitctrl/dav/toolset/archivcheck/ArchivSizer.java +++ b/de.bitctrl.dav.toolset.archivcheck/src/main/java/de/bitctrl/dav/toolset/archivcheck/ArchivSizer.java @@ -72,7 +72,7 @@ private static class ResultSet { } private boolean isValid() { - return (this.object instanceof SystemObject) && ((SystemObject) this.object).isValid(); + return (this.object instanceof SystemObject sysObj) && sysObj.isValid(); } private boolean isMissed() { @@ -113,12 +113,12 @@ public void initialize(final ClientDavInterface connection) throws Exception { model = connection.getDataModel(); - final File startDir = new File(baseDir); + var startDir = new File(baseDir); if (!startDir.isDirectory()) { throw new InvalidArgumentException(baseDir + " ist kein Verzeichnis"); } - final File[] listFiles = startDir.listFiles(); + var listFiles = startDir.listFiles(); if (listFiles != null) { for (final File child : listFiles) { if (child.getName().startsWith(ArchivSizer.OBJ_DIR_PREFIX)) { @@ -127,12 +127,7 @@ public void initialize(final ClientDavInterface connection) throws Exception { } } - Collections.sort(results, new Comparator() { - @Override - public int compare(final ResultSet o1, final ResultSet o2) { - return ((Long) o2.size.getSize()).compareTo(o1.size.getSize()); - } - }); + Collections.sort(results, (o1, o2) -> ((Long) o2.size.getSize()).compareTo(o1.size.getSize())); try (PrintWriter output = new PrintWriter(new FileWriter(outputFile))) { printheader(output); @@ -153,7 +148,7 @@ public int compare(final ResultSet o1, final ResultSet o2) { private void printResult(final PrintWriter output, final ResultSet set) { - final StringBuffer result = new StringBuffer(200); + var result = new StringBuilder(200); if (set.isMissed()) { result.append('-'); } else if (!set.isValid()) { @@ -191,12 +186,12 @@ private void printheader(final PrintWriter output) { } private void printAkkResult(final PrintWriter output, final AkkumulationKey key, final SizeSet value) { - final StringBuffer result = new StringBuffer(200); + var result = new StringBuilder(200); result.append(value.getSetCount()); result.append(';'); - result.append(key.getAtg()); + result.append(key.atg()); result.append(';'); - result.append(key.getAsp()); + result.append(key.asp()); result.append(';'); result.append(value.getSize()); result.append(';'); From cc12431d8ccd97abbf55f974715e6a8b6625dba8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 15 Nov 2025 15:22:25 +0000 Subject: [PATCH 4/4] Refactor: Add more Java 17 features (switch expressions, more lambdas) Co-authored-by: ChristianHoesel <4498707+ChristianHoesel@users.noreply.github.com> --- .../dav/toolset/appanalyzer/MainView.java | 16 +++++------- .../dav/toolset/kblister/KbLister.java | 26 ++++++++----------- .../parameter/klassufd/UfdsSensorType.java | 16 +++++------- 3 files changed, 23 insertions(+), 35 deletions(-) diff --git a/de.bitctrl.dav.toolset.appanalyzer/src/main/java/de/bitctrl/dav/toolset/appanalyzer/MainView.java b/de.bitctrl.dav.toolset.appanalyzer/src/main/java/de/bitctrl/dav/toolset/appanalyzer/MainView.java index d4bab36..12b5034 100644 --- a/de.bitctrl.dav.toolset.appanalyzer/src/main/java/de/bitctrl/dav/toolset/appanalyzer/MainView.java +++ b/de.bitctrl.dav.toolset.appanalyzer/src/main/java/de/bitctrl/dav/toolset/appanalyzer/MainView.java @@ -94,16 +94,12 @@ public void removeListDataListener(final ListDataListener l) { final JButton exportButton = new JButton("Exportiere Anmeldungen"); getContentPane().add(exportButton, BorderLayout.SOUTH); - exportButton.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(final ActionEvent e) { - final JFileChooser fileChooser = new JFileChooser(); - if (fileChooser.showOpenDialog(MainView.this) == JFileChooser.APPROVE_OPTION) { - final Exporter exporter = new Exporter(dav, applicationList, fileChooser.getSelectedFile(), - onlySummary); - exporter.start(); - } + exportButton.addActionListener(e -> { + var fileChooser = new JFileChooser(); + if (fileChooser.showOpenDialog(MainView.this) == JFileChooser.APPROVE_OPTION) { + var exporter = new Exporter(dav, applicationList, fileChooser.getSelectedFile(), + onlySummary); + exporter.start(); } }); } diff --git a/de.bitctrl.dav.toolset.kblister/src/main/java/de/bitctrl/dav/toolset/kblister/KbLister.java b/de.bitctrl.dav.toolset.kblister/src/main/java/de/bitctrl/dav/toolset/kblister/KbLister.java index e1e5293..7b437f0 100644 --- a/de.bitctrl.dav.toolset.kblister/src/main/java/de/bitctrl/dav/toolset/kblister/KbLister.java +++ b/de.bitctrl.dav.toolset.kblister/src/main/java/de/bitctrl/dav/toolset/kblister/KbLister.java @@ -71,25 +71,21 @@ public void initialize(final ClientDavInterface connection) throws Exception { final DataModel model = connection.getDataModel(); - Set allKbSortedPerPid = new TreeSet<>(new Comparator() { - - @Override - public int compare(final ConfigurationArea o1, final ConfigurationArea o2) { - return o1.getPid().compareTo(o2.getPid()); - } - }); + var allKbSortedPerPid = new TreeSet( + (o1, o2) -> o1.getPid().compareTo(o2.getPid())); for (SystemObject obj : model.getTypeTypeObject().getElements()) { - final SystemObjectType type = (SystemObjectType) obj; - final TreeSet kbs = new TreeSet<>(new PidComparator()); + if (obj instanceof SystemObjectType type) { + var kbs = new TreeSet(new PidComparator()); - for (SystemObject element : type.getElements()) { - final ConfigurationArea configurationArea = element.getConfigurationArea(); - kbs.add(configurationArea); - allKbSortedPerPid.add(configurationArea); - } + for (SystemObject element : type.getElements()) { + var configurationArea = element.getConfigurationArea(); + kbs.add(configurationArea); + allKbSortedPerPid.add(configurationArea); + } - results.put(type, kbs); + results.put(type, kbs); + } } for (Entry> result : results.entrySet()) { diff --git a/de.bitctrl.dav.toolset.parameter.klassufd/src/main/java/de/bitctrl/dav/toolset/parameter/klassufd/UfdsSensorType.java b/de.bitctrl.dav.toolset.parameter.klassufd/src/main/java/de/bitctrl/dav/toolset/parameter/klassufd/UfdsSensorType.java index 16a198a..a9a2b3b 100644 --- a/de.bitctrl.dav.toolset.parameter.klassufd/src/main/java/de/bitctrl/dav/toolset/parameter/klassufd/UfdsSensorType.java +++ b/de.bitctrl.dav.toolset.parameter.klassufd/src/main/java/de/bitctrl/dav/toolset/parameter/klassufd/UfdsSensorType.java @@ -87,15 +87,11 @@ public String getAttName() { * @return das Array */ public double[][] getDefaultStufen() { - switch (this) { - case NI: - return UfdsSensorType.NI_STUFEN; - case SW: - return UfdsSensorType.SW_STUFEN; - case WFD: - return UfdsSensorType.WFD_STUFEN; - default: - return UfdsSensorType.EMPTY; - } + return switch (this) { + case NI -> NI_STUFEN; + case SW -> SW_STUFEN; + case WFD -> WFD_STUFEN; + default -> EMPTY; + }; } }