aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/eu/mulk/aendggner/AendGgner.java53
-rw-r--r--src/main/java/module-info.java6
2 files changed, 47 insertions, 12 deletions
diff --git a/src/main/java/eu/mulk/aendggner/AendGgner.java b/src/main/java/eu/mulk/aendggner/AendGgner.java
index e510efb..c4efd45 100644
--- a/src/main/java/eu/mulk/aendggner/AendGgner.java
+++ b/src/main/java/eu/mulk/aendggner/AendGgner.java
@@ -1,13 +1,22 @@
package eu.mulk.aendggner;
+import java.io.BufferedReader;
import java.io.IOException;
+import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.concurrent.Callable;
+import java.util.logging.LogManager;
import org.apache.tika.config.TikaConfig;
import org.apache.tika.exception.TikaException;
import org.apache.tika.io.TikaInputStream;
import org.apache.tika.metadata.Metadata;
+import org.apache.tika.parser.AutoDetectParser;
+import org.apache.tika.parser.ParseContext;
+import org.apache.tika.parser.Parser;
+import org.apache.tika.parser.ParsingReader;
+import org.jboss.logging.Logger;
+import org.xml.sax.SAXException;
import picocli.CommandLine;
import picocli.CommandLine.Command;
import picocli.CommandLine.Parameters;
@@ -19,6 +28,8 @@ import picocli.CommandLine.Parameters;
description = "Displays German amendment acts in a user-friendly, consolidated way.")
public class AendGgner implements Callable<Integer> {
+ private static final Logger log = Logger.getLogger(AendGgner.class);
+
@Parameters(index = "0", description = "The base text to modify.")
private Path baseFile;
@@ -31,19 +42,49 @@ public class AendGgner implements Callable<Integer> {
}
@Override
- public final Integer call() throws TikaException, IOException {
- var tika = new TikaConfig();
+ public final Integer call() throws TikaException, IOException, SAXException {
+ setupLogging();
+
+ log.debugf("Logging configured.");
+
+ TikaConfig tika;
+ try (var configResource =
+ this.getClass().getResourceAsStream("/eu/mulk/aendggner/tika-config.xml")) {
+ tika = new TikaConfig(configResource);
+ }
for (var file : patches) {
var metadata = new Metadata();
- metadata.set(Metadata.RESOURCE_NAME_KEY, file.toString());
+ metadata.set(Metadata.RESOURCE_NAME_KEY, file.getFileName().toString());
+
try (var is = TikaInputStream.get(file)) {
- var mimetype = tika.getDetector().detect(
- TikaInputStream.get(file), metadata);
- System.out.printf("File %s is %s.\n", file, mimetype);
+ var mimetype = tika.getDetector().detect(TikaInputStream.get(file), metadata);
+ log.infof("File %s is %s.", file, mimetype);
+ }
+
+ var parser = new AutoDetectParser(tika);
+ try (var in = Files.newInputStream(file);
+ var reader =
+ new BufferedReader(
+ new ParsingReader(parser, in, metadata, makeParseContext(parser)))) {
+ log.infof("%s: %d lines of text.", file, reader.lines().count());
+ // reader.lines().forEachOrdered(x -> log.infof("%s: %s", file, x));
}
}
return 0;
}
+
+ private static ParseContext makeParseContext(Parser parser) {
+ var parseContext = new ParseContext();
+ parseContext.set(Parser.class, parser);
+ return parseContext;
+ }
+
+ private static void setupLogging() throws IOException {
+ try (var loggingProperties =
+ AendGgner.class.getResourceAsStream("/eu/mulk/aendggner/logging.properties")) {
+ LogManager.getLogManager().readConfiguration(loggingProperties);
+ }
+ }
}
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
deleted file mode 100644
index dbe7d62..0000000
--- a/src/main/java/module-info.java
+++ /dev/null
@@ -1,6 +0,0 @@
-module aendggner {
- requires info.picocli;
- requires org.apache.tika.core;
- requires java.sql;
- opens eu.mulk.aendggner;
-}