summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2013-10-30Re-implement DNS lookup to use dnsjava rather than JNDINick Hudson
There are limitations when using JNDI for DNS lookups, including that it does not properly handle the situation when resolv.conf contains IPv6 addresses (Isode bug #44832) - see e.g. http://java.net/jira/browse/JITSI-295 JNDI is also not readily available on Android, which makes it slightly more awkward to use Stroke on that platform. This patch changes the PlatformDomainName classes so that they use classes from dnsjava rather than JNDI. The patch also updates the build scripts so that dnsjava.jar is fetched (if necessary) and included in the build. Indentation in build.xml has been tidied up Test-information: Ran unit tests - ok Ran MLC - works OK and no longer throws NumberFormatExceptions when resolve.conf contains "nameserver 2001:470:f052::2" Change-Id: Iacf1105c52c281f9e59b60ea6caa011914b588dc
2013-10-29Enable building of jar file without examplesNick Hudson
The example code includes references to Swing, which isn't available for all environments (e.g. Android) and so this change provides an alternate build target to allow stroke.jar to be built without processing the example code. The original "dist" target was incorrect in the way it was creating the jar file, because it was creating a standalone MANIFEST.MF file (which didn't get used for the jar file at all). So that has been corrected (for the dist-with-examples target). So if now do % ant -Dnoexamples=1 Tnen no examples will be built. If you do % ant then the jar file will include examples (as before) and will also have a manifest that specifies "Main-class" properly. Note that this change has already been made to the isode repository and will not need applying there. Test-information: Tested building with/without examples. The jar file appears correct in each case. Prior to this patch, saying "java -jar stroke.jar" did not work, because the manifest wasn't being used properly. After this patch, it does (for the jar file that includes examples). Change-Id: I68eadc4355cb655dd31e6afec48405a6fe2c057e Signed-off-by: Nick Hudson <nick.hudson@isode.com>
2013-10-25Update Stroke's build to use "target=1.6" and "source=1.6" when compilingNick Hudson
This is a change that was made in the isode repository some months ago (as part of some other isode-specific changes) which did not get propagated into the swift repository. If you're on a system with Java7, then by default when you build Stroke you'll get classfiles that only for for Java7 and later (you can't run them under Java6 for example). This causes problems in two specific cases: 1) some unit tests fail with java.lang.VerifyError 2) stroke's jar file will not be compatible with Android The unit tests which fail show errors like this: <error message="Instruction type does not match stack map in method com.isode.stroke.base.ByteArrayTest.byteify([I)[B at offset 31" type="java.lang.VerifyError">java.lang.VerifyError: Instruction type does not match stack map in method com.isode.stroke.base.ByteArrayTest.byteify([I)[B at offset 31 at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:186) </error> this appears to be due to a limitation of Cobertura 1.9, and is supposedly fixed with Cobertura 2.0.3 https://github.com/stevesaliman/gradle-cobertura-plugin/issues/2 However, when I tried using the updated version of cobertura there appear to be other issues, so I think that needs looking at separately. The other problem with 1.7 is that Android doesn't yet support 1.7 format class files, and so you need to build with -target=1.6 if you want to be able to use the resultant stroke.jar on Android. So for these reasons, and because Stroke has no need of any 1.7 features, it seems pragmatic to change the "source" and "target" parameters of the build files to use 1.6. I'll look at the cobertura thing separately. Test-information: Checked out stroke, added this change, did a build/test to make sure things worked ok. Unit tests work ok (before this change, they fail with java.lang.* errors) Change-Id: I8ad3b8e341eebef13ae647d6e66706e4265432ca
2012-10-18Use more PMD rulesKevin Smith
Change-Id: I373469fa7a7ba8d5c639d4a1f2d4e07182eeb953
2012-10-18Include PMD checkingKevin Smith
Change-Id: Ib4717891c591911e68a5b27b7af4e666b6296d48
2012-10-18Add findbugs and cobertura XML results.Kevin Smith
Change-Id: Ic7adcf9790429c23b9493ec22324198bfc474b6f
2012-10-17Allow cobertura coverage generationKevin Smith
Change-Id: I0e333781b140a97788e35d401e054a413af0ab76
2012-10-17Make test results XML for JenkinsKevin Smith
Change-Id: Ia1460c62f0bce645248b2412a60a6ad7420ae849
2012-05-21Use the Aalto XML parser instead of XPPKevin Smith
Also adds a 'make test' target for the Makefile. Set the JUNIT environment variable to point to your jar if it doesn't find it.
2012-03-19Fiddle with pathsKevin Smith
2012-03-16Always use utf-8Kevin Smith
2012-03-07Stringprep JIDs through icu4jKevin Smith
2012-03-07Using JZlib for compression, as features we need aren't in Java until 1.7Kevin Smith
2011-12-16Add "javadoc" target to stroke build.xml fileNick Hudson
This change adds a javadoc target to the build file for stroke, so that you can do % cd build/stroke % ant javadoc I have not updated any of the other build infrastructure (Makefile etc.). Nor have I added any intelligence to the "javadoc" task so that it won't bother creating documentation if the doc is already up to date etc.. Note that I've not used the "linkoffline" directive, which means that if you try to generate doc when the Oracle web pages are offline, things may hang until the connection times out. Test-information: "ant javadoc" works as expected "isodebuild clean -component=stroke" gets rid of any javadoc
2011-07-01Update the ByteArray to not copy excessively on appends.Kevin Smith
Also updates build.xml so the path to the xpp library can be specified, rather than needing the same layout as my build tree.
2011-07-01Initial importKevin Smith