diff options
author | Lester Solbakken <lesters@oath.com> | 2022-05-20 15:07:57 +0200 |
---|---|---|
committer | Lester Solbakken <lesters@oath.com> | 2022-05-20 15:07:57 +0200 |
commit | 77e3ffdbcb23316197f4f34d860c340c64a77178 (patch) | |
tree | 30ad193c6164c5b9a3c6d3ef7f52118d0a6f82d2 | |
parent | 2e1bf435671d233ac70635c1bc338da0153aec86 (diff) |
Only donload url config on containers - not config server
4 files changed, 19 insertions, 4 deletions
diff --git a/config/src/main/java/com/yahoo/vespa/config/ConfigPayloadApplier.java b/config/src/main/java/com/yahoo/vespa/config/ConfigPayloadApplier.java index 9cd9a7c0981..5c0e9539f4f 100644 --- a/config/src/main/java/com/yahoo/vespa/config/ConfigPayloadApplier.java +++ b/config/src/main/java/com/yahoo/vespa/config/ConfigPayloadApplier.java @@ -273,8 +273,14 @@ public class ConfigPayloadApplier<T extends ConfigInstance.Builder> { // Need to convert url into actual file if 'url' type is used } else if (isUrlField(builder, methodName)) { - UrlReference url = resolveUrl(Utf8.toString(value.asUtf8())); - invokeSetter(builder, methodName, url); + String url = Utf8.toString(value.asUtf8()); + if (url == null || url.length() == 0) { + invokeSetter(builder, methodName, ""); + } else { + UrlReference urlref = resolveUrl(Utf8.toString(value.asUtf8())); + invokeSetter(builder, methodName, urlref); + } + } else { Object object = getValueFromInspector(value); @@ -294,7 +300,7 @@ public class ConfigPayloadApplier<T extends ConfigInstance.Builder> { private UrlReference resolveUrl(String url) { if (urlDownloader == null) { - throw new RuntimeException("Resolving url field failed due to missing URL downloader."); + return new UrlReference(url); // assuming config server - just return the actual url. } File file = urlDownloader.waitFor(new UrlReference(url), 60 * 60); return new UrlReference(file.getAbsolutePath()); diff --git a/config/src/main/java/com/yahoo/vespa/config/ConfigTransformer.java b/config/src/main/java/com/yahoo/vespa/config/ConfigTransformer.java index 3d3a27da713..9ececb71c56 100644 --- a/config/src/main/java/com/yahoo/vespa/config/ConfigTransformer.java +++ b/config/src/main/java/com/yahoo/vespa/config/ConfigTransformer.java @@ -28,7 +28,7 @@ public class ConfigTransformer<T extends ConfigInstance> { private final Class<T> clazz; private static volatile PathAcquirer pathAcquirer = new IdentityPathAcquirer(); - private static volatile UrlDownloader urlDownloader; + private static volatile UrlDownloader urlDownloader = null; /** * For internal use only * diff --git a/container-core/src/main/java/com/yahoo/container/Container.java b/container-core/src/main/java/com/yahoo/container/Container.java index 3d3bf221528..47731761630 100755 --- a/container-core/src/main/java/com/yahoo/container/Container.java +++ b/container-core/src/main/java/com/yahoo/container/Container.java @@ -24,6 +24,7 @@ import java.util.logging.Logger; public class Container { private volatile boolean usingCustomFileAcquirer = false; + private volatile boolean disabledUrlDownloader = false; private volatile ComponentRegistry<RequestHandler> requestHandlerRegistry; private volatile ComponentRegistry<ClientProvider> clientProviderRegistry; @@ -132,8 +133,15 @@ public class Container { } public void setupUrlDownloader() { + if (disabledUrlDownloader) { + return; + } this.urlDownloader = new UrlDownloader(); ConfigTransformer.setUrlDownloader(urlDownloader); } + public void disableUrlDownloader() { + disabledUrlDownloader = true; + } + } diff --git a/standalone-container/src/main/java/com/yahoo/container/standalone/StandaloneContainerApplication.java b/standalone-container/src/main/java/com/yahoo/container/standalone/StandaloneContainerApplication.java index fe3e8782973..a677c69cb79 100644 --- a/standalone-container/src/main/java/com/yahoo/container/standalone/StandaloneContainerApplication.java +++ b/standalone-container/src/main/java/com/yahoo/container/standalone/StandaloneContainerApplication.java @@ -154,6 +154,7 @@ public class StandaloneContainerApplication implements Application { public void start() { try { com.yahoo.container.Container.get().setCustomFileAcquirer(distributedFiles); + com.yahoo.container.Container.get().disableUrlDownloader(); configuredApplication.start(); } catch (Exception e) { com.yahoo.container.Container.resetInstance(); |