You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by gr...@apache.org on 2015/09/30 18:38:18 UTC
svn commit: r1706072 - in
/tika/trunk/tika-core/src/main/java/org/apache/tika/detect:
NNExampleModelDetector.java TrainedModelDetector.java
Author: grossws
Date: Wed Sep 30 16:38:17 2015
New Revision: 1706072
URL: http://svn.apache.org/viewvc?rev=1706072&view=rev
Log:
TIKA-1752: use j.n.f.Path in o.a.tika.detect
Fixes #TIKA-1752.
Contributed by Yaniv Kunda <yaniv at kundas dot net>
Modified:
tika/trunk/tika-core/src/main/java/org/apache/tika/detect/NNExampleModelDetector.java
tika/trunk/tika-core/src/main/java/org/apache/tika/detect/TrainedModelDetector.java
Modified: tika/trunk/tika-core/src/main/java/org/apache/tika/detect/NNExampleModelDetector.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-core/src/main/java/org/apache/tika/detect/NNExampleModelDetector.java?rev=1706072&r1=1706071&r2=1706072&view=diff
==============================================================================
--- tika/trunk/tika-core/src/main/java/org/apache/tika/detect/NNExampleModelDetector.java (original)
+++ tika/trunk/tika-core/src/main/java/org/apache/tika/detect/NNExampleModelDetector.java Wed Sep 30 16:38:17 2015
@@ -23,6 +23,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
+import java.nio.file.Path;
import org.apache.tika.mime.MediaType;
@@ -37,6 +38,10 @@ public class NNExampleModelDetector exte
super();
}
+ public NNExampleModelDetector(final Path modelFile) {
+ loadDefaultModels(modelFile);
+ }
+
public NNExampleModelDetector(final File modelFile) {
loadDefaultModels(modelFile);
}
@@ -64,7 +69,6 @@ public class NNExampleModelDetector exte
throw new RuntimeException(
"Unable to read the default media type registry", e);
}
-
}
/**
@@ -85,21 +89,11 @@ public class NNExampleModelDetector exte
// Get the core URL, and all the extensions URLs
URL modelURL = classLoader.getResource(classPrefix
+ EXAMPLE_NNMODEL_FILE);
- InputStream stream = null;
- try {
- stream = modelURL.openStream();
+ try (InputStream stream = modelURL.openStream()) {
loadDefaultModels(stream);
-
} catch (IOException e) {
throw new RuntimeException(
"Unable to read the default media type registry", e);
- } finally {
- try {
- stream.close();
- } catch (IOException e) {
- throw new RuntimeException(
- "Unable to read the default media type registry", e);
- }
}
}
@@ -114,11 +108,10 @@ public class NNExampleModelDetector exte
*/
private void readDescription(final NNTrainedModelBuilder builder,
final String line) {
- int numInputs = 0;
- int numHidden = 0;
- int numOutputs = 0;
- String tline = line;
- String[] sarr = tline.split("\t");
+ int numInputs;
+ int numHidden;
+ int numOutputs;
+ String[] sarr = line.split("\t");
try {
MediaType type = MediaType.parse(sarr[1]);
@@ -134,7 +127,6 @@ public class NNExampleModelDetector exte
throw new RuntimeException(
"Unable to parse the model configuration", e);
}
-
}
/**
@@ -146,8 +138,7 @@ public class NNExampleModelDetector exte
*/
private void readNNParams(final NNTrainedModelBuilder builder,
final String line) {
- String tline = line;
- String[] sarr = tline.split("\t");
+ String[] sarr = line.split("\t");
int n = sarr.length;
float[] params = new float[n];
try {
Modified: tika/trunk/tika-core/src/main/java/org/apache/tika/detect/TrainedModelDetector.java
URL: http://svn.apache.org/viewvc/tika/trunk/tika-core/src/main/java/org/apache/tika/detect/TrainedModelDetector.java?rev=1706072&r1=1706071&r2=1706072&view=diff
==============================================================================
--- tika/trunk/tika-core/src/main/java/org/apache/tika/detect/TrainedModelDetector.java (original)
+++ tika/trunk/tika-core/src/main/java/org/apache/tika/detect/TrainedModelDetector.java Wed Sep 30 16:38:17 2015
@@ -17,16 +17,14 @@
package org.apache.tika.detect;
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.OutputStreamWriter;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Writer;
import java.nio.ByteBuffer;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
+import java.nio.file.Files;
+import java.nio.file.Path;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -84,7 +82,7 @@ public abstract class TrainedModelDetect
/**
* read the inputstream and build a byte frequence histogram
- *
+ *
* @param input
* @return
* @throws IOException
@@ -92,7 +90,7 @@ public abstract class TrainedModelDetect
protected float[] readByteFrequencies(final InputStream input)
throws IOException {
- ReadableByteChannel inputChannel = null;
+ ReadableByteChannel inputChannel;
try {
inputChannel = Channels.newChannel(input);
// long inSize = inputChannel.size();
@@ -139,45 +137,36 @@ public abstract class TrainedModelDetect
}
/**
- * on testing purpose; this method write the histogram vector to a file.
- *
+ * for testing purposes; this method write the histogram vector to a file.
+ *
* @param histogram
* @throws IOException
*/
- private synchronized void writeHisto(final float[] histogram)
+ private void writeHisto(final float[] histogram)
throws IOException {
- String histPath = new TemporaryResources().createTemporaryFile().getAbsolutePath();
- Writer writer = new OutputStreamWriter(new FileOutputStream(histPath), UTF_8);
- int n = histogram.length;// excluding the last one for storing the
- // max value
- for (int i = 0; i < n; i++) {
- writer.write(new StringBuffer().append(histogram[i]).append("\t")
- .toString());
- // writer.write(i + "\t");
+ Path histPath = new TemporaryResources().createTempFile();
+ try (Writer writer = Files.newBufferedWriter(histPath, UTF_8)) {
+ for (float bin : histogram) {
+ writer.write(String.valueOf(bin) + "\t");
+ // writer.write(i + "\t");
+ }
+ writer.write("\r\n");
}
-
- writer.write("\r\n");
- writer.flush();
}
- public void loadDefaultModels(final File modelFile) {
- FileInputStream in = null;
- try {
- in = new FileInputStream(modelFile);
+ public void loadDefaultModels(Path modelFile) {
+ try (InputStream in = Files.newInputStream(modelFile)) {
loadDefaultModels(in);
- } catch (FileNotFoundException e) {
+ } catch (IOException e) {
throw new RuntimeException(
"Unable to read the default media type registry", e);
- } finally {
- try {
- in.close();
- } catch (IOException e) {
- throw new RuntimeException(
- "Unable to read the default media type registry", e);
- }
}
}
+ public void loadDefaultModels(File modelFile) {
+ loadDefaultModels(modelFile.toPath());
+ }
+
public abstract void loadDefaultModels(final InputStream modelStream);
public abstract void loadDefaultModels(final ClassLoader classLoader);