package com.jogamp.common.net; import java.io.IOException; import java.net.JarURLConnection; import java.net.URL; /** * See base class {@link PiggybackURLConnection} for motivation. * *
* asset resource location protocol connection. *
* ** See {@link AssetURLContext#resolve(String)} how resources are being resolved. *
* *test/lala.txt
is being resolved by
* a class test.LaLaTest
, ie. using the asset aware ClassLoader,
* one would use the following asset aware filesystem layout:
*
* * test/LaLaTest.class * assets/test/lala.txt ** * The above maybe on a plain filesystem, or within a JAR or an APK file, * e.g.
jogamp.test.apk
.
*
* The above would result in the following possible URLs
* reflecting the plain and resolved state of the asset URL:
* * 0 Entry test/lala.txt * 1 Plain asset:test/lala.txt * 2 Resolved asset:jar:file:/data/app/jogamp.test.apk!/assets/test/lala.txt ** *
* The sub protocol URL of the resolved asset *
* 3 Sub-URL jar:file:/data/app/jogamp.test.apk!/assets/test/lala.txt ** can be retrieved using {@link #getSubProtocol()}. * * * In all above cases, the asset entry is
test/lala.txt
,
* which can be retrieved via {@link #getEntryName()}.
*
* *
*
* The Android ClassLoader {@link jogamp.android.launcher.AssetDexClassLoader} * resolves the resource as an asset URL in it's {@link ClassLoader#findResource(String)} implementation.
** Currently we attach our asset {@link java.net.URLStreamHandlerFactory} * to allow {@link java.net.URL} to handle asset URLs via our asset {@link java.net.URLStreamHandler} implementation. *
*/ public class AssetURLConnection extends PiggybackURLConnection