[ https://issues.apache.org/jira/browse/TIKA-1276?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rupert Westenthaler updated TIKA-1276: -------------------------------------- Attachment: TIKA-1276_20140428_3_rwesten.diff > Now it complains on the org.apache.commons.logging. No Idea why I do not get the same errors. I am using {noformat} Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-14T18:37:52+01:00) Java version: 1.7.0_45, vendor: Oracle Corporation Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre Default locale: en_US, platform encoding: UTF-8 OS name: "mac os x", version: "10.9.2", arch: "x86_64", family: "mac" {noformat} `common-logging` is a indirect dependency of `org.apache.pdfbox:pdfbox` and it is needed - so defining this import as optional is not an option. Embedding logging related jars seams like a bad idea as those are typically provided by the logging framework used in the OSGI environment. Therefore `TIKA-1276_20140428_3_rwesten.diff` ensures that commons-logging is added as bundle to the pax exam environment during the tests. For this I had to * add `commons-logging:commons-logging:1.1.3` as a test scope dependency (used 1.1.3 as 1.1.1 is not a bundle) * add commons-logging to the `test-bundles.xml` and set the scope of the dependencySet to test * add commons-logging to the pax exam options in BundleIT Hopefully this fixes this issue. Its hard for me to validate as I am not affected by this. > Missing embedded dependencies in tika-bundle > -------------------------------------------- > > Key: TIKA-1276 > URL: https://issues.apache.org/jira/browse/TIKA-1276 > Project: Tika > Issue Type: Bug > Components: packaging > Affects Versions: 1.5 > Environment: OSGI, Apache Felix via Apache Sling Launcher > Reporter: Rupert Westenthaler > Fix For: 1.6 > > Attachments: TIKA-1276_20140423_rwesten.diff, > TIKA-1276_20140428_2_rwesten.diff, TIKA-1276_20140428_3_rwesten.diff, > TIKA-1276_20140428_rwesten.diff > > > While updating from tika 1.2 to 1.5 I that the > `org.apache.tika:tika-bundle:1.5` module has some missing dependences. > 1. `com.uwyn:jhighlight:1.0` is not embedded > Because of that installing the bundle results in the following exception > {code} > org.osgi.framework.BundleException: Unresolved constraint in bundle > org.apache.tika.bundle [103]: Unable to resolve 103.0: missing requirement > [103.0] osgi.wiring.package; > (osgi.wiring.package=com.uwyn.jhighlight.renderer)) > org.osgi.framework.BundleException: Unresolved constraint in bundle > org.apache.tika.bundle [103]: Unable to resolve 103.0: missing requirement > [103.0] osgi.wiring.package; > (osgi.wiring.package=com.uwyn.jhighlight.renderer) > at > org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3962) > at org.apache.felix.framework.Felix.startBundle(Felix.java:2025) > at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1279) > at > org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:304) > at java.lang.Thread.run(Thread.java:744) > {code} > 2. `org.ow2.asm:asm:4.1` is not embedded because > `org.apache.tika:tika-core:1.5` uses `org.ow2.asm-debug-all:asm:4.1` and > therefore the `Embed-Dependency` directive `asm` does not match any > dependency. > Because of that one do get the following exception (after fixing (1)) > {code} > org.osgi.framework.BundleException: Unresolved constraint in bundle > org.apache.tika.bundle [96]: Unable to resolve 96.0: missing requirement > [96.0] osgi.wiring.package; > (&(osgi.wiring.package=org.objectweb.asm)(version>=4.1.0)(!(version>=5.0.0)))) > org.osgi.framework.BundleException: Unresolved constraint in bundle > org.apache.tika.bundle [96]: Unable to resolve 96.0: missing requirement > [96.0] osgi.wiring.package; > (&(osgi.wiring.package=org.objectweb.asm)(version>=4.1.0)(!(version>=5.0.0))) > at > org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3962) > at org.apache.felix.framework.Felix.startBundle(Felix.java:2025) > at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1279) > at > org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:304) > at java.lang.Thread.run(Thread.java:744) > {code} > There are two possibilities to fix this (a) change the `Embed-Dependency` to > `asm-debug-all` or adding a dependency to `org.ow2.asm:asm:4.1` to the > tika-bundle pom file. > 3. `edu.ucar:netcdf:4.2-min` is not embedded > Because of that one does get the following exception (after fixing (1) and > (2)) > {code} > org.osgi.framework.BundleException: Unresolved constraint in bundle > org.apache.tika.bundle [96]: Unable to resolve 96.0: missing requirement > [96.0] osgi.wiring.package; (osgi.wiring.package=ucar.ma2)) > org.osgi.framework.BundleException: Unresolved constraint in bundle > org.apache.tika.bundle [96]: Unable to resolve 96.0: missing requirement > [96.0] osgi.wiring.package; (osgi.wiring.package=ucar.ma2) > at > org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3962) > at org.apache.felix.framework.Felix.startBundle(Felix.java:2025) > at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1279) > at > org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:304) > at java.lang.Thread.run(Thread.java:744) > {code} > 4. The `com.adobe.xmp:xmpcore:5.1.2` dependency is required at runtime > After fixing the above issues the tika-bundle was started successfully. > However when extracting EXIG metadata from a jpeg image I got the following > exception. > {code} > java.lang.NoClassDefFoundError: com/adobe/xmp/XMPException > at > com.drew.imaging.jpeg.JpegMetadataReader.extractMetadataFromJpegSegmentReader(JpegMetadataReader.java:112) > at > com.drew.imaging.jpeg.JpegMetadataReader.readMetadata(JpegMetadataReader.java:71) > at > org.apache.tika.parser.image.ImageMetadataExtractor.parseJpeg(ImageMetadataExtractor.java:91) > at org.apache.tika.parser.jpeg.JpegParser.parse(JpegParser.java:56) > [..] > {code} > Embedding xmpcore in the tika-bundle solved this issue. > NOTES: > * The Apache Stanbol integration tests only covers PDF, JPEG, DOCX. So there > might be additional issues with other not tested parsers. > * I was updating Tika from version 1.2 to 1.5. This means that all versions > > 1.2 might also be affected by this. > * The following dependencies embedded by the tika-bundle are in fact OSGI > bundles and would not be needed to be embedded: commons-compress, xz, > commons-codec, commons-io -- This message was sent by Atlassian JIRA (v6.2#6252)