On 31 December 2014 at 13:02, sebb <seb...@gmail.com> wrote: > On 31 December 2014 at 04:42, Adrian Crum > <adrian.c...@sandglass-software.com> wrote: >> Be aware that the file contains encoded Chinese TLDs (XN--*). So, it needs >> additional parsing. > > Oops. > > These entries use PunyCode. This is available in Java 6 onwards (java.net.IDN) > > There are other possible implementations but that is out of scope for > the 1.4.1 release. > > I'll exclude these entries for now.
Just realised that the code that downloads and checks the IANA entries is not done as a unit test. It is intended to be run by a Commons developer only. So it can be run using a later version of Java, as long as the code compiles. I hope to update the code soon. >> Adrian Crum >> Sandglass Software >> www.sandglass-software.com >> >> On 12/30/2014 5:23 PM, s...@apache.org wrote: >>> >>> Author: sebb >>> Date: Wed Dec 31 01:23:26 2014 >>> New Revision: 1648642 >>> >>> URL: http://svn.apache.org/r1648642 >>> Log: >>> Add code for developers to check inbuilt list against iana tld >>> >>> Modified: >>> >>> commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/DomainValidatorTest.java >>> >>> Modified: >>> commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/DomainValidatorTest.java >>> URL: >>> http://svn.apache.org/viewvc/commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/DomainValidatorTest.java?rev=1648642&r1=1648641&r2=1648642&view=diff >>> >>> ============================================================================== >>> --- >>> commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/DomainValidatorTest.java >>> (original) >>> +++ >>> commons/proper/validator/trunk/src/test/java/org/apache/commons/validator/routines/DomainValidatorTest.java >>> Wed Dec 31 01:23:26 2014 >>> @@ -16,6 +16,15 @@ >>> */ >>> package org.apache.commons.validator.routines; >>> >>> +import java.io.BufferedReader; >>> +import java.io.File; >>> +import java.io.FileOutputStream; >>> +import java.io.FileReader; >>> +import java.io.InputStream; >>> +import java.net.HttpURLConnection; >>> +import java.net.URL; >>> +import java.util.Locale; >>> + >>> import junit.framework.TestCase; >>> >>> /** >>> @@ -110,4 +119,37 @@ public class DomainValidatorTest extends >>> public void testIDN() { >>> assertTrue("b\u00fccher.ch in IDN should validate", >>> validator.isValid("www.xn--bcher-kva.ch")); >>> } >>> + >>> + // Download and process local copy of >>> http://data.iana.org/TLD/tlds-alpha-by-domain.txt >>> + // Check if the internal TLD table is up to date >>> + public static void main(String a[]) throws Exception { >>> + DomainValidator dv = DomainValidator.getInstance();; >>> + File f = new File("target/tlds-alpha-by-domain.txt"); >>> + if (!f.canRead()) { >>> + String >>> tldurl="http://data.iana.org/TLD/tlds-alpha-by-domain.txt"; >>> + System.out.println("Downloading " + tldurl); >>> + byte buff[] = new byte[1024]; >>> + HttpURLConnection hc = (HttpURLConnection) new >>> URL(tldurl).openConnection(); >>> + InputStream is = hc.getInputStream(); >>> + FileOutputStream fos = new FileOutputStream(f); >>> + while(is.read(buff) != -1) { >>> + fos.write(buff); >>> + } >>> + fos.close(); >>> + is.close(); >>> + System.out.println("Done"); >>> + } >>> + BufferedReader br = new BufferedReader(new FileReader(f)); >>> + System.out.println("Entries missing from TLD List"); >>> + String line; >>> + while((line = br.readLine()) != null) { >>> + if (!line.startsWith("#")) { >>> + if (!dv.isValidTld(line)) { >>> + System.out.println(line.toLowerCase(Locale.ENGLISH)); >>> + } >>> + } >>> + } >>> + br.close(); >>> + System.out.println("Done"); >>> + } >>> } >>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >> For additional commands, e-mail: dev-h...@commons.apache.org >> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org