diff --git a/.gitignore b/.gitignore
index a94349f..c52aa7a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
/target/
/bin/
/testFileReader1.txt
+/state2.json
diff --git a/pom.xml b/pom.xml
index be4cabb..35c451a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -124,7 +124,7 @@
com.fasterxml.jackson.core
jackson-databind
- 2.3.0
+ 2.1.5
junit
diff --git a/src/main/java/info/fetter/logstashforwarder/FileState.java b/src/main/java/info/fetter/logstashforwarder/FileState.java
index 013507e..6c489a8 100644
--- a/src/main/java/info/fetter/logstashforwarder/FileState.java
+++ b/src/main/java/info/fetter/logstashforwarder/FileState.java
@@ -21,21 +21,36 @@ import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
+import org.apache.commons.lang.builder.ToStringBuilder;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
public class FileState {
+ @JsonIgnore
private File file;
private String directory;
+ private String fileName;
+ @JsonIgnore
private long lastModified;
+ @JsonIgnore
private long size;
+ @JsonIgnore
private boolean deleted = false;
private long signature;
private int signatureLength;
+ @JsonIgnore
private boolean changed = false;
+ @JsonIgnore
private RandomAccessFile randomAccessFile;
private long pointer = 0;
+ @JsonIgnore
private FileState oldFileState;
- private String fileName;
+ @JsonIgnore
private Event fields;
+ public FileState() {
+ }
+
public FileState(File file) throws IOException {
this.file = file;
directory = file.getCanonicalFile().getParent();
@@ -44,6 +59,10 @@ public class FileState {
lastModified = file.lastModified();
size = file.length();
}
+
+ private void setFileFromDirectoryAndName() {
+ this.file = new File(directory + File.pathSeparator + fileName);
+ }
public File getFile() {
return file;
@@ -61,6 +80,24 @@ public class FileState {
return directory;
}
+ public void setDirectory(String directory) {
+ this.directory = directory;
+ if(fileName != null && directory != null) {
+ setFileFromDirectoryAndName();
+ }
+ }
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ if(fileName != null && directory != null) {
+ setFileFromDirectoryAndName();
+ }
+ }
+
public boolean isDeleted() {
return deleted;
}
@@ -113,10 +150,6 @@ public class FileState {
this.oldFileState = oldFileState;
}
- public String getFileName() {
- return fileName;
- }
-
public Event getFields() {
return fields;
}
@@ -125,4 +158,15 @@ public class FileState {
this.fields = fields;
}
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this).
+ append("fileName", fileName).
+ append("directory", directory).
+ append("pointer", pointer).
+ append("signature", signature).
+ append("signatureLength", signatureLength).
+ toString();
+ }
+
}
diff --git a/src/main/java/info/fetter/logstashforwarder/Forwarder.java b/src/main/java/info/fetter/logstashforwarder/Forwarder.java
index 38fe379..a1eb39e 100644
--- a/src/main/java/info/fetter/logstashforwarder/Forwarder.java
+++ b/src/main/java/info/fetter/logstashforwarder/Forwarder.java
@@ -16,10 +16,8 @@ import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
-import org.apache.log4j.Appender;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
import org.apache.log4j.spi.RootLogger;
/*
diff --git a/src/test/resources/state1.json b/src/test/resources/state1.json
new file mode 100644
index 0000000..481744b
--- /dev/null
+++ b/src/test/resources/state1.json
@@ -0,0 +1,4 @@
+[
+{"fileName":"file1","directory":"/directory1","pointer":12345,"signature":654321,"signatureLength":135},
+{"fileName":"file2","directory":"/directory2","pointer":23456,"signature":7654,"signatureLength":246}
+]
\ No newline at end of file