diff --git a/tika-parsers/pom.xml b/tika-parsers/pom.xml
index 8dd8591..35b850c 100644
--- a/tika-parsers/pom.xml
+++ b/tika-parsers/pom.xml
@@ -81,6 +81,11 @@
4.5.3
+ edu.ucar
+ grib
+ 4.5.3
+
+
net.sourceforge.jmatio
jmatio
1.0
diff --git a/tika-parsers/src/main/java/org/apache/tika/parser/grib/GribParser.java b/tika-parsers/src/main/java/org/apache/tika/parser/grib/GribParser.java
index 7fc9ae6..4929fe3 100644
--- a/tika-parsers/src/main/java/org/apache/tika/parser/grib/GribParser.java
+++ b/tika-parsers/src/main/java/org/apache/tika/parser/grib/GribParser.java
@@ -23,7 +23,10 @@ import java.io.File;
import java.util.Collections;
import java.util.Set;
import java.util.List;
+
import org.apache.tika.exception.TikaException;
+import org.apache.tika.io.TemporaryResources;
+import org.apache.tika.io.TikaInputStream;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.metadata.Property;
import org.apache.tika.metadata.TikaCoreProperties;
@@ -64,8 +67,9 @@ public class GribParser extends AbstractParser {
metadata.set(Metadata.CONTENT_TYPE, GRIB_MIME_TYPE);
//Get grib2 file name from metadata
-
- File gribFile = new File(metadata.get(Metadata.RESOURCE_NAME_KEY));
+ TikaInputStream tis = TikaInputStream.get(stream, new TemporaryResources());
+ File gribFile = tis.getFile();
+
try {
NetcdfFile ncFile = NetcdfDataset.openFile(gribFile.getAbsolutePath(), null);
@@ -117,7 +121,7 @@ public class GribParser extends AbstractParser {
xhtml.endDocument();
} catch (IOException e) {
- throw new TikaException("NetCDF parse error", e);
+ throw new TikaException("Grib parse error", e);
}
}
diff --git a/tika-parsers/src/test/java/org/apache/tika/parser/grib/GribParserTest.java b/tika-parsers/src/test/java/org/apache/tika/parser/grib/GribParserTest.java
index c5e0861..540d167 100644
--- a/tika-parsers/src/test/java/org/apache/tika/parser/grib/GribParserTest.java
+++ b/tika-parsers/src/test/java/org/apache/tika/parser/grib/GribParserTest.java
@@ -17,7 +17,7 @@
package org.apache.tika.parser.grib;
- //JDK imports
+//JDK imports
import static org.junit.Assert.*;
import java.io.InputStream;
@@ -28,7 +28,10 @@ import org.apache.tika.parser.Parser;
import org.apache.tika.sax.BodyContentHandler;
import org.junit.Test;
import org.xml.sax.ContentHandler;
-import java.io.File;
+
+/**
+ * Test cases to exercise the {@link org.apache.tika.parser.grib.GribParser}.
+ */
public class GribParserTest {
@@ -38,20 +41,14 @@ import java.io.File;
Parser parser = new GribParser();
Metadata metadata = new Metadata();
ContentHandler handler = new BodyContentHandler();
-
- File gribName = new File("/test-documents/gdas1.forecmwf.2014062612.grib2");
-
- metadata.set(Metadata.RESOURCE_NAME_KEY, gribName.getName());
- InputStream stream = GribParser.class.getResourceAsStream("/test-documents/gdas1.forecmwf.2014062612.grib2");
+ InputStream stream = GribParser.class.getResourceAsStream("/test-documents/gdas1.forecmwf.2014062612.grib2");
try {
parser.parse(stream, handler, metadata, new ParseContext());
} finally {
stream.close();
}
-
assertNotNull(metadata);
-
String content = handler.toString();
assertTrue(content.contains("dimensions:"));
assertTrue(content.contains("variables:"));