summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <jvenstad@yahoo-inc.com>2017-12-08 16:07:50 +0100
committerJon Marius Venstad <jvenstad@yahoo-inc.com>2017-12-08 16:07:50 +0100
commitbfcf0064501b526e6e57e459f72a46d5ba7d086d (patch)
tree9b5cd9cbe29d5cee22179204638fb4ddea02e451
parent6b818dccd5460d785d5452a6a961bb637501c574 (diff)
Replaced inheritance with delegation
-rw-r--r--application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java6
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java11
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java37
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java2
5 files changed, 44 insertions, 14 deletions
diff --git a/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java b/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java
index e879acef3bb..303ce3e8d29 100644
--- a/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java
+++ b/application-preprocessor/src/main/java/com/yahoo/application/preprocessor/ApplicationPreprocessor.java
@@ -39,9 +39,9 @@ public class ApplicationPreprocessor {
FilesApplicationPackage.Builder applicationPackageBuilder = new FilesApplicationPackage.Builder(applicationDir);
outputDir.ifPresent(applicationPackageBuilder::preprocessedDir);
ApplicationPackage preprocessed = applicationPackageBuilder.build().preprocess(
- new Zone(environment.orElse(Environment.defaultEnvironment()), region.orElse(RegionName.defaultName())),
- (a, b) -> {
- }, logger);
+ ZoneId.from(environment.orElse(Environment.defaultEnvironment()), region.orElse(RegionName.defaultName())),
+ (a, b) -> { },
+ logger);
preprocessed.validateXML();
}
diff --git a/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java b/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java
index c12a9ad0d06..2dfaf440084 100644
--- a/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java
+++ b/config-application-package/src/test/java/com/yahoo/config/model/application/provider/FilesApplicationPackageTest.java
@@ -7,6 +7,7 @@ import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.RegionName;
import com.yahoo.config.provision.Zone;
+import com.yahoo.config.provision.ZoneId;
import com.yahoo.io.IOUtils;
import org.junit.Rule;
import org.junit.Test;
@@ -41,13 +42,9 @@ public class FilesApplicationPackageTest {
assertTrue(new File(appDir, "hosts.xml").exists());
FilesApplicationPackage app = FilesApplicationPackage.fromFile(appDir);
- ApplicationPackage processed = app.preprocess(new Zone(Environment.dev, RegionName.defaultName()),
- new RuleConfigDeriver() {
- @Override
- public void derive(String ruleBaseDir, String outputDir) throws Exception {
- }
- },
- new BaseDeployLogger());
+ ApplicationPackage processed = app.preprocess(ZoneId.from(Environment.dev, RegionName.defaultName()),
+ (ruleBaseDir, outputDir) -> {},
+ new BaseDeployLogger());
assertTrue(new File(appDir, ".preprocessed").exists());
String expectedServices = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><services xmlns:deploy=\"vespa\" xmlns:preprocess=\"properties\" version=\"1.0\">\n" +
" <admin version=\"2.0\">\n" +
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java
index b69795a4f95..4dd6324b423 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java
@@ -5,6 +5,7 @@ import com.google.common.base.Strings;
import com.google.inject.Inject;
import com.yahoo.cloud.config.ConfigserverConfig;
+import java.util.Objects;
import java.util.Optional;
/**
@@ -14,11 +15,12 @@ import java.util.Optional;
*
* @author bratseth
*/
-public class Zone extends ZoneId {
+public class Zone {
private final SystemName systemName;
private final FlavorDefaults flavorDefaults;
private final Optional<NodeFlavors> nodeFlavors;
+ private final ZoneId id;
@Inject
public Zone(ConfigserverConfig configserverConfig, NodeFlavors nodeFlavors) {
@@ -44,12 +46,27 @@ public class Zone extends ZoneId {
RegionName region,
FlavorDefaults flavorDefaults,
NodeFlavors nodeFlavors) {
- super(environment, region);
+ this.id = new ZoneId(environment, region);
this.flavorDefaults = flavorDefaults;
this.systemName = systemName;
this.nodeFlavors = Optional.ofNullable(nodeFlavors);
}
+ /** Returns the id of this */
+ public ZoneId id() {
+ return id;
+ }
+
+ /** Returns the current environment */
+ public Environment environment() {
+ return id.environment();
+ }
+
+ /** Returns the current region */
+ public RegionName region() {
+ return id.region();
+ }
+
/** Returns the current system */
public SystemName system() { return systemName; }
@@ -64,6 +81,22 @@ public class Zone extends ZoneId {
return new Zone(SystemName.defaultSystem(), Environment.defaultEnvironment(), RegionName.defaultName());
}
+
+ public String toString() {
+ return id.toString();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if ( ! (o instanceof Zone)) return false;
+ return Objects.equals(id, ((Zone) o).id);
+ }
+
+ public int hashCode() {
+ return id.hashCode();
+ }
+
private static class FlavorDefaults {
/** The default default flavor */
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
index 70db406bd53..24666f42dc9 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
@@ -178,7 +178,7 @@ public class SessionPreparer {
void preprocess() {
try {
- this.applicationPackage = context.getApplicationPackage().preprocess(properties.zone(), null, logger);
+ this.applicationPackage = context.getApplicationPackage().preprocess(properties.zone().id(), null, logger);
} catch (IOException | TransformerException | ParserConfigurationException | SAXException e) {
throw new RuntimeException("Error deploying application package", e);
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java
index efd3ddd80e6..3af68befd1d 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/ControllerTest.java
@@ -494,7 +494,7 @@ public class ControllerTest {
public void testGlobalRotations() throws IOException {
// Setup tester and app def
ControllerTester tester = new ControllerTester();
- ZoneId zone = Zone.defaultZone();
+ ZoneId zone = ZoneId.from(Environment.defaultEnvironment(), RegionName.defaultName());
ApplicationId appId = tester.applicationId("tenant", "app1", "default");
DeploymentId deployId = new DeploymentId(appId, zone);