MboxIterator not in Apache Mime4J - java

I downloaded the binaries of the latest stable version of apache-mime4j (0.7.2).
Yet, I fail to compile the next code since MboxIterator & CharBufferWrapper classes are not found.
final File mbox = new File("path/name.mbox");
for (CharBufferWrapper message : MboxIterator.fromFile(mbox).charset(ENCODER.charset()).build())
{do something}
The jars included in my build path: apache-mime4j-core-0.7.2.jar, apache-mime4j-dom-0.7.2.jar.
Am I using the wrong jars or version?

I had the same problem but I ended getting it to work by doing a little research.
The classes you mention, at least by what I found, are not included into Mime4J, so you have to code them yourself. Thanks to the devs, they got them uploaded in the following link: MBoxIterator needed classes.
Hope those solve the problem.

You can clone the current snaphshot of the mime4j project from
http://svn.apache.org/repos/asf/james/mime4j/trunk/
to your personal github account
or use my clone:
https://github.com/WolfgangFahl/james-mime4j
and your MBoxIterator is here:
https://github.com/WolfgangFahl/james-mime4j/tree/trunk/mbox/src/main/java/org/apache/james/mime4j/mboxiterator

Related

Missing lib karate-jersey:1.0.0 when including karate-junit5:1.0.0

the new version of the karate suite was released on 15.03.2021. Our renovatebot created a merge request but our pipeline always fails since karate-jersey:1.0.0 can not be found.
Does anyone know where is this lib? I've searched in multiple maven repositories and I found nothing.
Thanks
Paulo
It's gone. Read the release notes please: https://github.com/intuit/karate/wiki/1.0-upgrade-guide

WEKA library M5P returns a Java exception

I am trying to use the WEKA library in Python3, since it is the language I use at work, using the python-weka-wrapper. When trying to run the classifier M5P, I get the next exception:
JavaException: no/uib/cipr/matrix/Matrix
I have seen some posts about downloading some jar files, but I am not sure how does that solve my problem. Any clue?
Thanks
Several jars were added as is in weka.jar instead of getting expanded. Release 0.1.3 fixes that: https://github.com/fracpete/python-weka-wrapper3/releases/tag/v0.1.3

Using jackson-dataformat-xml on android

I'm strugling with using jackson-dataformat-xml on android
I have some very basic code that works fine on oracle jre
JacksonXmlModule module = new JacksonXmlModule();
module.setDefaultUseWrapper(false);
XmlMapper xmlMapper = new XmlMapper(module);
First I tried official documentation adapted for gradle (by me, not sure if done correctly):
compile 'com.fasterxml.jackson.core:jackson-core:2.5.4'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.5.4'
compile 'com.fasterxml.jackson.core:jackson-databind:2.5.4'
compile 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.5.4'
compile 'org.codehaus.woodstox:woodstox-core-asl:4.4.1'
compile 'javax.xml.stream:stax-api:1.0-2'
Result: gradle fails build time about bundling corelibraries into an application
...
:app:preDexDebug
trouble processing "javax/xml/stream/EventFilter.class":
Ill-advised or mistaken usage of a core class (java.* or javax.*)
when not building a core library.
...
2nd attempt trying to follow Sean's answer
(Basicly he repackages corelibs with prefix names and rebuilds jackson-dataformat-xml to use the prefixed names)
compile 'com.fasterxml.jackson.core:jackson-core:2.1.2'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.1.2'
compile 'com.fasterxml.jackson.core:jackson-databind:2.1.2'
// Repackaged XML-specific libraries
compile 'edu.usf.cutr.android.xml:jackson-dataformat-xml-android:2.1.2'
compile 'edu.usf.cutr.android.xml:stax2-api-android:3.1.1'
compile 'edu.usf.cutr.android.xml:stax-api-android:1.0-2'
compile 'edu.usf.cutr.android.xml:aalto-xml-android:0.9.8'
And build time failed on duplicates
Duplicate files copied in APK META-INF/services/com.fasterxml.jackson.core.ObjectCodec
so added:
packagingOptions {
...
exclude 'META-INF/services/com.fasterxml.jackson.core.JsonFactory'
exclude 'META-INF/services/com.fasterxml.jackson.core.ObjectCodec'
}
When adding the exclusions it builds and deploys, but fails runtime on below stackdump (AFAIK it cant find the SAX provider, even tho it is added to the classpath to my understanding)
edu.usf.cutr.javax.xml.stream.FactoryConfigurationError: Provider com.bea.xml.stream.MXParserFactory not found
at edu.usf.cutr.javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:72)
at edu.usf.cutr.javax.xml.stream.FactoryFinder.find(FactoryFinder.java:176)
at edu.usf.cutr.javax.xml.stream.FactoryFinder.find(FactoryFinder.java:92)
at edu.usf.cutr.javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:136)
at com.fasterxml.jackson.dataformat.xml.XmlFactory.<init>(XmlFactory.java:97)
at com.fasterxml.jackson.dataformat.xml.XmlFactory.<init>(XmlFactory.java:85)
at com.fasterxml.jackson.dataformat.xml.XmlFactory.<init>(XmlFactory.java:82)
at com.fasterxml.jackson.dataformat.xml.XmlMapper.<init>(XmlMapper.java:46)
What is the proper way to move forward on either #1 or #2?
Number 2 is the correct approach (Android doesn't like it when you include classes in the official Java package namespace - but then again, I wrote the original answer so I'm biased ;) ).
I believe the FactoryConfigurationError: Provider com.bea.xml.stream.MXParserFactory not found error is due to a bug in the Android build tools. In previous versions of ADT for Eclipse and Gradle plugin < 0.7.0 the /META-INF/* files are stripped from the JARs during the build process. It seems like >= v0.7.0 shouldn't have the problem according to Google, but from others' reports it sounds like it still may be problematic, and could potentially remove the META-INF/services/javax.xml.stream.XMLInputFactory file, which is required for the platform to register Aalto.
Try the workaround mentioned in AOSP issue 59658 comment 22:
right click on /src/main (where you have /java and /res folders),
select New > Folder > Java Resources Folder,
click Finish (do not change Folder Location),
right click on new /resources folder,
select New > Directory
enter "META-INF" (without quotes),
right click on /resources/META-INF folder,
select New > Directory
enter "services" (without quotes)
copy any file you need into /resources/META-INF/services
For you, in step 10 above you'd need to copy this file into /resources/META-INF/services. In case the file link is broken in the future, the name of the file is javax.xml.stream.XMLInputFactory and it consists of a single line:
com.fasterxml.aalto.stax.InputFactoryImpl
EDIT
If you get a "Error:duplicate files during packaging of APK... Path in archive: META-INF/services/javax.xml.stream.XMLInputFactory", you can try telling Gradle to keep the first occurrence with:
android {
packagingOptions {
pickFirst 'META-INF/services/javax.xml.stream.XMLInputFactory'
}
}
EDIT 2
This bug may be affecting "pickFirst". Please make sure you're running the latest version of Android Studio, and update your local tools and Android Gradle plugin to make sure you're running the most recent version of the tools. This may be fixed in Android Studio 1.3 RC1.
I have attempted to add XmlPull support to jackson xml. Find the forked project here:
https://github.com/finvu/jackson-dataformat-xml
Currently, only supported for version 2.9.6. (clone the branch jackson-dataformat-xml-2.9.6-XmlPull)
Sorry, I am not able to provide detailed documentation due to time constraints. If you have knowledge of git and maven to pull a specific branch and build the jar, then it should be relatively easy.
To those who will be in need of this in the future:
first integrate Jitpack in Your Android app, following their instructions:
https://jitpack.io/
Then paste teh GitHub url of jackson-dataformat-xml on Jitpack sites' corresponding text box. GitHub url is:
https://github.com/FasterXML/jackson-dataformat-xml.
That's it! Enjoy the result. :)

NoSuchMethodError after cleaning the project

I'm currently getting this error:
java.lang.NoSuchMethodError: org.json.JSONObject.keySet()Ljava/util/Set;
at ee.ut.cs.Parser.accessLint(Parser.java:39)
I have tried cleaning the project to no awail.
I suspect I have an error in the src/plugin/parse-htmlraw/build.xml while creating the jar file but I'm not certain. I understand that this error is because the function does not exist at runtime, but the object is created which means that the class is there, just not that function. I decompiled the .class file in created jar and it has the necessary functions.
Code is available at https://github.com/jaansusi/WCAGgrader
Q: What is wrong with the build that produces this error?
The problem is that even if I put the necessary class files in the jar I create, they are not linked correctly and the class that's called in the jar can't locate functions inside the other classes. The class object JSONObject is created but the functions inside the JSONObject class can't be found.
If you do not find the problematic version, there is a possibility you get it (especially if you are using Spring) from the following dependency -
<artifactId>android-json</artifactId>
<groupId>com.vaadin.external.google</groupId>
excluding it worked for me,
An easy way of analyzing dependencies is the maven-helper plugin in Intellij, see here
Check for the version you have used.
There might be a case where 2 different versions are being used which in turn causes this error.
To their own maven local repository com\Google\code\gson\gson, see if there are two or more version about json, will have to do is to delete the old, and remember to look at any other place in the project is introduced into the old version of the dependence, if any, change the old version of the dependence to the new version is perfectly solved this problem

Compilation error in netty secure chat example from netty git repository

I copied into my java project all the classes from the following netty example address:
https://github.com/netty/netty/tree/master/example/src/main/java/io/netty/example/securechat
and I added all the jars (without the jars that contain source code) from this file:
http://dl.bintray.com/netty/downloads/netty-4.0.27.Final.tar.bz2
However I have compilation errors in my classes because the SslContextBuilder class cannot be found inside the jars from the above address.
Would you tell me if i skipped a jar which contains the SslContextBuilder class or which is the right context to use the SslContextBuilder class in order to work the examples of code for the secure chat.
Best Regards,
Aurelian
If you want to run examples with 4.0.27.Final you need to ensure you use the examples which are part of the release tag.
So use these:
https://github.com/netty/netty/tree/netty-4.0.27.Final/example/src/main/java/io/netty/example
You are using the examples for 5.0. Please try the examples at the branch 4.0 or 4.1, then it should work fine. More specifically, try:
https://github.com/netty/netty/tree/4.0/example/src/main/java/io/netty/example/securechat
It is fixed in 4.0.28.Final, I can find it in netty-handler-4.0.28.Final.jar.

Categories

Resources