diff --git a/.classpath b/.classpath index 1c6ab02e4..1e97de883 100644 --- a/.classpath +++ b/.classpath @@ -1,93 +1,93 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/addon/YaCy.app/Contents/Info.plist b/addon/YaCy.app/Contents/Info.plist index eb4048e39..8b737d3e9 100644 --- a/addon/YaCy.app/Contents/Info.plist +++ b/addon/YaCy.app/Contents/Info.plist @@ -96,7 +96,7 @@ $JAVAROOT/lib/lucene-queryparser-4.10.2.jar $JAVAROOT/lib/lucene-spatial-4.10.2.jar $JAVAROOT/lib/lucene-suggest-4.10.2.jar - $JAVAROOT/lib/metadata-extractor-2.6.2.jar + $JAVAROOT/lib/metadata-extractor-2.7.0.jar $JAVAROOT/lib/noggit-0.5.jar $JAVAROOT/lib/org.restlet.jar $JAVAROOT/lib/pdfbox-1.8.7.jar diff --git a/build.xml b/build.xml index 977356f64..7e6ed89e1 100644 --- a/build.xml +++ b/build.xml @@ -220,7 +220,7 @@ - + diff --git a/lib/metadata-extractor-2.6.2.License b/lib/metadata-extractor-2.6.2.License deleted file mode 100644 index 4c7ccef0f..000000000 --- a/lib/metadata-extractor-2.6.2.License +++ /dev/null @@ -1,35 +0,0 @@ -Copyright 2002-2013 Drew Noakes - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. - - - -More information about this project is available at: - - - - http://drewnoakes.com/code/exif/ - - http://code.google.com/p/metadata-extractor/ diff --git a/lib/metadata-extractor-2.6.2.jar b/lib/metadata-extractor-2.6.2.jar deleted file mode 100644 index bd24cc1d5..000000000 Binary files a/lib/metadata-extractor-2.6.2.jar and /dev/null differ diff --git a/lib/metadata-extractor-2.7.0.License b/lib/metadata-extractor-2.7.0.License new file mode 100644 index 000000000..885ea3a1b --- /dev/null +++ b/lib/metadata-extractor-2.7.0.License @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2002-2014 Drew Noakes + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/lib/metadata-extractor-2.7.0.jar b/lib/metadata-extractor-2.7.0.jar new file mode 100644 index 000000000..7889ab1eb Binary files /dev/null and b/lib/metadata-extractor-2.7.0.jar differ diff --git a/lib/xmpcore-5.1.2.jar b/lib/xmpcore-5.1.2.jar new file mode 100644 index 000000000..ecd5db142 Binary files /dev/null and b/lib/xmpcore-5.1.2.jar differ diff --git a/nbproject/project.xml b/nbproject/project.xml index 082fc34aa..f9e9cdac5 100644 --- a/nbproject/project.xml +++ b/nbproject/project.xml @@ -83,7 +83,7 @@ source htroot - lib/J7Zip-modified.jar;lib/apache-mime4j-0.6.jar;lib/bcmail-jdk15-1.46.jar;lib/bcprov-jdk15-1.46.jar;lib/chardet.jar;lib/commons-codec-1.9.jar;lib/commons-compress-1.8.1.jar;lib/commons-fileupload-1.2.2.jar;lib/commons-io-2.3.jar;lib/commons-jxpath-1.3.jar;lib/commons-lang-2.6.jar;lib/commons-logging-1.2.jar;lib/fontbox-1.8.7.jar;lib/geronimo-stax-api_1.0_spec-1.0.1.jar;lib/guava-18.0.jar;lib/htmllexer.jar;lib/httpclient-4.3.6.jar;lib/httpcore-4.3.3.jar;lib/httpmime-4.3.6.jar;lib/icu4j-core.jar;lib/jakarta-oro-2.0.8.jar;lib/jaudiotagger-2.0.4-20111207.115108-15.jar;lib/javax.servlet-api-3.1.0.jar;lib/jcifs-1.3.17.jar;lib/jcl-over-slf4j-1.7.2.jar;lib/jempbox-1.8.7.jar;lib/jetty-client-9.2.4.v20141103.jar;lib/jetty-continuation-9.2.4.v20141103.jar;lib/jetty-deploy-9.2.4.v20141103.jar;lib/jetty-http-9.2.4.v20141103.jar;lib/jetty-io-9.2.4.v20141103.jar;lib/jetty-jmx-9.2.4.v20141103.jar;lib/jetty-proxy-9.2.4.v20141103.jar;lib/jetty-security-9.2.4.v20141103.jar;lib/jetty-server-9.2.4.v20141103.jar;lib/jetty-servlet-9.2.4.v20141103.jar;lib/jetty-servlets-9.2.4.v20141103.jar;lib/jetty-util-9.2.4.v20141103.jar;lib/jetty-webapp-9.2.4.v20141103.jar;lib/jetty-xml-9.2.4.v20141103.jar;lib/jsch-0.1.51.jar;lib/json-simple-1.1.1.jar;lib/jsoup-1.8.1.jar;lib/log4j-over-slf4j-1.7.2.jar;lib/lucene-analyzers-common-4.10.2.jar;lib/lucene-analyzers-phonetic-4.10.2.jar;lib/lucene-classification-4.10.2.jar;lib/lucene-codecs-4.10.2.jar;lib/lucene-core-4.10.2.jar;lib/lucene-facet-4.10.2.jar;lib/lucene-grouping-4.10.2.jar;lib/lucene-highlighter-4.10.2.jar;lib/lucene-join-4.10.2.jar;lib/lucene-memory-4.10.2.jar;lib/lucene-misc-4.10.2.jar;lib/lucene-queries-4.10.2.jar;lib/lucene-queryparser-4.10.2.jar;lib/lucene-spatial-4.10.2.jar;lib/lucene-suggest-4.10.2.jar;lib/metadata-extractor-2.6.2.jar;lib/noggit-0.5.jar;lib/org.restlet.jar;lib/pdfbox-1.8.7.jar;lib/poi-3.10.1.jar;lib/poi-scratchpad-3.10.1.jar;lib/slf4j-api-1.7.6.jar;lib/slf4j-jdk14-1.7.2.jar;lib/solr-core-4.10.2.jar;lib/solr-solrj-4.10.2.jar;lib/spatial4j-0.4.1.jar;lib/webcat-0.1-swf.jar;lib/weupnp-0.1.2.jar;lib/wstx-asl-3.2.9.jar;lib/xercesImpl.jar;lib/xml-apis.jar;lib/zookeeper-3.4.6.jar + lib/J7Zip-modified.jar;lib/apache-mime4j-0.6.jar;lib/bcmail-jdk15-1.46.jar;lib/bcprov-jdk15-1.46.jar;lib/chardet.jar;lib/commons-codec-1.9.jar;lib/commons-compress-1.8.1.jar;lib/commons-fileupload-1.2.2.jar;lib/commons-io-2.3.jar;lib/commons-jxpath-1.3.jar;lib/commons-lang-2.6.jar;lib/commons-logging-1.2.jar;lib/fontbox-1.8.7.jar;lib/geronimo-stax-api_1.0_spec-1.0.1.jar;lib/guava-18.0.jar;lib/htmllexer.jar;lib/httpclient-4.3.6.jar;lib/httpcore-4.3.3.jar;lib/httpmime-4.3.6.jar;lib/icu4j-core.jar;lib/jakarta-oro-2.0.8.jar;lib/jaudiotagger-2.0.4-20111207.115108-15.jar;lib/javax.servlet-api-3.1.0.jar;lib/jcifs-1.3.17.jar;lib/jcl-over-slf4j-1.7.2.jar;lib/jempbox-1.8.7.jar;lib/jetty-client-9.2.4.v20141103.jar;lib/jetty-continuation-9.2.4.v20141103.jar;lib/jetty-deploy-9.2.4.v20141103.jar;lib/jetty-http-9.2.4.v20141103.jar;lib/jetty-io-9.2.4.v20141103.jar;lib/jetty-jmx-9.2.4.v20141103.jar;lib/jetty-proxy-9.2.4.v20141103.jar;lib/jetty-security-9.2.4.v20141103.jar;lib/jetty-server-9.2.4.v20141103.jar;lib/jetty-servlet-9.2.4.v20141103.jar;lib/jetty-servlets-9.2.4.v20141103.jar;lib/jetty-util-9.2.4.v20141103.jar;lib/jetty-webapp-9.2.4.v20141103.jar;lib/jetty-xml-9.2.4.v20141103.jar;lib/jsch-0.1.51.jar;lib/json-simple-1.1.1.jar;lib/jsoup-1.8.1.jar;lib/log4j-over-slf4j-1.7.2.jar;lib/lucene-analyzers-common-4.10.2.jar;lib/lucene-analyzers-phonetic-4.10.2.jar;lib/lucene-classification-4.10.2.jar;lib/lucene-codecs-4.10.2.jar;lib/lucene-core-4.10.2.jar;lib/lucene-facet-4.10.2.jar;lib/lucene-grouping-4.10.2.jar;lib/lucene-highlighter-4.10.2.jar;lib/lucene-join-4.10.2.jar;lib/lucene-memory-4.10.2.jar;lib/lucene-misc-4.10.2.jar;lib/lucene-queries-4.10.2.jar;lib/lucene-queryparser-4.10.2.jar;lib/lucene-spatial-4.10.2.jar;lib/lucene-suggest-4.10.2.jar;lib/metadata-extractor-2.7.0.jar;lib/noggit-0.5.jar;lib/org.restlet.jar;lib/pdfbox-1.8.7.jar;lib/poi-3.10.1.jar;lib/poi-scratchpad-3.10.1.jar;lib/slf4j-api-1.7.6.jar;lib/slf4j-jdk14-1.7.2.jar;lib/solr-core-4.10.2.jar;lib/solr-solrj-4.10.2.jar;lib/spatial4j-0.4.1.jar;lib/webcat-0.1-swf.jar;lib/weupnp-0.1.2.jar;lib/wstx-asl-3.2.9.jar;lib/xercesImpl.jar;lib/xml-apis.jar;lib/zookeeper-3.4.6.jar lib/yacycore.jar 1.7 diff --git a/pom.xml b/pom.xml index ffd7fe5b1..fe06fac64 100644 --- a/pom.xml +++ b/pom.xml @@ -488,7 +488,7 @@ com.drewnoakes metadata-extractor - 2.6.2 + 2.7.0 oro diff --git a/source/net/yacy/document/parser/images/genericImageParser.java b/source/net/yacy/document/parser/images/genericImageParser.java index eef19a6fc..11a7f2706 100644 --- a/source/net/yacy/document/parser/images/genericImageParser.java +++ b/source/net/yacy/document/parser/images/genericImageParser.java @@ -57,16 +57,13 @@ import net.yacy.document.parser.html.ImageEntry; import net.yacy.document.parser.images.bmpParser.IMAGEMAP; import net.yacy.kelondro.util.FileUtils; +import com.drew.imaging.jpeg.JpegMetadataReader; import com.drew.imaging.jpeg.JpegProcessingException; -import com.drew.imaging.jpeg.JpegSegmentReader; -import com.drew.lang.ByteArrayReader; import com.drew.lang.GeoLocation; import com.drew.metadata.Directory; import com.drew.metadata.Metadata; import com.drew.metadata.Tag; -import com.drew.metadata.exif.ExifReader; import com.drew.metadata.exif.GpsDirectory; -import com.drew.metadata.iptc.IptcReader; public class genericImageParser extends AbstractParser implements Parser { @@ -133,20 +130,8 @@ public class genericImageParser extends AbstractParser implements Parser { ii = parseJavaImage(location, new ByteArrayInputStream(b)); - JpegSegmentReader segmentReader; try { - /**/ - segmentReader = new JpegSegmentReader(b); - - final byte[] exifSegment = segmentReader.readSegment(JpegSegmentReader.SEGMENT_APP1); - final byte[] iptcSegment = segmentReader.readSegment(JpegSegmentReader.SEGMENT_APPD); - final Metadata metadata = new Metadata(); - if (exifSegment != null) new ExifReader().extract(new ByteArrayReader(exifSegment),metadata); - if (iptcSegment != null) new IptcReader().extract(new ByteArrayReader(iptcSegment),metadata); - /**/ - // alternative to above: to read all included jpeg tags and metadata - // final Metadata metadata = JpegMetadataReader.readMetadata(new ByteArrayInputStream(b)); - + final Metadata metadata = JpegMetadataReader.readMetadata(new ByteArrayInputStream(b)); final Iterator directories = metadata.getDirectories().iterator(); final HashMap props = new HashMap(); while (directories.hasNext()) { @@ -188,7 +173,7 @@ public class genericImageParser extends AbstractParser implements Parser { description = props.get("Province/State"); if (description != null && description.length() > 0) descriptions.add("State: " + description); description = props.get("Copyright Notice"); if (description != null && description.length() > 0) descriptions.add("Copyright: " + description); - } catch (final JpegProcessingException e) { + } catch (final JpegProcessingException | IOException e) { //Log.logException(e); // just ignore } diff --git a/source/net/yacy/document/parser/images/metadataImageParser.java b/source/net/yacy/document/parser/images/metadataImageParser.java index 46e34d452..90bbf6b1a 100644 --- a/source/net/yacy/document/parser/images/metadataImageParser.java +++ b/source/net/yacy/document/parser/images/metadataImageParser.java @@ -96,7 +96,7 @@ public class metadataImageParser extends AbstractParser implements Parser { StringBuilder imgInfotxt = new StringBuilder(); try { - final Metadata metadata = ImageMetadataReader.readMetadata(new BufferedInputStream(sourceStream), false); + final Metadata metadata = ImageMetadataReader.readMetadata(new BufferedInputStream(sourceStream)); final Iterator directories = metadata.getDirectories().iterator(); final HashMap props = new HashMap(); diff --git a/source/net/yacy/http/servlets/SolrServlet.java b/source/net/yacy/http/servlets/SolrServlet.java index 066f10df4..020ad8840 100644 --- a/source/net/yacy/http/servlets/SolrServlet.java +++ b/source/net/yacy/http/servlets/SolrServlet.java @@ -70,8 +70,9 @@ public class SolrServlet extends HttpServlet { if (connector == null) throw new ServletException("no core"); SolrQueryResponse solrRsp = new SolrQueryResponse(); + SolrQueryRequest solrReq = null; try { - SolrQueryRequest solrReq = connector.request(mmsp); // SolrRequestParsers.DEFAULT.parse(null, hrequest.getServletPath(), hrequest); + solrReq = connector.request(mmsp); // SolrRequestParsers.DEFAULT.parse(null, hrequest.getServletPath(), hrequest); solrReq.getContext().put("webapp", hrequest.getContextPath()); SolrRequestHandler handler = sb.index.fulltext().getEmbeddedInstance().getCoreContainer().getMultiCoreHandler(); connector.getCore().execute( handler, solrReq, solrRsp ); @@ -101,6 +102,8 @@ public class SolrServlet extends HttpServlet { } catch (Exception e) { ConcurrentLog.logException(e); + } finally { + if (solrReq != null) solrReq.close(); } } diff --git a/test/net/yacy/document/parser/images/genericImageParserTest.java b/test/net/yacy/document/parser/images/genericImageParserTest.java new file mode 100644 index 000000000..34532b3f7 --- /dev/null +++ b/test/net/yacy/document/parser/images/genericImageParserTest.java @@ -0,0 +1,38 @@ + +package net.yacy.document.parser.images; + +import java.io.File; +import java.io.FileInputStream; +import net.yacy.cora.document.id.AnchorURL; +import net.yacy.document.Document; +import org.junit.Test; +import static org.junit.Assert.*; + +public class genericImageParserTest { + + /** + * Test of parse method, of class genericImageParser. + */ + @Test + public void testParse() throws Exception { + System.out.println("genericImageParser.parse Jpeg"); + + final String testFiles = "YaCyLogo_120ppi.jpg"; + final String mimetype = "image/jpeg"; + final String charset = null; + + final String filename = "test/parsertest/" + testFiles; + final File file = new File(filename); + + final AnchorURL url = new AnchorURL("http://localhost/" + filename); + System.out.println("parse file: " + filename); + + genericImageParser p = new genericImageParser(); + final Document[] docs = p.parse(url, mimetype, charset, new FileInputStream(file)); + + Document doc = docs[0]; + assertEquals("YaCy Logo",doc.dc_title()); + System.out.println(doc.toString()); + } + +} diff --git a/test/net/yacy/document/parser/images/metadataImageParserTest.java b/test/net/yacy/document/parser/images/metadataImageParserTest.java new file mode 100644 index 000000000..9dec63219 --- /dev/null +++ b/test/net/yacy/document/parser/images/metadataImageParserTest.java @@ -0,0 +1,39 @@ + +package net.yacy.document.parser.images; + +import java.io.File; +import java.io.FileInputStream; +import net.yacy.cora.document.id.AnchorURL; +import net.yacy.document.Document; +import org.junit.Test; +import static org.junit.Assert.*; + +public class metadataImageParserTest { + + + /** + * Test of parse method, of class metadataImageParser. + */ + @Test + public void testParse() throws Exception { + System.out.println("metadataImageParser.parse TIF"); + + final String testFiles = "YaCyLogo_120ppi.tif"; + final String mimetype = "image/tiff"; + final String charset = null; + + final String filename = "test/parsertest/" + testFiles; + final File file = new File(filename); + + final AnchorURL url = new AnchorURL("http://localhost/" + filename); + System.out.println("parse file: " + filename); + + metadataImageParser p = new metadataImageParser(); + final Document[] docs = p.parse(url, mimetype, charset, new FileInputStream(file)); + + Document doc = docs[0]; + assertEquals("YaCy Logo",doc.dc_title()); + System.out.println(doc.toString()); + } + +} diff --git a/test/parsertest/YaCyLogo_120ppi.jpg b/test/parsertest/YaCyLogo_120ppi.jpg new file mode 100644 index 000000000..0752cb2cf Binary files /dev/null and b/test/parsertest/YaCyLogo_120ppi.jpg differ diff --git a/test/parsertest/YaCyLogo_120ppi.tif b/test/parsertest/YaCyLogo_120ppi.tif new file mode 100644 index 000000000..4902b28a1 Binary files /dev/null and b/test/parsertest/YaCyLogo_120ppi.tif differ