summaryrefslogtreecommitdiffstats
path: root/src/junit/com/jogamp/common/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/junit/com/jogamp/common/util')
-rw-r--r--src/junit/com/jogamp/common/util/TestIOUtilURICompose.java92
-rw-r--r--src/junit/com/jogamp/common/util/TestIOUtilURIHandling.java393
-rw-r--r--src/junit/com/jogamp/common/util/TestJarUtil.java40
-rw-r--r--src/junit/com/jogamp/common/util/TestTempJarCache.java31
-rw-r--r--src/junit/com/jogamp/common/util/TestVersionSemantics.java4
5 files changed, 49 insertions, 511 deletions
diff --git a/src/junit/com/jogamp/common/util/TestIOUtilURICompose.java b/src/junit/com/jogamp/common/util/TestIOUtilURICompose.java
deleted file mode 100644
index 3369afd..0000000
--- a/src/junit/com/jogamp/common/util/TestIOUtilURICompose.java
+++ /dev/null
@@ -1,92 +0,0 @@
-package com.jogamp.common.util;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import com.jogamp.common.util.IOUtil;
-import com.jogamp.junit.util.JunitTracer;
-
-import org.junit.FixMethodOrder;
-import org.junit.runners.MethodSorters;
-
-@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-public class TestIOUtilURICompose extends JunitTracer {
-
- @Test
- public void test01URLCompositioning() throws IOException, URISyntaxException {
- testURNCompositioning("file:///rootDir/file1.txt");
- testURNCompositioning("file://host/rootDir/file1.txt");
- testURNCompositioning("jar:file:/web1/file1.jar!/rootDir/file1.txt");
- testURNCompositioning("asset:gluegen-test/info.txt");
- testURNCompositioning("asset:/gluegen-test/info.txt");
- testURNCompositioning("http://domain.com/web1/index.html?lala=23&lili=24#anchor");
- testURNCompositioning("http://domain.com:1234/web1/index.html?lala=23&lili=24#anchor");
-
- final URI file1URI = new URI("asset:jar:file:/web1/file1.jar!/rootDir/file1.txt");
- testURICompositioning(file1URI);
- testURICompositioning(file1URI, new URI("asset:jar:file:/web1/file1.jar!/rootDir/./file1.txt"));
- testURICompositioning(file1URI, new URI("asset:jar:file:/web1/file1.jar!/rootDir/dummyParent/../file1.txt"));
-
- final URL file1URL = new URL("asset:jar:file:/web1/file1.jar!/rootDir/file1.txt");
- testURLCompositioning(file1URL);
- testURLCompositioning(file1URL, new URL("asset:jar:file:/web1/file1.jar!/rootDir/./file1.txt"));
- testURLCompositioning(file1URL, new URL("asset:jar:file:/web1/file1.jar!/rootDir/dummyParent/../file1.txt"));
- }
-
- static void testURNCompositioning(final String urn) throws MalformedURLException, URISyntaxException {
- testURICompositioning( new URI(urn) );
- testURLCompositioning( new URL(urn) );
- }
-
- static void testURICompositioning(final URI uri) throws MalformedURLException, URISyntaxException {
- testURICompositioning(uri, uri);
- }
- static void testURICompositioning(final URI refURI, final URI uri1) throws MalformedURLException, URISyntaxException {
- final String scheme = uri1.getScheme();
- final String ssp = uri1.getRawSchemeSpecificPart();
- final String fragment = uri1.getRawFragment();
-
- System.err.println("scheme <"+scheme+">, ssp <"+ssp+">, fragment <"+fragment+">");
- final URI uri2 = IOUtil.compose(scheme, ssp, null, fragment);
-
- System.err.println("URL-equals: "+refURI.equals(uri2));
- System.err.println("URL-ref : <"+refURI+">");
- System.err.println("URL-orig : <"+uri1+">");
- System.err.println("URL-comp : <"+uri2+">");
- Assert.assertEquals(refURI, uri2);
- }
-
- static void testURLCompositioning(final URL url) throws MalformedURLException, URISyntaxException {
- testURLCompositioning(url, url);
- }
- static void testURLCompositioning(final URL refURL, final URL url1) throws MalformedURLException, URISyntaxException {
- final URI uri1 = url1.toURI();
- final String scheme = uri1.getScheme();
- final String ssp = uri1.getRawSchemeSpecificPart();
- final String fragment = uri1.getRawFragment();
-
- System.err.println("scheme <"+scheme+">, ssp <"+ssp+">, fragment <"+fragment+">");
- final URI uri2 = IOUtil.compose(scheme, ssp, null, fragment);
-
- System.err.println("URL-equals(1): "+refURL.toURI().equals(uri2));
- System.err.println("URL-equals(2): "+refURL.equals(uri2.toURL()));
- System.err.println("URL-same : "+refURL.sameFile(uri2.toURL()));
- System.err.println("URL-ref : <"+refURL+">");
- System.err.println("URL-orig : <"+url1+">");
- System.err.println("URL-comp : <"+uri2+">");
- Assert.assertEquals(refURL.toURI(), uri2);
- Assert.assertEquals(refURL, uri2.toURL());
- Assert.assertTrue(refURL.sameFile(uri2.toURL()));
- }
-
- public static void main(final String args[]) throws IOException {
- final String tstname = TestIOUtilURICompose.class.getName();
- org.junit.runner.JUnitCore.main(tstname);
- }
-}
diff --git a/src/junit/com/jogamp/common/util/TestIOUtilURIHandling.java b/src/junit/com/jogamp/common/util/TestIOUtilURIHandling.java
deleted file mode 100644
index 66dbacf..0000000
--- a/src/junit/com/jogamp/common/util/TestIOUtilURIHandling.java
+++ /dev/null
@@ -1,393 +0,0 @@
-package com.jogamp.common.util;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.net.URLConnection;
-
-import jogamp.common.os.PlatformPropsImpl;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import com.jogamp.common.net.URIDumpUtil;
-import com.jogamp.common.os.Platform;
-import com.jogamp.common.util.IOUtil;
-import com.jogamp.junit.util.JunitTracer;
-
-import org.junit.FixMethodOrder;
-import org.junit.runners.MethodSorters;
-
-@FixMethodOrder(MethodSorters.NAME_ASCENDING)
-public class TestIOUtilURIHandling extends JunitTracer {
-
- // Bug 908, issues w/ windows file path char: $ ^ ~ # [ ]
-
- public static final String[][] uriHttpSArray = new String[][] {
- new String[] {"http://localhost/gluegen/build-x86_64/gluegen-rt.jar"},
-
- new String[] {"http://localhost/gluegen/"+'\u0394'+"/gluegen-rt.jar"},
-
- new String[] {"http://localhost/gluegen/build-x86_64%20lala/gluegen-rt.jar"},
-
- new String[] {"http://localhost/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar"},
-
- new String[] {"jar:http://localhost/gluegen/build-x86_64/gluegen-rt.jar!/"},
-
- new String[] {"jar:http://localhost/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/"},
-
- new String[] {"jar:http://localhost/gluegen/build-x86_64/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"},
-
- new String[] {"jar:http://localhost/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"},
-
- new String[] {"jar:http://localhost/gluegen/R%23/gluegen-rt.jar!/"},
-
- new String[] {"jar:http://localhost/gluegen/"+'\u0394'+"/gluegen-rt.jar!/"},
- };
-
- public static final String[][] uriFileSArrayUnix = new String[][] {
- new String[] {"file:/gluegen/build-x86_64/gluegen-rt.jar"},
-
- new String[] {"file:/gluegen/"+'\u0394'+"/gluegen-rt.jar"},
-
- new String[] {"file:/gluegen/build-x86_64%20lala/gluegen-rt.jar"},
-
- new String[] {"file:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar"},
-
- new String[] {"jar:file:/gluegen/build-x86_64/gluegen-rt.jar!/"},
-
- new String[] {"jar:file:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/"},
-
- new String[] {"jar:file:/gluegen/build-x86_64/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"},
-
- new String[] {"jar:file:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"},
-
- new String[] {"jar:file://filehost/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"},
-
- new String[] {"jar:file:/gluegen/R%23/gluegen-rt.jar!/"},
-
- new String[] {"jar:file:/gluegen/"+'\u0394'+"/gluegen-rt.jar!/"},
- };
-
- public static final String[][] uriFileSArrayWindows = new String[][] {
- new String[] {"file:/C:/gluegen/build-x86_64/gluegen-rt.jar"},
- new String[] {"file:/C%3A/gluegen/build-x86_64/gluegen-rt.jar"},
-
- new String[] {"file:/C:/gluegen/"+'\u0394'+"/gluegen-rt.jar"},
-
- new String[] {"file:/C:/gluegen/build-x86_64%20lala/gluegen-rt.jar"},
-
- new String[] {"file:/C:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar"},
-
- new String[] {"jar:file:/C:/gluegen/build-x86_64/gluegen-rt.jar!/"},
-
- new String[] {"jar:file:/C:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/"},
-
- new String[] {"jar:file:/C:/gluegen/build-x86_64/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"},
-
- new String[] {"jar:file:/C:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"},
- new String[] {"jar:file:/C%3A/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"},
-
- new String[] {"jar:file:///C:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"},
-
- new String[] {"jar:file://filehost/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar!/com/jogamp/common/os/Platform.class"},
-
- new String[] {"jar:file:/C:/gluegen/R%23/gluegen-rt.jar!/"},
-
- new String[] {"jar:file:/C:/gluegen/"+'\u0394'+"/gluegen-rt.jar!/"},
- };
-
- public static final String[][] fileSArrayUnix = new String[][] {
- new String[] {"/gluegen/build-x86_64/gluegen-rt.jar",
- "file:/gluegen/build-x86_64/gluegen-rt.jar",
- "/gluegen/build-x86_64/gluegen-rt.jar"},
-
- new String[] {"/gluegen/"+'\u0394'+"/gluegen-rt.jar",
- "file:/gluegen/"+'\u0394'+"/gluegen-rt.jar",
- "/gluegen/"+'\u0394'+"/gluegen-rt.jar"},
-
- new String[] {"/gluegen/build-x86_64 lala/gluegen-rt.jar",
- "file:/gluegen/build-x86_64%20lala/gluegen-rt.jar",
- "/gluegen/build-x86_64 lala/gluegen-rt.jar"},
-
- new String[] {"/gluegen/build-x86_64 öä lala/gluegen-rt.jar",
- "file:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar",
- "/gluegen/build-x86_64 öä lala/gluegen-rt.jar"},
-
- new String[] {"/gluegen/A$/B^/C~/D#/E[/F]/gluegen-rt.jar",
- // "file:/gluegen/A%24/B%5E/C%7E/D%23/E%5B/F%5D/gluegen-rt.jar", // goal w/ new Uri class
- "file:/gluegen/A$/B%5E/C~/D%23/E%5B/F%5D/gluegen-rt.jar", // current Java URI/URL decoding
- "/gluegen/A$/B^/C~/D#/E[/F]/gluegen-rt.jar" }, // goal w/ new Uri class
-
- new String[] {"/gluegen/$/^/~/#/[/]/gluegen-rt.jar",
- // "file:/gluegen/%24/%5E/%7E/%23/%5B/%5D/gluegen-rt.jar",
- "file:/gluegen/$/%5E/~/%23/%5B/%5D/gluegen-rt.jar", // current Java URI/URL decoding
- "/gluegen/$/^/~/#/[/]/gluegen-rt.jar" },
- };
-
- public static final String[][] fileSArrayWindows = new String[][] {
- new String[] {"C:/gluegen/build-x86_64/gluegen-rt.jar",
- // "file:/C%3A/gluegen/build-x86_64/gluegen-rt.jar",
- "file:/C:/gluegen/build-x86_64/gluegen-rt.jar",
- "C:\\gluegen\\build-x86_64\\gluegen-rt.jar"},
-
- new String[] {"C:/gluegen/"+'\u0394'+"/gluegen-rt.jar",
- // "file:/C%3A/gluegen/"+'\u0394'+"/gluegen-rt.jar",
- "file:/C:/gluegen/"+'\u0394'+"/gluegen-rt.jar",
- "C:\\gluegen\\"+'\u0394'+"\\gluegen-rt.jar"},
-
- new String[] {"C:/gluegen/build-x86_64 lala/gluegen-rt.jar",
- // "file:/C%3A/gluegen/build-x86_64%20lala/gluegen-rt.jar",
- "file:/C:/gluegen/build-x86_64%20lala/gluegen-rt.jar",
- "C:\\gluegen\\build-x86_64 lala\\gluegen-rt.jar"},
-
- new String[] {"C:/gluegen/build-x86_64 öä lala/gluegen-rt.jar",
- // "file:/C%3A/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar",
- "file:/C:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar",
- "C:\\gluegen\\build-x86_64 öä lala\\gluegen-rt.jar"},
-
- new String[] {"C:\\gluegen\\build-x86_64 öä lala\\gluegen-rt.jar",
- // "file:/C%3A/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar",
- "file:/C:/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar",
- "C:\\gluegen\\build-x86_64 öä lala\\gluegen-rt.jar"},
-
- new String[] {"\\\\filehost\\gluegen\\build-x86_64 öä lala\\gluegen-rt.jar",
- "file:////filehost/gluegen/build-x86_64%20öä%20lala/gluegen-rt.jar",
- "\\\\filehost\\gluegen\\build-x86_64 öä lala\\gluegen-rt.jar"},
-
- new String[] {"C:/gluegen/A$/B^/C~/D#/E[/F]/gluegen-rt.jar",
- // "file:/C%3A/gluegen/A%24/B%5E/C%7E/D%23/E%5B/F%5D/gluegen-rt.jar",
- "file:/C:/gluegen/A$/B%5E/C~/D%23/E%5B/F%5D/gluegen-rt.jar",
- "C:\\gluegen\\A$\\B^\\C~\\D#\\E[\\F]\\gluegen-rt.jar" },
-
- new String[] {"C:/gluegen/$/^/~/#/[/]/gluegen-rt.jar",
- // "file:/C%3A/gluegen/%24/%5E/%7E/%23/%5B/%5D/gluegen-rt.jar",
- "file:/C:/gluegen/$/%5E/~/%23/%5B/%5D/gluegen-rt.jar", // current Java URI/URL decoding
- "C:\\gluegen\\$\\^\\~\\#\\[\\]\\gluegen-rt.jar" },
- };
-
- @Test
- public void test00BasicCoding() throws IOException, URISyntaxException {
- final String string = "Hallo Welt öä";
- System.err.println("sp1 "+string);
- final File file = new File(string);
- System.err.println("file "+file);
- System.err.println("file.path.dec "+file.getPath());
- System.err.println("file.path.abs "+file.getAbsolutePath());
- System.err.println("file.path.can "+file.getCanonicalPath());
- final URI uri0 = file.toURI();
- System.err.println("uri0.string: "+uri0.toString());
- System.err.println("uri0.path : "+uri0.getPath());
- System.err.println("uri0.ascii : "+uri0.toASCIIString());
- boolean ok = true;
- {
- final URI uri1 = IOUtil.toURISimple(file);
- final boolean equalString= uri0.toString().equals(uri1.toString());
- final boolean equalPath = uri0.getPath().equals(uri1.getPath());
- final boolean equalASCII= uri0.toASCIIString().equals(uri1.toASCIIString());
- System.err.println("uri1.string: "+uri1.toString()+" - "+(equalString?"OK":"ERROR"));
- System.err.println("uri1.path : "+uri1.getPath()+" - "+(equalPath?"OK":"ERROR"));
- System.err.println("uri1.ascii : "+uri1.toASCIIString()+" - "+(equalASCII?"OK":"ERROR"));
- ok = equalString && equalPath && equalASCII && ok;
- }
- {
- final String s2 = IOUtil.slashify(file.getAbsolutePath(), true /* startWithSlash */, file.isDirectory() /* endWithSlash */);
- System.err.println("uri2.slashify: "+s2);
- {
- // Expected !equals due to double-escaping of space %20 -> %25%20
- // Double escaping is due to IOUtil.encodeToURI(s2).
- @SuppressWarnings("deprecation")
- final String s3 = IOUtil.encodeToURI(s2);
- System.err.println("uri2.encoded: "+s3);
- final URI uri1 = new URI(IOUtil.FILE_SCHEME, null, s3, null);
- final boolean equalString= uri0.toString().equals(uri1.toString());
- final boolean equalPath = uri0.getPath().equals(uri1.getPath());
- final boolean equalASCII= uri0.toASCIIString().equals(uri1.toASCIIString());
- System.err.println("uri2.string: "+uri1.toString()+" - "+(equalString?"ERROR EQUAL":"OK NOT_EQUAL"));
- System.err.println("uri2.path : "+uri1.getPath()+" - "+(equalPath?"ERROR EQUAL":"OK NOT_EQUAL"));
- System.err.println("uri2.ascii : "+uri1.toASCIIString()+" - "+(equalASCII?"ERROR EQUAL":"OK NOT_EQUAL"));
- ok = !equalString && !equalPath && !equalASCII && ok;
- }
- final URI uri1 = new URI(IOUtil.FILE_SCHEME, null, s2, null);
- final boolean equalString= uri0.toString().equals(uri1.toString());
- final boolean equalPath = uri0.getPath().equals(uri1.getPath());
- final boolean equalASCII= uri0.toASCIIString().equals(uri1.toASCIIString());
- System.err.println("uri2.string: "+uri1.toString()+" - "+(equalString?"OK":"ERROR"));
- System.err.println("uri2.path : "+uri1.getPath()+" - "+(equalPath?"OK":"ERROR"));
- System.err.println("uri2.ascii : "+uri1.toASCIIString()+" - "+(equalASCII?"OK":"ERROR"));
- ok = equalString && equalPath && equalASCII && ok;
- }
- {
- final String s2 = "/"+string;
- System.err.println("uri3.orig: "+s2);
- final URI uri1 = new URI(IOUtil.FILE_SCHEME, s2, null);
- final String rString = "file:/Hallo%20Welt%20öä";
- final String rPath = s2;
- final String rASCII = "file:/Hallo%20Welt%20%C3%B6%C3%A4";
- final boolean equalString= rString.equals(uri1.toString());
- final boolean equalPath = rPath.equals(uri1.getPath());
- final boolean equalASCII= rASCII.equals(uri1.toASCIIString());
- System.err.println("uri3.string: "+uri1.toString()+" - "+(equalString?"OK":"ERROR"));
- System.err.println("uri3.path : "+uri1.getPath()+" - "+(equalPath?"OK":"ERROR"));
- System.err.println("uri3.ascii : "+uri1.toASCIIString()+" - "+(equalASCII?"OK":"ERROR"));
- ok = equalString && equalPath && equalASCII && ok;
- }
- {
- final String s2 = "//lala.org/"+string;
- System.err.println("uri4.orig: "+s2);
- final URI uri1 = new URI(IOUtil.HTTP_SCHEME, s2, null);
- final String rString = "http://lala.org/Hallo%20Welt%20öä";
- final String rPath = "/"+string;
- final String rASCII = "http://lala.org/Hallo%20Welt%20%C3%B6%C3%A4";
- final boolean equalString= rString.equals(uri1.toString());
- final boolean equalPath = rPath.equals(uri1.getPath());
- final boolean equalASCII= rASCII.equals(uri1.toASCIIString());
- System.err.println("uri4.string: "+uri1.toString()+" - "+(equalString?"OK":"ERROR"));
- System.err.println("uri4.path : "+uri1.getPath()+" - "+(equalPath?"OK":"ERROR"));
- System.err.println("uri4.ascii : "+uri1.toASCIIString()+" - "+(equalASCII?"OK":"ERROR"));
- ok = equalString && equalPath && equalASCII && ok;
- }
- Assert.assertTrue("One or more errors occured see stderr above", ok);
- }
-
- @Test
- public void test01HttpURI2URL() throws IOException, URISyntaxException {
- testURI2URL(getSimpleTestName("."), uriHttpSArray);
- }
-
- @Test
- public void test02FileUnixURI2URL() throws IOException, URISyntaxException {
- testURI2URL(getSimpleTestName("."), uriFileSArrayUnix);
- }
-
- @Test
- public void test03FileWindowsURI2URL() throws IOException, URISyntaxException {
- testURI2URL(getSimpleTestName("."), uriFileSArrayWindows);
- }
-
- @Test
- public void test04FileUnixURI2URL() throws IOException, URISyntaxException {
- if( Platform.OSType.WINDOWS != PlatformPropsImpl.OS_TYPE ) {
- testFile2URI(getSimpleTestName("."), fileSArrayUnix);
- }
- }
-
- @Test
- public void test05FileWindowsURI2URL() throws IOException, URISyntaxException {
- if( Platform.OSType.WINDOWS == PlatformPropsImpl.OS_TYPE ) {
- testFile2URI(getSimpleTestName("."), fileSArrayWindows);
- }
- }
-
- static void testURI2URL(final String testname, final String[][] uriSArray) throws IOException, URISyntaxException {
- boolean ok = true;
- for(int i=0; i<uriSArray.length; i++) {
- final String[] uriSPair = uriSArray[i];
- final String uriSource = uriSPair[0];
- System.err.println("SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS "+testname+": "+(i+1)+"/"+uriSArray.length);
- ok = testURI2URL(uriSource) && ok;
- System.err.println("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE "+testname+": "+(i+1)+"/"+uriSArray.length);
- }
- Assert.assertTrue("One or more errors occured see stderr above", ok);
- }
-
- static boolean testURI2URL(final String uriSource) throws IOException, URISyntaxException {
- final URI uri0 = new URI(uriSource);
- URIDumpUtil.showURI(uri0);
-
- final String expected1 = uriSource.toString();
- final String expected2 = expected1.replaceFirst("///", "/");
- System.err.println("expected__s0: "+uriSource);
- System.err.println("expected__d1: "+expected1);
- System.err.println("expected__d2: "+expected2);
-
- final URL actualURL = uri0.toURL();
- final String actualURLStr = actualURL.toString();
- final boolean equalsURLSrc = uriSource.equals(actualURLStr);
- final boolean equalsURLDec1 = expected1.equals(actualURLStr);
- final boolean equalsURLDec2 = expected2.equals(actualURLStr);
- final boolean equalsURL = equalsURLSrc || equalsURLDec1 || equalsURLDec2;
- System.err.println("actual : "+actualURLStr+" - "+(equalsURL?"OK":"ERROR")+
- " - equalSrc "+equalsURLSrc+", equalDec1 "+equalsURLDec1+", equalDec2 "+equalsURLDec2);
-
- final boolean ok = equalsURL;
-
- // now test open ..
- Throwable t = null;
- URLConnection con = null;
- try {
- con = actualURL.openConnection();
- } catch (final Throwable _t) {
- t = _t;
- }
- if( null != t ) {
- System.err.println("XXX: "+t.getClass().getName()+": "+t.getMessage());
- t.printStackTrace();
- } else {
- System.err.println("XXX: No openConnection() failure");
- System.err.println("XXX: "+con);
- }
- return ok;
- }
-
- static void testFile2URI(final String testname, final String[][] uriSArray) throws IOException, URISyntaxException {
- boolean ok = true;
- for(int i=0; i<uriSArray.length; i++) {
- final String[] uriSPair = uriSArray[i];
- final String uriSource = uriSPair[0];
- final String uriEncExpected= uriSPair[1];
- final String fileExpected= uriSPair[2];
- System.err.println("SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS "+testname+": "+(i+1)+"/"+uriSArray.length);
- ok = testFile2URI(uriSource, uriEncExpected, fileExpected) && ok;
- System.err.println("EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE "+testname+": "+(i+1)+"/"+uriSArray.length);
- }
- Assert.assertTrue("One or more errors occured see stderr above", ok);
- }
-
- static boolean testFile2URI(final String fileSource, final String uriEncExpected, final String fileExpected) throws IOException, URISyntaxException {
- System.err.println("fileSource: "+fileSource);
- final File file = new File(fileSource);
- System.err.println("file: "+file.getAbsolutePath());
-
- final URI uri0 = IOUtil.toURISimple(file);
- final URI uri1 = file.toURI();
- URIDumpUtil.showURI(uri0);
- URIDumpUtil.showURI(uri1);
-
- final URL actualUrl = uri1.toURL();
- final String actualFileS = IOUtil.decodeURIIfFilePath(uri1);
- final boolean equalsFilePath = fileExpected.equals(actualFileS);
- System.err.println("expected_path: "+fileExpected);
- System.err.println("actual___file-path: "+actualFileS+" - "+(equalsFilePath?"OK":"ERROR"));
- final boolean equalsEncUri = uriEncExpected.equals(uri1.toString());
- System.err.println("expected__encUri: "+uriEncExpected);
- System.err.println("actual_______Uri: "+uri1.toString()+" - "+(equalsEncUri?"OK":"ERROR"));
- final boolean ok = equalsEncUri && equalsFilePath;
-
- System.err.println("actual_______URL: "+actualUrl.toExternalForm());
-
- // now test open ..
- Throwable t = null;
- URLConnection con = null;
- try {
- con = actualUrl.openConnection();
- } catch (final Throwable _t) {
- t = _t;
- }
- if( null != t ) {
- System.err.println("XXX: "+t.getClass().getName()+": "+t.getMessage());
- t.printStackTrace();
- } else {
- System.err.println("XXX: No openConnection() failure");
- System.err.println("XXX: "+con);
- }
- return ok;
- }
-
- public static void main(final String args[]) throws IOException {
- final String tstname = TestIOUtilURIHandling.class.getName();
- org.junit.runner.JUnitCore.main(tstname);
- }
-}
diff --git a/src/junit/com/jogamp/common/util/TestJarUtil.java b/src/junit/com/jogamp/common/util/TestJarUtil.java
index db5c268..06a2e43 100644
--- a/src/junit/com/jogamp/common/util/TestJarUtil.java
+++ b/src/junit/com/jogamp/common/util/TestJarUtil.java
@@ -30,7 +30,6 @@ package com.jogamp.common.util;
import java.io.IOException;
import java.net.MalformedURLException;
-import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLClassLoader;
@@ -46,6 +45,8 @@ import org.junit.BeforeClass;
import org.junit.Test;
import com.jogamp.common.GlueGenVersion;
+import com.jogamp.common.net.URIDumpUtil;
+import com.jogamp.common.net.Uri;
import com.jogamp.common.os.AndroidVersion;
import com.jogamp.common.util.cache.TempCacheReg;
import com.jogamp.common.util.cache.TempFileCache;
@@ -97,7 +98,7 @@ public class TestJarUtil extends JunitTracer {
}
}
- void validateJarFileURL(final URI jarFileURI) throws IllegalArgumentException, IOException, URISyntaxException {
+ void validateJarFileURL(final Uri jarFileURI) throws IllegalArgumentException, IOException, URISyntaxException {
Assert.assertNotNull(jarFileURI);
final URL jarFileURL = jarFileURI.toURL();
final URLConnection aURLc = jarFileURL.openConnection();
@@ -110,18 +111,27 @@ public class TestJarUtil extends JunitTracer {
}
void validateJarUtil(final String expJarName, final String clazzBinName, final ClassLoader cl) throws IllegalArgumentException, IOException, URISyntaxException {
- final String jarName= JarUtil.getJarBasename(clazzBinName, cl);
+ final Uri.Encoded expJarNameE = Uri.Encoded.cast(expJarName);
+ final Uri.Encoded jarName= JarUtil.getJarBasename(clazzBinName, cl);
Assert.assertNotNull(jarName);
- Assert.assertEquals(expJarName, jarName);
+ Assert.assertEquals(expJarNameE, jarName);
- final URI jarSubURI = JarUtil.getJarSubURI(clazzBinName, cl);
- Assert.assertNotNull(jarSubURI);
- final URL jarSubURL= jarSubURI.toURL();
+ final Uri jarUri = JarUtil.getJarUri(clazzBinName, cl);
+ Assert.assertNotNull(jarUri);
+ System.err.println("1 - jarUri:");
+ URIDumpUtil.showUri(jarUri);
+
+ final Uri jarSubUri = jarUri.getContainedUri();
+ Assert.assertNotNull(jarSubUri);
+ System.err.println("2 - jarSubUri:");
+ URIDumpUtil.showUri(jarSubUri);
+
+ final URL jarSubURL= jarSubUri.toURL();
final URLConnection urlConn = jarSubURL.openConnection();
Assert.assertTrue("jarSubURL has zero content: "+jarSubURL, urlConn.getContentLength()>0);
System.err.println("URLConnection of jarSubURL: "+urlConn);
- final URI jarFileURL = JarUtil.getJarFileURI(clazzBinName, cl);
+ final Uri jarFileURL = JarUtil.getJarFileUri(clazzBinName, cl);
validateJarFileURL(jarFileURL);
final JarFile jarFile = JarUtil.getJarFile(clazzBinName, cl);
@@ -146,10 +156,10 @@ public class TestJarUtil extends JunitTracer {
final ClassLoader rootCL = this.getClass().getClassLoader();
// Get containing JAR file "TestJarsInJar.jar" and add it to the TempJarCache
- TempJarCache.addAll(GlueGenVersion.class, JarUtil.getJarFileURI("ClassInJar0", rootCL));
+ TempJarCache.addAll(GlueGenVersion.class, JarUtil.getJarFileUri("ClassInJar0", rootCL));
// Fetch and load the contained "ClassInJar1.jar"
- final URL ClassInJar1_jarFileURL = JarUtil.getJarFileURI(TempJarCache.getResource("ClassInJar1.jar")).toURL();
+ final URL ClassInJar1_jarFileURL = JarUtil.getJarFileUri(TempJarCache.getResourceUri("ClassInJar1.jar")).toURL();
final ClassLoader cl = new URLClassLoader(new URL[] { ClassInJar1_jarFileURL }, rootCL);
Assert.assertNotNull(cl);
validateJarUtil("ClassInJar1.jar", "ClassInJar1", cl);
@@ -167,10 +177,10 @@ public class TestJarUtil extends JunitTracer {
final ClassLoader rootCL = this.getClass().getClassLoader();
// Get containing JAR file "TestJarsInJar.jar" and add it to the TempJarCache
- TempJarCache.addAll(GlueGenVersion.class, JarUtil.getJarFileURI("ClassInJar0", rootCL));
+ TempJarCache.addAll(GlueGenVersion.class, JarUtil.getJarFileUri("ClassInJar0", rootCL));
// Fetch and load the contained "ClassInJar1.jar"
- final URL ClassInJar2_jarFileURL = JarUtil.getJarFileURI(TempJarCache.getResource("sub/ClassInJar2.jar")).toURL();
+ final URL ClassInJar2_jarFileURL = JarUtil.getJarFileUri(TempJarCache.getResourceUri("sub/ClassInJar2.jar")).toURL();
final ClassLoader cl = new URLClassLoader(new URL[] { ClassInJar2_jarFileURL }, rootCL);
Assert.assertNotNull(cl);
validateJarUtil("ClassInJar2.jar", "ClassInJar2", cl);
@@ -231,7 +241,7 @@ public class TestJarUtil extends JunitTracer {
public URL resolve( final URL url ) {
if( url.getProtocol().equals("bundleresource") ) {
try {
- return new URL( IOUtil.JAR_SCHEME, "", url.getFile() );
+ return new URL( Uri.JAR_SCHEME, "", url.getFile() );
} catch(final MalformedURLException e) {
return url;
}
@@ -244,10 +254,10 @@ public class TestJarUtil extends JunitTracer {
final ClassLoader rootCL = new CustomClassLoader();
// Get containing JAR file "TestJarsInJar.jar" and add it to the TempJarCache
- TempJarCache.addAll(GlueGenVersion.class, JarUtil.getJarFileURI("ClassInJar0", rootCL));
+ TempJarCache.addAll(GlueGenVersion.class, JarUtil.getJarFileUri("ClassInJar0", rootCL));
// Fetch and load the contained "ClassInJar1.jar"
- final URL ClassInJar2_jarFileURL = JarUtil.getJarFileURI(TempJarCache.getResource("sub/ClassInJar2.jar")).toURL();
+ final URL ClassInJar2_jarFileURL = JarUtil.getJarFileUri(TempJarCache.getResourceUri("sub/ClassInJar2.jar")).toURL();
final ClassLoader cl = new URLClassLoader(new URL[] { ClassInJar2_jarFileURL }, rootCL);
Assert.assertNotNull(cl);
validateJarUtil("ClassInJar2.jar", "ClassInJar2", cl);
diff --git a/src/junit/com/jogamp/common/util/TestTempJarCache.java b/src/junit/com/jogamp/common/util/TestTempJarCache.java
index ce06e9a..474a17a 100644
--- a/src/junit/com/jogamp/common/util/TestTempJarCache.java
+++ b/src/junit/com/jogamp/common/util/TestTempJarCache.java
@@ -29,10 +29,8 @@
package com.jogamp.common.util;
import java.io.File;
-
import java.io.IOException;
import java.lang.reflect.Method;
-import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLClassLoader;
@@ -45,7 +43,8 @@ import org.junit.Test;
import org.junit.runners.MethodSorters;
import com.jogamp.common.GlueGenVersion;
-import com.jogamp.common.jvm.JNILibLoaderBase;
+import com.jogamp.common.net.URIDumpUtil;
+import com.jogamp.common.net.Uri;
import com.jogamp.common.os.AndroidVersion;
import com.jogamp.common.os.NativeLibrary;
import com.jogamp.common.os.Platform;
@@ -177,7 +176,7 @@ public class TestTempJarCache extends JunitTracer {
if(AndroidVersion.isAvailable) { System.err.println("n/a on Android"); return; }
final ClassLoader cl = getClass().getClassLoader();
- TempJarCache.addAll(GlueGenVersion.class, JarUtil.getJarFileURI(GlueGenVersion.class.getName(), cl));
+ TempJarCache.addAll(GlueGenVersion.class, JarUtil.getJarFileUri(GlueGenVersion.class.getName(), cl));
File f0 = new File(TempJarCache.getTempFileCache().getTempDir(), "META-INF/MANIFEST.MF");
Assert.assertTrue(f0.exists());
@@ -197,14 +196,28 @@ public class TestTempJarCache extends JunitTracer {
@Test
public void testTempJarCache02AddNativeLibs() throws IOException, IllegalArgumentException, URISyntaxException {
if(AndroidVersion.isAvailable) { System.err.println("n/a on Android"); return; }
- final String nativeJarName = "gluegen-rt-natives-"+Platform.getOSAndArch()+".jar";
+ final Uri.Encoded nativeJarName = Uri.Encoded.cast("gluegen-rt-natives-"+Platform.getOSAndArch()+".jar");
final String libBaseName = "gluegen-rt";
final ClassLoader cl = getClass().getClassLoader();
- URI jarUriRoot = JarUtil.getJarSubURI(TempJarCache.class.getName(), cl);
- jarUriRoot = IOUtil.getURIDirname(jarUriRoot);
+ final Uri jarUri = JarUtil.getJarUri(TempJarCache.class.getName(), cl);
+ Assert.assertNotNull(jarUri);
+ System.err.println("1 - jarUri:");
+ URIDumpUtil.showUri(jarUri);
+
+ final Uri jarFileUri = jarUri.getContainedUri();
+ Assert.assertNotNull(jarFileUri);
+ System.err.println("2 - jarFileUri:");
+ URIDumpUtil.showUri(jarFileUri);
+
+ final Uri jarFileDir = jarFileUri.getParent();
+ Assert.assertNotNull(jarFileDir);
+ System.err.println("3 - jarFileDir:");
+ URIDumpUtil.showUri(jarFileDir);
- final URI nativeJarURI = JarUtil.getJarFileURI(jarUriRoot, nativeJarName);
+ final Uri nativeJarURI = JarUtil.getJarFileUri(jarFileDir, nativeJarName);
+ System.err.println("4 - nativeJarURI:");
+ URIDumpUtil.showUri(nativeJarURI);
TempJarCache.addNativeLibs(TempJarCache.class, nativeJarURI, null /* nativeLibraryPath */);
final String libFullPath = TempJarCache.findLibrary(libBaseName);
@@ -227,7 +240,7 @@ public class TestTempJarCache extends JunitTracer {
@Test
public void testTempJarCache04bDiffClassLoader() throws IOException, IllegalArgumentException, URISyntaxException {
if(AndroidVersion.isAvailable) { System.err.println("n/a on Android"); return; }
- final URL[] urls = new URL[] { JarUtil.getJarFileURI(TempJarCache.class.getName(), getClass().getClassLoader()).toURL() };
+ final URL[] urls = new URL[] { JarUtil.getJarFileUri(TempJarCache.class.getName(), getClass().getClassLoader()).toURL() };
System.err.println("url: "+urls[0]);
final ClassLoader cl2 = new TestClassLoader(urls, null);
final ClassLoader cl3 = new TestClassLoader(urls, null);
diff --git a/src/junit/com/jogamp/common/util/TestVersionSemantics.java b/src/junit/com/jogamp/common/util/TestVersionSemantics.java
index 77d3b72..edc0dc2 100644
--- a/src/junit/com/jogamp/common/util/TestVersionSemantics.java
+++ b/src/junit/com/jogamp/common/util/TestVersionSemantics.java
@@ -67,8 +67,8 @@ import com.jogamp.junit.util.VersionSemanticsUtil;
public class TestVersionSemantics extends JunitTracer {
static final String jarFile = "gluegen-rt.jar";
static final VersionNumberString preVersionNumber = new VersionNumberString("2.2.0");
- // static final Delta.CompatibilityType expectedCompatibilityType = Delta.CompatibilityType.NON_BACKWARD_COMPATIBLE;
- static final Delta.CompatibilityType expectedCompatibilityType = Delta.CompatibilityType.BACKWARD_COMPATIBLE_USER;
+ static final Delta.CompatibilityType expectedCompatibilityType = Delta.CompatibilityType.NON_BACKWARD_COMPATIBLE;
+ // static final Delta.CompatibilityType expectedCompatibilityType = Delta.CompatibilityType.BACKWARD_COMPATIBLE_USER;
static final DiffCriteria diffCriteria = new SimpleDiffCriteria();
// static final DiffCriteria diffCriteria = new PublicDiffCriteria();