Repository: ambari Updated Branches: refs/heads/branch-feature-AMBARI-14714-tmp-bence [created] b45710fb2
http://git-wip-us.apache.org/repos/asf/ambari/blob/b45710fb/ambari-server/src/main/java/org/apache/ambari/server/topology/RepositoryVersion.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/RepositoryVersion.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/RepositoryVersion.java new file mode 100644 index 0000000..8eb6663 --- /dev/null +++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/RepositoryVersion.java @@ -0,0 +1,71 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distribut + * ed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ambari.server.topology; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class RepositoryVersion { + @JsonProperty("stack_id") + private String stackId; + + @JsonProperty("repository_version") + private String repositoryVersion; + + public RepositoryVersion() { } + + public RepositoryVersion(String stackId, String repositoryVersion) { + this.stackId = stackId; + this.repositoryVersion = repositoryVersion; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + RepositoryVersion that = (RepositoryVersion) o; + + if (stackId != null ? !stackId.equals(that.stackId) : that.stackId != null) return false; + return repositoryVersion != null ? repositoryVersion.equals(that.repositoryVersion) : that.repositoryVersion == null; + } + + @Override + public int hashCode() { + int result = stackId != null ? stackId.hashCode() : 0; + result = 31 * result + (repositoryVersion != null ? repositoryVersion.hashCode() : 0); + return result; + } + + public String getStackId() { + return stackId; + } + + public void setStackId(String stackId) { + this.stackId = stackId; + } + + public String getRepositoryVersion() { + return repositoryVersion; + } + + public void setRepositoryVersion(String repositoryVersion) { + this.repositoryVersion = repositoryVersion; + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/b45710fb/ambari-server/src/main/java/org/apache/ambari/server/topology/SecurityConfiguration.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/SecurityConfiguration.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/SecurityConfiguration.java index 4ff5504..7955169 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/topology/SecurityConfiguration.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/SecurityConfiguration.java @@ -21,6 +21,9 @@ package org.apache.ambari.server.topology; import org.apache.ambari.server.state.SecurityType; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; + /** * Holds security related properties, the securityType and security descriptor (in case of KERBEROS * kerberos_descriptor) either contains the whole descriptor or just the reference to it. @@ -43,7 +46,9 @@ public class SecurityConfiguration { */ private String descriptor; - public SecurityConfiguration(SecurityType type) { + + @JsonCreator + public SecurityConfiguration(@JsonProperty("type") SecurityType type) { this.type = type; } http://git-wip-us.apache.org/repos/asf/ambari/blob/b45710fb/ambari-server/src/main/java/org/apache/ambari/server/topology/Service.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/Service.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/Service.java index 62acdfd..1dde7ea 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/topology/Service.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/Service.java @@ -21,42 +21,19 @@ package org.apache.ambari.server.topology; import java.util.Set; -import org.apache.ambari.server.controller.internal.Stack; +import com.fasterxml.jackson.annotation.JsonProperty; -public class Service { +public class Service implements Configurable { - private final String type; + private String type; - private final String name; + private ServiceId id = new ServiceId(); - private final Stack stack; + private String stackId; - private final Configuration configuration; + private Configuration configuration; - private final Set<Service> dependentServices; - - public Service(String type, Stack stack) { - this(type, null, stack, null, null); - } - - /** - * In case there's no name specified name will be set to type. - * @param type - * @param name - * @param stack - * @param configuration - */ - public Service(String type, String name, Stack stack, Configuration configuration, Set<Service> dependentServices) { - this.type = type; - if (name == null) { - this.name = type; - } else { - this.name = name; - } - this.stack = stack; - this.configuration = configuration; - this.dependentServices = dependentServices; - } + private Set<ServiceId> dependencies; /** * Gets the name of this service @@ -64,18 +41,57 @@ public class Service { * @return component name */ public String getName() { - return this.name; + return this.id.getName(); + } + + public String getServiceGroup() { + return this.id.getServiceGroup(); } public String getType() { return type; } - public Stack getStack() { - return stack; + public String getStackId() { + return stackId; + } + + public Set<ServiceId> getDependencies() { + return dependencies; } public Configuration getConfiguration() { return configuration; } + + + public void setType(String type) { + this.type = type; + } + + public void setName(String name) { + this.id.setName(name); + } + + public void setServiceGroup(String serviceGroup) { + this.id.setServiceGroup(serviceGroup); + } + + @JsonProperty("stack_id") + public void setStackId(String stackId) { + this.stackId = stackId; + } + + public void setConfiguration(Configuration configuration) { + this.configuration = configuration; + } + + public void setDependencies(Set<ServiceId> dependencies) { + this.dependencies = dependencies; + } + + public ServiceId getId() { + return id; + } + } http://git-wip-us.apache.org/repos/asf/ambari/blob/b45710fb/ambari-server/src/main/java/org/apache/ambari/server/topology/ServiceGroup.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/ServiceGroup.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/ServiceGroup.java index 8e66f02..edf6eba 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/topology/ServiceGroup.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/ServiceGroup.java @@ -19,29 +19,22 @@ package org.apache.ambari.server.topology; +import java.util.ArrayList; import java.util.Collection; +import java.util.HashSet; import java.util.Set; public class ServiceGroup { - private final String name; + private String name = null; - private final Collection<Service> services; + private Collection<Service> services = new ArrayList<>(); - private final Configuration configuration; + private Configuration configuration = null; - private final Set<ServiceGroup> dependencies; + private Set<String> dependencies = new HashSet<>(); - public ServiceGroup(String name, Collection<Service> services) { - this(name, services, null, null); - } - - public ServiceGroup(String name, Collection<Service> services, Configuration configuration, Set<ServiceGroup> dependencies) { - this.name = name; - this.services = services; - this.configuration = configuration; - this.dependencies = dependencies; - } + public ServiceGroup() { } /** * Gets the name of this service group @@ -52,7 +45,6 @@ public class ServiceGroup { return this.name; } - public Collection<Service> getServices() { return services; } @@ -61,7 +53,24 @@ public class ServiceGroup { return configuration; } - public Set<ServiceGroup> getDependencies() { + public Set<String> getDependencies() { return dependencies; } + + public void setName(String name) { + this.name = name; + } + + public void setServices(Collection<Service> services) { + this.services = services; + services.forEach(s -> s.setServiceGroup(this.name)); + } + + public void setConfiguration(Configuration configuration) { + this.configuration = configuration; + } + + public void setDependencies(Set<String> dependencies) { + this.dependencies = dependencies; + } } http://git-wip-us.apache.org/repos/asf/ambari/blob/b45710fb/ambari-server/src/main/java/org/apache/ambari/server/topology/ServiceId.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/ServiceId.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/ServiceId.java new file mode 100644 index 0000000..2aae1d3 --- /dev/null +++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/ServiceId.java @@ -0,0 +1,52 @@ +package org.apache.ambari.server.topology; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class ServiceId { + private String serviceGroup; + private String name; + + public static ServiceId of(String name, String serviceGroup) { + ServiceId id = new ServiceId(); + id.name = name; + id.serviceGroup = serviceGroup; + return id; + } + + public String getServiceGroup() { + return serviceGroup; + } + + @JsonProperty("service_group") + public void setServiceGroup(String serviceGroup) { + this.serviceGroup = serviceGroup; + } + + public String getName() { + return name; + } + + @JsonProperty("service_name") + public void setName(String name) { + this.name = name; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + ServiceId serviceId = (ServiceId) o; + + if (serviceGroup != null ? !serviceGroup.equals(serviceId.serviceGroup) : serviceId.serviceGroup != null) + return false; + return name != null ? name.equals(serviceId.name) : serviceId.name == null; + } + + @Override + public int hashCode() { + int result = serviceGroup != null ? serviceGroup.hashCode() : 0; + result = 31 * result + (name != null ? name.hashCode() : 0); + return result; + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/b45710fb/ambari-server/src/test/java/org/apache/ambari/server/topology/validators/BlueprintImplV2Test.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/topology/validators/BlueprintImplV2Test.java b/ambari-server/src/test/java/org/apache/ambari/server/topology/validators/BlueprintImplV2Test.java new file mode 100644 index 0000000..dbe269a --- /dev/null +++ b/ambari-server/src/test/java/org/apache/ambari/server/topology/validators/BlueprintImplV2Test.java @@ -0,0 +1,9 @@ +package org.apache.ambari.server.topology.validators; + +public class BlueprintImplV2Test { + + private static final String BLUEPRINT_LOCATION = ""; + + + +}