summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2022-03-31 14:27:37 +0200
committerJon Marius Venstad <venstad@gmail.com>2022-03-31 14:27:37 +0200
commit89e0f91aa4743809d955000b6d00fdef5a63085d (patch)
tree4d6e556e8ab2841d4ef32996e94ff7e44847c168
parente647ed052e0973d6c273f3bbe354af1b25501aa4 (diff)
Make ApplicationId effectively final by replacing public config constructor with factory
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java12
-rw-r--r--config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java2
-rw-r--r--routing-generator/src/main/java/com/yahoo/vespa/hosted/routing/nginx/NginxMetricsReporter.java2
3 files changed, 9 insertions, 7 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java
index 274a3902d04..12f4ba3f987 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java
@@ -12,17 +12,13 @@ import java.util.Objects;
* @author vegard
* @author bratseth
*/
-public final class ApplicationId implements Comparable<ApplicationId> {
+public class ApplicationId implements Comparable<ApplicationId> {
private final TenantName tenant;
private final ApplicationName application;
private final InstanceName instance;
private final String serializedForm;
- public ApplicationId(ApplicationIdConfig config) {
- this(TenantName.from(config.tenant()), ApplicationName.from(config.application()), InstanceName.from(config.instance()));
- }
-
private ApplicationId(TenantName tenant, ApplicationName applicationName, InstanceName instanceName) {
this.tenant = tenant;
this.application = applicationName;
@@ -30,6 +26,12 @@ public final class ApplicationId implements Comparable<ApplicationId> {
this.serializedForm = toSerializedForm();
}
+ public static ApplicationId from(ApplicationIdConfig config) {
+ return from(TenantName.from(config.tenant()),
+ ApplicationName.from(config.application()),
+ InstanceName.from(config.instance()));
+ }
+
public static ApplicationId from(TenantName tenant, ApplicationName application, InstanceName instance) {
return new ApplicationId(tenant, application, instance);
}
diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java
index c82230f7edf..01904b5eece 100644
--- a/config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java
+++ b/config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java
@@ -106,7 +106,7 @@ public class ApplicationIdTest {
builder.tenant("a");
builder.application("b");
builder.instance("c");
- ApplicationId applicationId = new ApplicationId(new ApplicationIdConfig(builder));
+ ApplicationId applicationId = ApplicationId.from(new ApplicationIdConfig(builder));
assertEquals("a", applicationId.tenant().value());
assertEquals("b", applicationId.application().value());
assertEquals("c", applicationId.instance().value());
diff --git a/routing-generator/src/main/java/com/yahoo/vespa/hosted/routing/nginx/NginxMetricsReporter.java b/routing-generator/src/main/java/com/yahoo/vespa/hosted/routing/nginx/NginxMetricsReporter.java
index 79381b8c99e..b9ab1dbe9b6 100644
--- a/routing-generator/src/main/java/com/yahoo/vespa/hosted/routing/nginx/NginxMetricsReporter.java
+++ b/routing-generator/src/main/java/com/yahoo/vespa/hosted/routing/nginx/NginxMetricsReporter.java
@@ -58,7 +58,7 @@ public class NginxMetricsReporter extends AbstractComponent implements Runnable
@Inject
public NginxMetricsReporter(ApplicationIdConfig applicationId, Metric metric, HealthStatus healthStatus, RoutingGenerator routingGenerator) {
- this(new ApplicationId(applicationId), metric, healthStatus, FileSystems.getDefault(), interval, routingGenerator::routingTable);
+ this(ApplicationId.from(applicationId), metric, healthStatus, FileSystems.getDefault(), interval, routingGenerator::routingTable);
}
NginxMetricsReporter(ApplicationId application, Metric metric, HealthStatus healthStatus, FileSystem fileSystem, Duration interval,