This is an automated email from the ASF dual-hosted git repository.
jbonofre pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/karaf.git
The following commit(s) were added to refs/heads/main by this push:
new 2c701f6d9d Clean up LogDumpProvider (#2631)
2c701f6d9d is described below
commit 2c701f6d9d1b2674b8f84d4abf790dfaefceb775
Author: Robert Varga <[email protected]>
AuthorDate: Wed May 6 06:12:09 2026 +0200
Clean up LogDumpProvider (#2631)
This a deep modernization:
- add a missing @Override
- use local variable type inference to shorten declarations
- use type-safe BundleContext.getServiceReference(Class)
- use FrameworkUtil.asMap(Dictionary) for improved iteration
- use Files.copy(OutputStream, Path) for byte transfer
- try-with-resources to ensure the OutputStream is closed, as per
DumpDestination.add(String) contract
Signed-off-by: Robert Varga <[email protected]>
---
.../karaf/diagnostic/common/LogDumpProvider.java | 37 ++++++++--------------
1 file changed, 14 insertions(+), 23 deletions(-)
diff --git
a/diagnostic/core/src/main/java/org/apache/karaf/diagnostic/common/LogDumpProvider.java
b/diagnostic/core/src/main/java/org/apache/karaf/diagnostic/common/LogDumpProvider.java
index 517686b927..132b39bdd9 100644
---
a/diagnostic/core/src/main/java/org/apache/karaf/diagnostic/common/LogDumpProvider.java
+++
b/diagnostic/core/src/main/java/org/apache/karaf/diagnostic/common/LogDumpProvider.java
@@ -15,18 +15,13 @@
*/
package org.apache.karaf.diagnostic.common;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.OutputStream;
-import java.util.Dictionary;
-import java.util.Enumeration;
+import java.nio.file.Files;
+import java.nio.file.Path;
import org.apache.karaf.diagnostic.core.DumpDestination;
import org.apache.karaf.diagnostic.core.DumpProvider;
-import org.apache.karaf.util.StreamUtils;
import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.service.cm.Configuration;
+import org.osgi.framework.FrameworkUtil;
import org.osgi.service.cm.ConfigurationAdmin;
/**
@@ -44,38 +39,34 @@ public class LogDumpProvider implements DumpProvider {
/**
* Attach log entries from directory.
*/
+ @Override
public void createDump(DumpDestination destination) throws Exception {
// get the ConfigAdmin service
- ServiceReference ref =
bundleContext.getServiceReference(ConfigurationAdmin.class.getName());
+ var ref = bundleContext.getServiceReference(ConfigurationAdmin.class);
if (ref == null) {
return;
}
// get the PAX Logging configuration
- ConfigurationAdmin configurationAdmin = (ConfigurationAdmin)
bundleContext.getService(ref);
+ var configurationAdmin = bundleContext.getService(ref);
try {
- Configuration configuration =
configurationAdmin.getConfiguration("org.ops4j.pax.logging", null);
+ var configuration =
configurationAdmin.getConfiguration("org.ops4j.pax.logging", null);
// get the ".file" Pax Logging properties
- Dictionary dictionary = configuration.getProcessedProperties(null);
- for (Enumeration e = dictionary.keys(); e.hasMoreElements(); ) {
- String property = (String) e.nextElement();
+ for (var entry :
FrameworkUtil.asMap(configuration.getProcessedProperties(null)).entrySet()) {
+ var property = entry.getKey();
if (property.endsWith(".fileName")) {
// it's a file appender, get the file location
- String location = (String) dictionary.get(property);
- File file = new File(location);
- if (file.exists()) {
- FileInputStream inputStream = new
FileInputStream(file);
- OutputStream outputStream = destination.add("log/" +
file.getName());
- StreamUtils.copy(inputStream, outputStream);
+ var location = Path.of((String) entry.getValue());
+ if (Files.exists(location)) {
+ try (var os = destination.add("log/" +
location.getFileName())) {
+ Files.copy(location, os);
+ }
}
}
}
- } catch (Exception e) {
- throw e;
} finally {
bundleContext.ungetService(ref);
}
}
-
}