Skip to content

Commit

Permalink
issue71 (#78)
Browse files Browse the repository at this point in the history
* issue 71 -- use actual xml writer to write tika-config
  • Loading branch information
tballison committed Nov 21, 2022
1 parent b665917 commit 9dd8d70
Show file tree
Hide file tree
Showing 26 changed files with 778 additions and 630 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,4 @@ The release is currently triggered by pushing a tag starting with 'v'.
We should figure out how to sign artifacts and offer sha256s. Again, see jreleaser above.

Further, short of going the full jreleaser route, we should start using: appassembler-maven-plugin.
x;
6 changes: 3 additions & 3 deletions tika-gui-app/src/main/java/module-info.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@
opens org.tallison.tika.app.fx to javafx.fxml, com.fasterxml.jackson.databind;
opens org.tallison.tika.app.fx.ctx to com.fasterxml.jackson.databind, javafx.fxml;
opens org.tallison.tika.app.fx.status to javafx.base;
opens org.tallison.tika.app.fx.tools to com.fasterxml.jackson.databind, javafx.fxml;
opens org.tallison.tika.app.fx.metadata to com.fasterxml.jackson.databind, javafx.fxml,
javafx.base;
opens org.tallison.tika.app.fx.metadata to com.fasterxml.jackson.databind, javafx.fxml, javafx.base;
exports org.tallison.tika.app.fx.emitters;
opens org.tallison.tika.app.fx.emitters to com.fasterxml.jackson.databind, javafx.fxml;
opens org.tallison.tika.app.fx.config to com.fasterxml.jackson.databind, javafx.fxml;
opens org.tallison.tika.app.fx.batch to com.fasterxml.jackson.databind, javafx.fxml;
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@
import javafx.scene.input.MouseEvent;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.tallison.tika.app.fx.batch.BatchProcessConfig;
import org.tallison.tika.app.fx.ctx.AppContext;
import org.tallison.tika.app.fx.tools.BatchProcessConfig;

import org.apache.tika.utils.StringUtils;

Expand Down Expand Up @@ -68,14 +68,12 @@ public void initialize(URL fxmlFileLocation, ResourceBundle resources) {
if (batchProcessConfig.getDigest().isPresent()) {
digestOptions.getSelectionModel().select(batchProcessConfig.getDigest().get());
}
parseTimeoutSeconds.setText(
Integer.toString(batchProcessConfig.getParseTimeoutSeconds()));
memoryPerProcess.setText(
Integer.toString(batchProcessConfig.getMaxMemMb())
);
parseTimeoutSeconds.setText(Integer.toString(batchProcessConfig.getParseTimeoutSeconds()));
memoryPerProcess.setText(Integer.toString(batchProcessConfig.getMaxMemMb()));
numProcesses.setText(Integer.toString(batchProcessConfig.getNumProcesses()));

perFileEmitThresholdMb.setText(Integer.toString(batchProcessConfig.getPerFileEmitThresholdMb()));
perFileEmitThresholdMb.setText(
Integer.toString(batchProcessConfig.getPerFileEmitThresholdMb()));

totalEmitThresholdMb.setText(Integer.toString(batchProcessConfig.getTotalEmitThesholdMb()));
emitWithinMs.setText(Long.toString(batchProcessConfig.getEmitWithinMs()));
Expand Down Expand Up @@ -141,8 +139,7 @@ public void saveState() {
APP_CONTEXT.saveState();
}

private int getInt(String label, TextField textField, int min, int max,
int defaultVal) {
private int getInt(String label, TextField textField, int min, int max, int defaultVal) {

String txt = textField.getText();
if (StringUtils.isBlank(txt)) {
Expand All @@ -166,8 +163,7 @@ private int getInt(String label, TextField textField, int min, int max,
return num;
}

private long getLong(String label, TextField textField, long min, long max,
long defaultVal) {
private long getLong(String label, TextField textField, long min, long max, long defaultVal) {

String txt = textField.getText();
if (StringUtils.isBlank(txt)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@
import javafx.stage.Window;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.tallison.tika.app.fx.batch.BatchProcessConfig;
import org.tallison.tika.app.fx.config.ConfigItem;
import org.tallison.tika.app.fx.ctx.AppContext;
import org.tallison.tika.app.fx.tools.BatchProcessConfig;
import org.tallison.tika.app.fx.tools.ConfigItem;

import org.apache.tika.pipes.pipesiterator.fs.FileSystemPipesIterator;
import org.apache.tika.utils.StringUtils;
Expand All @@ -47,7 +47,7 @@ public void fileSystemInputDirectorySelect(ActionEvent actionEvent) {
final Window parent = ((Node) actionEvent.getTarget()).getScene().getWindow();
DirectoryChooser directoryChooser = new DirectoryChooser();
directoryChooser.setTitle("Open Resource File");
if (! APP_CONTEXT.getBatchProcessConfig().isPresent()) {
if (!APP_CONTEXT.getBatchProcessConfig().isPresent()) {
LOGGER.warn("BatchProcessConfig must not be empty");
actionEvent.consume();
return;
Expand All @@ -71,12 +71,11 @@ public void fileSystemInputDirectorySelect(ActionEvent actionEvent) {
String shortLabel = "FileSystem: " + ellipsize(directory.getName(), 30);
String fullLabel = "FileSystem: " + directory.getAbsolutePath();

batchProcessConfig.setFetcher(shortLabel, fullLabel,
Constants.FS_FETCHER_CLASS, "basePath",
batchProcessConfig.setFetcher(shortLabel, fullLabel, Constants.FS_FETCHER_CLASS, "basePath",
directory.toPath().toAbsolutePath().toString());
batchProcessConfig.setPipesIterator(shortLabel, fullLabel,
FileSystemPipesIterator.class.getName(),
"basePath", directory.toPath().toAbsolutePath().toString());
FileSystemPipesIterator.class.getName(), "basePath",
directory.toPath().toAbsolutePath().toString());
batchProcessConfig.setInputSelectedTab(0);
APP_CONTEXT.saveState();
((Stage) fsInputButton.getScene().getWindow()).close();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@
import javafx.scene.input.MouseEvent;
import javafx.scene.paint.Color;
import javafx.util.StringConverter;
import org.tallison.tika.app.fx.batch.BatchProcess;
import org.tallison.tika.app.fx.ctx.AppContext;
import org.tallison.tika.app.fx.status.StatusCount;
import org.tallison.tika.app.fx.tools.BatchProcess;

import org.apache.tika.pipes.PipesResult;
import org.apache.tika.pipes.async.AsyncStatus;
Expand All @@ -52,61 +52,45 @@
public class BatchStatusController implements Initializable {

private static Map<String, PipesResult.STATUS> PIPES_STATUS_LOOKUP = new HashMap<>();
private static String UNPROCESSED_COLOR = "0066cc";
private static Map<PipesResult.STATUS, String> COLORS =
Map.of(PipesResult.STATUS.PARSE_SUCCESS, "009900",
PipesResult.STATUS.PARSE_SUCCESS_WITH_EXCEPTION, "ffff00",
PipesResult.STATUS.EMIT_SUCCESS, "009900", PipesResult.STATUS.TIMEOUT, "ff9900",
PipesResult.STATUS.UNSPECIFIED_CRASH, "ff0000", PipesResult.STATUS.OOM,
"ff8000", PipesResult.STATUS.CLIENT_UNAVAILABLE_WITHIN_MS, "",
PipesResult.STATUS.INTERRUPTED_EXCEPTION, "", PipesResult.STATUS.EMPTY_OUTPUT,
"ffe6cc", PipesResult.STATUS.PARSE_EXCEPTION_EMIT, ""
//TODO -- fill out rest?
);

static {
Arrays.stream(PipesResult.STATUS.values()).forEach(
s -> PIPES_STATUS_LOOKUP.put(s.name(), s));
Arrays.stream(PipesResult.STATUS.values())
.forEach(s -> PIPES_STATUS_LOOKUP.put(s.name(), s));
}

private static String UNPROCESSED_COLOR = "0066cc";

private static Map<PipesResult.STATUS, String> COLORS = Map.of(
PipesResult.STATUS.PARSE_SUCCESS, "009900",
PipesResult.STATUS.PARSE_SUCCESS_WITH_EXCEPTION, "ffff00",
PipesResult.STATUS.EMIT_SUCCESS, "009900",
PipesResult.STATUS.TIMEOUT, "ff9900",
PipesResult.STATUS.UNSPECIFIED_CRASH, "ff0000",
PipesResult.STATUS.OOM, "ff8000",
PipesResult.STATUS.CLIENT_UNAVAILABLE_WITHIN_MS, "",
PipesResult.STATUS.INTERRUPTED_EXCEPTION, "",
PipesResult.STATUS.EMPTY_OUTPUT, "ffe6cc",
PipesResult.STATUS.PARSE_EXCEPTION_EMIT, ""
//TODO -- fill out rest?
);
@FXML
private final ObservableList<StatusCount> statusCounts = FXCollections.observableArrayList();
private final Label pieSliceCaption = new Label("");
@FXML
PieChart statusPieChart;

@FXML
TextField totalToProcess;

@FXML
TextField totalProcessed;

@FXML
TextField overallStatus;

@FXML
TableColumn countColumn;

@FXML
TableView statusTable;

@FXML
private final ObservableList<StatusCount> statusCounts = FXCollections.observableArrayList();

ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList();
private Thread updaterThread;

public ObservableList<StatusCount> getStatusCounts() {
return statusCounts;
}


private Thread updaterThread;

private final Label pieSliceCaption = new Label("");


ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList();

@Override
public void initialize(URL fxmlFileLocation, ResourceBundle resources) {
pieSliceCaption.setTextFill(Color.DARKORANGE);
Expand All @@ -129,7 +113,7 @@ public void stop() {

private void updateStatusTable() {
//remove 0 entries
statusCounts.removeIf( e -> e.getCount() < 0.1);
statusCounts.removeIf(e -> e.getCount() < 0.1);
statusTable.sort();
statusTable.refresh();
}
Expand All @@ -146,7 +130,7 @@ public void run() {
if (batchProcess.isPresent()) {
final Optional<AsyncStatus> status = batchProcess.get().checkAsyncStatus();

if (! status.isEmpty()) {
if (!status.isEmpty()) {
Platform.runLater(() -> {
updatePieChart(status.get());
updateTotalToProcess(status.get());
Expand Down Expand Up @@ -206,7 +190,7 @@ private void updatePieChart(AsyncStatus status) {
}
}
for (Map.Entry<PipesResult.STATUS, Long> e : status.getStatusCounts().entrySet()) {
if (! seen.contains(e.getKey())) {
if (!seen.contains(e.getKey())) {
addData(e.getKey().name(), e.getValue());
}
}
Expand All @@ -226,9 +210,10 @@ private void addData(String name, double value) {
}
}

data.getNode().addEventHandler(MouseEvent.MOUSE_PRESSED,
new EventHandler<MouseEvent>() {
@Override public void handle(MouseEvent e) {
data.getNode()
.addEventHandler(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent e) {
pieSliceCaption.setTranslateX(e.getSceneX());
pieSliceCaption.setTranslateY(e.getSceneY());
pieSliceCaption.setText(String.valueOf(data.getPieValue()) + "%");
Expand All @@ -239,9 +224,10 @@ private void addData(String name, double value) {
statusCount.countProperty().bind(data.pieValueProperty());
statusCounts.add(statusCount);
}

private PipesResult.STATUS lookup(String name) {

if (! PIPES_STATUS_LOOKUP.containsKey(name)) {
if (!PIPES_STATUS_LOOKUP.containsKey(name)) {
return null;
}
return PIPES_STATUS_LOOKUP.get(name);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ public class Constants {
public static final String FS_FETCHER_CLASS = FileSystemFetcher.class.getName();

//an imaginary class
public static final String CSV_EMITTER_CLASS =
"org.apache.tika.pipes.emitter.csv.CSVEmitter";
public static final String CSV_EMITTER_CLASS = "org.apache.tika.pipes.emitter.csv.CSVEmitter";

public static final String OPEN_SEARCH_EMITTER_CLASS =
"org.apache.tika.pipes.emitter.opensearch.OpenSearchEmitter";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.stage.WindowEvent;
import org.tallison.tika.app.fx.batch.BatchProcess;
import org.tallison.tika.app.fx.ctx.AppContext;
import org.tallison.tika.app.fx.tools.BatchProcess;

public class TikaApplication extends Application {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@
import javafx.stage.WindowEvent;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.tallison.tika.app.fx.batch.BatchProcess;
import org.tallison.tika.app.fx.batch.BatchProcessConfig;
import org.tallison.tika.app.fx.config.ConfigItem;
import org.tallison.tika.app.fx.ctx.AppContext;
import org.tallison.tika.app.fx.status.StatusUpdater;
import org.tallison.tika.app.fx.tools.BatchProcess;
import org.tallison.tika.app.fx.tools.BatchProcessConfig;
import org.tallison.tika.app.fx.tools.ConfigItem;

public class TikaController extends ControllerBase {

Expand Down
Loading

0 comments on commit 9dd8d70

Please sign in to comment.