فهرست منبع

AMBARI-8418. Stack service version is now inherited by child service

Jayush Luniya 10 سال پیش
والد
کامیت
aebd5c0b3f

+ 3 - 0
ambari-server/src/main/java/org/apache/ambari/server/stack/ServiceModule.java

@@ -101,6 +101,9 @@ public class ServiceModule extends BaseModule<ServiceModule, ServiceInfo> {
     if (serviceInfo.getDisplayName() == null) {
       serviceInfo.setDisplayName(parent.getDisplayName());
     }
+    if (serviceInfo.getVersion() == null) {
+      serviceInfo.setVersion(parent.getVersion());
+    }
 
     if (serviceInfo.getRequiredServices() == null) {
       serviceInfo.setRequiredServices(parent.getRequiredServices() != null ?

+ 27 - 0
ambari-server/src/test/java/org/apache/ambari/server/stack/ServiceModuleTest.java

@@ -103,6 +103,33 @@ public class ServiceModuleTest {
     assertEquals(displayName, service.getModuleInfo().getDisplayName());
   }
 
+  @Test
+  public void testResolve_Version() throws Exception {
+    String version = "1.1";
+
+    // specified in child only
+    ServiceInfo info = new ServiceInfo();
+    ServiceInfo parentInfo = new ServiceInfo();
+    info.setVersion(version);
+
+    ServiceModule service = resolveService(info, parentInfo);
+    assertEquals(version, service.getModuleInfo().getVersion());
+
+    // specified in parent only
+    info.setVersion(null);
+    parentInfo.setVersion(version);
+
+    service = resolveService(info, parentInfo);
+    assertEquals(version, service.getModuleInfo().getVersion());
+
+    // specified in both
+    info.setVersion(version);
+    parentInfo.setVersion("1.0");
+
+    service = resolveService(info, parentInfo);
+    assertEquals(version, service.getModuleInfo().getVersion());
+  }
+
   @Test
   public void testResolve_RequiredServices() throws Exception {
     List<String> requiredServices = new ArrayList<String>();