public class io.helidon.config.UrlOverrideSource extends io.helidon.config.AbstractSource implements io.helidon.config.spi.OverrideSource, io.helidon.config.spi.PollableSource, io.helidon.config.spi.WatchableSource
{
private static final java.util.logging.Logger LOGGER;
private static final java.lang.String GET_METHOD;
private static final java.lang.String URL_KEY;
private final java.net.URL url;
void <init>(io.helidon.config.UrlOverrideSource$Builder)
{
io.helidon.config.UrlOverrideSource$Builder v;
io.helidon.config.UrlOverrideSource v;
java.net.URL v;
v := @this: io.helidon.config.UrlOverrideSource;
v := @parameter: io.helidon.config.UrlOverrideSource$Builder;
specialinvoke v.<io.helidon.config.AbstractSource: void <init>(io.helidon.config.AbstractSourceBuilder)>(v);
v = v.<io.helidon.config.UrlOverrideSource$Builder: java.net.URL url>;
v.<io.helidon.config.UrlOverrideSource: java.net.URL url> = v;
return;
}
public static io.helidon.config.UrlOverrideSource create(io.helidon.config.Config)
{
io.helidon.config.UrlOverrideSource$Builder v, v;
io.helidon.config.Config v;
io.helidon.config.UrlOverrideSource v;
v := @parameter: io.helidon.config.Config;
v = staticinvoke <io.helidon.config.UrlOverrideSource: io.helidon.config.UrlOverrideSource$Builder builder()>();
v = virtualinvoke v.<io.helidon.config.UrlOverrideSource$Builder: io.helidon.config.UrlOverrideSource$Builder config(io.helidon.config.Config)>(v);
v = virtualinvoke v.<io.helidon.config.UrlOverrideSource$Builder: io.helidon.config.UrlOverrideSource build()>();
return v;
}
public static io.helidon.config.UrlOverrideSource$Builder builder()
{
io.helidon.config.UrlOverrideSource$Builder v;
v = new io.helidon.config.UrlOverrideSource$Builder;
specialinvoke v.<io.helidon.config.UrlOverrideSource$Builder: void <init>()>();
return v;
}
public boolean isModified(java.time.Instant)
{
java.net.URL v;
java.time.Instant v;
io.helidon.config.UrlOverrideSource v;
boolean v;
v := @this: io.helidon.config.UrlOverrideSource;
v := @parameter: java.time.Instant;
v = v.<io.helidon.config.UrlOverrideSource: java.net.URL url>;
v = staticinvoke <io.helidon.config.UrlHelper: boolean isModified(java.net.URL,java.time.Instant)>(v, v);
return v;
}
public java.util.Optional pollingStrategy()
{
java.util.Optional v;
io.helidon.config.UrlOverrideSource v;
v := @this: io.helidon.config.UrlOverrideSource;
v = specialinvoke v.<io.helidon.config.AbstractSource: java.util.Optional pollingStrategy()>();
return v;
}
public java.net.URL target()
{
io.helidon.config.UrlOverrideSource v;
java.net.URL v;
v := @this: io.helidon.config.UrlOverrideSource;
v = v.<io.helidon.config.UrlOverrideSource: java.net.URL url>;
return v;
}
public java.lang.Class targetType()
{
io.helidon.config.UrlOverrideSource v;
v := @this: io.helidon.config.UrlOverrideSource;
return class "Ljava/net/URL;";
}
public java.util.Optional changeWatcher()
{
java.util.Optional v;
io.helidon.config.UrlOverrideSource v;
v := @this: io.helidon.config.UrlOverrideSource;
v = specialinvoke v.<io.helidon.config.AbstractSource: java.util.Optional changeWatcher()>();
return v;
}
public java.util.Optional load() throws io.helidon.config.ConfigException
{
java.net.URL v, v, v;
long v, v;
io.helidon.config.ConfigException v, v;
byte v;
java.nio.charset.Charset v;
java.net.URLConnection v;
int v;
io.helidon.config.spi.ConfigContent$OverrideContent$Builder v, v;
java.lang.String v, v, v;
io.helidon.config.spi.OverrideSource$OverrideData v;
io.helidon.config.spi.ConfigContent$OverrideContent v;
java.time.Instant v;
java.util.logging.Logger v;
io.helidon.config.UrlOverrideSource v;
java.io.InputStreamReader v;
java.lang.Exception v;
java.util.Optional v, v;
io.helidon.config.spi.ConfigContent$Builder v;
java.io.InputStream v;
v := @this: io.helidon.config.UrlOverrideSource;
label:
v = v.<io.helidon.config.UrlOverrideSource: java.net.URL url>;
v = virtualinvoke v.<java.net.URL: java.net.URLConnection openConnection()>();
virtualinvoke v.<java.net.HttpURLConnection: void setRequestMethod(java.lang.String)>("GET");
v = virtualinvoke v.<java.net.HttpURLConnection: int getResponseCode()>();
if 404 != v goto label;
v = staticinvoke <java.util.Optional: java.util.Optional empty()>();
label:
return v;
label:
v = virtualinvoke v.<java.net.HttpURLConnection: long getLastModified()>();
v = v cmp 0L;
if v != 0 goto label;
v = staticinvoke <java.time.Instant: java.time.Instant now()>();
v = <io.helidon.config.UrlOverrideSource: java.util.logging.Logger LOGGER>;
v = v.<io.helidon.config.UrlOverrideSource: java.net.URL url>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.net.URL,java.time.Instant)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Missing GET \'\u0001\' response header \'Last-Modified\'. Used current time \'\u0001\' as a content timestamp.");
virtualinvoke v.<java.util.logging.Logger: void fine(java.lang.String)>(v);
goto label;
label:
v = virtualinvoke v.<java.net.HttpURLConnection: long getLastModified()>();
v = staticinvoke <java.time.Instant: java.time.Instant ofEpochMilli(long)>(v);
label:
v = new java.io.InputStreamReader;
v = virtualinvoke v.<java.net.HttpURLConnection: java.io.InputStream getInputStream()>();
v = virtualinvoke v.<java.net.HttpURLConnection: java.lang.String getContentEncoding()>();
v = staticinvoke <io.helidon.config.ConfigUtils: java.nio.charset.Charset getContentCharset(java.lang.String)>(v);
specialinvoke v.<java.io.InputStreamReader: void <init>(java.io.InputStream,java.nio.charset.Charset)>(v, v);
v = staticinvoke <io.helidon.config.spi.ConfigContent$OverrideContent: io.helidon.config.spi.ConfigContent$OverrideContent$Builder builder()>();
v = staticinvoke <io.helidon.config.spi.OverrideSource$OverrideData: io.helidon.config.spi.OverrideSource$OverrideData create(java.io.Reader)>(v);
v = virtualinvoke v.<io.helidon.config.spi.ConfigContent$OverrideContent$Builder: io.helidon.config.spi.ConfigContent$OverrideContent$Builder data(io.helidon.config.spi.OverrideSource$OverrideData)>(v);
v = virtualinvoke v.<io.helidon.config.spi.ConfigContent$OverrideContent$Builder: io.helidon.config.spi.ConfigContent$Builder stamp(java.lang.Object)>(v);
v = virtualinvoke v.<io.helidon.config.spi.ConfigContent$OverrideContent$Builder: io.helidon.config.spi.ConfigContent$OverrideContent build()>();
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
label:
return v;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new io.helidon.config.ConfigException;
v = v.<io.helidon.config.UrlOverrideSource: java.net.URL url>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.net.URL)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Configuration at url \'\u0001\' GET is not accessible.");
specialinvoke v.<io.helidon.config.ConfigException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch io.helidon.config.ConfigException from label to label with label;
catch io.helidon.config.ConfigException from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
}
protected java.lang.String uid()
{
java.lang.String v;
io.helidon.config.UrlOverrideSource v;
java.net.URL v;
v := @this: io.helidon.config.UrlOverrideSource;
v = v.<io.helidon.config.UrlOverrideSource: java.net.URL url>;
v = virtualinvoke v.<java.net.URL: java.lang.String toString()>();
return v;
}
static void <clinit>()
{
java.lang.Class v;
java.lang.String v;
java.util.logging.Logger v;
v = class "Lio/helidon/config/UrlOverrideSource;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = staticinvoke <java.util.logging.Logger: java.util.logging.Logger getLogger(java.lang.String)>(v);
<io.helidon.config.UrlOverrideSource: java.util.logging.Logger LOGGER> = v;
return;
}
}