Skip to content

Commit 5387cef

Browse files
authored
1 parent c29b481 commit 5387cef

57 files changed

Lines changed: 260 additions & 1345 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

tika-core/src/main/java/org/apache/tika/language/translate/DefaultTranslator.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.List;
2121

2222
import org.apache.tika.config.ServiceLoader;
23+
import org.apache.tika.config.TikaComponent;
2324
import org.apache.tika.exception.TikaException;
2425
import org.apache.tika.utils.CompareUtils;
2526

@@ -30,6 +31,7 @@
3031
*
3132
* @since Apache Tika 1.6
3233
*/
34+
@TikaComponent
3335
public class DefaultTranslator implements Translator {
3436
private transient final ServiceLoader loader;
3537

@@ -59,6 +61,10 @@ private static List<Translator> getDefaultTranslators(ServiceLoader loader) {
5961
*/
6062
private static Translator getFirstAvailable(ServiceLoader loader) {
6163
for (Translator t : getDefaultTranslators(loader)) {
64+
// Skip DefaultTranslator to avoid infinite recursion
65+
if (t instanceof DefaultTranslator) {
66+
continue;
67+
}
6268
if (t.isAvailable()) {
6369
return t;
6470
}

tika-core/src/main/java/org/apache/tika/parser/EmptyParser.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.xml.sax.ContentHandler;
2424
import org.xml.sax.SAXException;
2525

26+
import org.apache.tika.config.TikaComponent;
2627
import org.apache.tika.metadata.Metadata;
2728
import org.apache.tika.mime.MediaType;
2829
import org.apache.tika.sax.XHTMLContentHandler;
@@ -32,6 +33,7 @@
3233
* attempting to parse the given document stream. Useful as a sentinel parser
3334
* for unknown document types.
3435
*/
36+
@TikaComponent(spi = false)
3537
public class EmptyParser implements Parser {
3638
/**
3739
* Singleton instance of this class.

tika-core/src/main/java/org/apache/tika/parser/ErrorParser.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
import org.xml.sax.ContentHandler;
2424

25+
import org.apache.tika.config.TikaComponent;
2526
import org.apache.tika.exception.TikaException;
2627
import org.apache.tika.metadata.Metadata;
2728
import org.apache.tika.mime.MediaType;
@@ -31,6 +32,7 @@
3132
* attempting to parse the given document stream. Useful as a sentinel parser
3233
* for unknown document types.
3334
*/
35+
@TikaComponent(spi = false)
3436
public class ErrorParser implements Parser {
3537
/**
3638
* Singleton instance of this class.

tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/config/TikaConfigSerializerTest.java

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,11 @@
1515
* limitations under the License.
1616
*/
1717
package org.apache.tika.config;
18-
19-
import static org.apache.tika.TikaTest.assertContains;
20-
import static org.apache.tika.TikaTest.assertContainsCount;
21-
import static org.apache.tika.TikaTest.assertNotContained;
22-
23-
import java.io.ByteArrayInputStream;
24-
import java.io.InputStream;
25-
import java.io.StringWriter;
26-
import java.nio.charset.StandardCharsets;
27-
2818
import org.junit.jupiter.api.Disabled;
29-
import org.junit.jupiter.api.Test;
3019

3120
@Disabled("TODO -- convert to TikaLoader/serializer")
3221
public class TikaConfigSerializerTest {
33-
22+
/*
3423
@Test
3524
public void testBasicParams() throws Exception {
3625
TikaConfig tikaConfig = TikaConfig.getDefaultConfig();
@@ -73,6 +62,6 @@ public void testOfficeParserParams() throws Exception {
7362
assertContainsCount("<param name=\"concatenatePhoneticRuns\" type=\"bool\">true</param>",
7463
writer.toString(), 3);
7564
}
76-
65+
*/
7766

7867
}

tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/config/TikaDetectorConfigTest.java

Lines changed: 11 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.junit.jupiter.api.Test;
2525

2626
import org.apache.tika.TikaLoaderHelper;
27+
import org.apache.tika.TikaTest;
2728
import org.apache.tika.config.loader.TikaLoader;
2829
import org.apache.tika.detect.CompositeDetector;
2930
import org.apache.tika.detect.DefaultDetector;
@@ -33,15 +34,12 @@
3334
import org.apache.tika.detect.zip.DefaultZipContainerDetector;
3435
import org.apache.tika.io.TikaInputStream;
3536
import org.apache.tika.metadata.Metadata;
36-
import org.apache.tika.mime.MimeTypes;
3737
import org.apache.tika.parser.microsoft.pst.OutlookPSTParser;
3838

3939
/**
40-
* Junit test class for {@link TikaConfig}, which cover things
41-
* that {@link TikaConfigTest} can't do due to a need for the
42-
* full set of detectors
40+
* Junit test class for detector configuration via JSON.
4341
*/
44-
public class TikaDetectorConfigTest extends AbstractTikaConfigTest {
42+
public class TikaDetectorConfigTest extends TikaTest {
4543

4644
@Test
4745
public void testDetectorExcludeFromDefault() throws Exception {
@@ -53,30 +51,23 @@ public void testDetectorExcludeFromDefault() throws Exception {
5351
// Should be wrapping two detectors
5452
assertEquals(2, detector.getDetectors().size());
5553

56-
5754
// First should be DefaultDetector, second Empty, that order
5855
assertEquals(DefaultDetector.class, detector.getDetectors().get(0).getClass());
5956
assertEquals(EmptyDetector.class, detector.getDetectors().get(1).getClass());
6057

61-
6258
// Get the DefaultDetector from the config
6359
DefaultDetector confDetector = (DefaultDetector) detector.getDetectors().get(0);
6460

65-
// Get a fresh "default" DefaultParser
66-
TikaLoader.getMediaTypeRegistry().getTypes();
67-
MimeTypes mimeTypes = new MimeTypes();
61+
// Get a fresh "default" DefaultDetector
6862
DefaultDetector normDetector = new DefaultDetector(TikaLoader.getMimeTypes());
6963

70-
7164
// The default one will offer the Zip and POIFS detectors
7265
assertDetectors(normDetector, true, true);
7366

74-
7567
// The one from the config won't, as we excluded those
7668
assertDetectors(confDetector, false, false);
7769
}
7870

79-
8071
/**
8172
* TIKA-1708 - If the Zip detector is disabled, either explicitly,
8273
* or via giving a list of detectors that it isn't part of, ensure
@@ -93,30 +84,24 @@ public void testPSTDetectionWithoutZipDetector() throws Exception {
9384
// Check it has the POIFS one, but not the zip one
9485
assertDetectors(detectorWX, true, false);
9586

96-
9787
// Check the one with an explicit list
98-
TikaConfig configCL = getConfig("TIKA-1708-detector-composite.xml");
99-
assertNotNull(configCL.getParser());
100-
assertNotNull(configCL.getDetector());
101-
CompositeDetector detectorCL = (CompositeDetector) configCL.getDetector();
88+
TikaLoader configCL = TikaLoaderHelper.getLoader("TIKA-1708-detector-composite.json");
89+
assertNotNull(configCL.loadParsers());
90+
assertNotNull(configCL.loadDetectors());
91+
CompositeDetector detectorCL = (CompositeDetector) configCL.loadDetectors();
10292
assertEquals(2, detectorCL.getDetectors().size());
10393

10494
// Check it also has the POIFS one, but not the zip one
10595
assertDetectors(detectorCL, true, false);
10696

107-
108-
// Check that both detectors have a mimetypes with entries
109-
assertTrue(configWX.getMediaTypeRegistry().getTypes().size() > 100,
110-
"Not enough mime types: " + configWX.getMediaTypeRegistry().getTypes().size());
111-
assertTrue(configCL.getMediaTypeRegistry().getTypes().size() > 100,
112-
"Not enough mime types: " + configCL.getMediaTypeRegistry().getTypes().size());
113-
97+
// Check that media type registry has entries
98+
assertTrue(TikaLoader.getMediaTypeRegistry().getTypes().size() > 100,
99+
"Not enough mime types: " + TikaLoader.getMediaTypeRegistry().getTypes().size());
114100

115101
// Now check they detect PST files correctly
116102
try (TikaInputStream outer = TikaInputStream
117103
.get(getResourceAsStream("/test-documents/testPST.pst"))) {
118104
try (TikaInputStream stream = TikaInputStream.get(outer.getPath())) {
119-
120105
assertEquals(OutlookPSTParser.MS_OUTLOOK_PST_MIMETYPE,
121106
detectorWX.detect(stream, new Metadata()));
122107
assertEquals(OutlookPSTParser.MS_OUTLOOK_PST_MIMETYPE,
@@ -152,5 +137,4 @@ private void assertDetectors(CompositeDetector detector, boolean shouldHavePOIFS
152137
assertTrue(hasZip, "Should have the ZipContainerDetector");
153138
}
154139
}
155-
156140
}

tika-parsers/tika-parsers-standard/tika-parsers-standard-package/src/test/java/org/apache/tika/config/TikaEncodingDetectorTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232

3333
import org.apache.tika.Tika;
3434
import org.apache.tika.TikaLoaderHelper;
35+
import org.apache.tika.TikaTest;
3536
import org.apache.tika.config.loader.TikaLoader;
3637
import org.apache.tika.detect.CompositeEncodingDetector;
3738
import org.apache.tika.detect.EncodingDetector;
@@ -49,7 +50,7 @@
4950
import org.apache.tika.parser.txt.TXTParser;
5051
import org.apache.tika.parser.txt.UniversalEncodingDetector;
5152

52-
public class TikaEncodingDetectorTest extends AbstractTikaConfigTest {
53+
public class TikaEncodingDetectorTest extends TikaTest {
5354

5455
@Test
5556
public void testDefault() throws TikaConfigException {

0 commit comments

Comments
 (0)