You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2016/04/13 21:45:36 UTC

ambari git commit: AMBARI-15867. VDF with newlines preventing valid repo files (ncole)

Repository: ambari
Updated Branches:
  refs/heads/trunk 085b1c0a7 -> c7ba19a33


AMBARI-15867. VDF with newlines preventing valid repo files (ncole)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/c7ba19a3
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/c7ba19a3
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/c7ba19a3

Branch: refs/heads/trunk
Commit: c7ba19a33431b46890688d5bb9cd6387146bf36c
Parents: 085b1c0
Author: Nate Cole <nc...@hortonworks.com>
Authored: Wed Apr 13 14:47:18 2016 -0400
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Wed Apr 13 15:45:30 2016 -0400

----------------------------------------------------------------------
 .../ambari/server/state/repository/Release.java |  2 -
 .../state/repository/VersionDefinitionXml.java  |  7 ++--
 .../server/state/repository/package-info.java   | 23 ++++++++++++
 .../server/state/stack/TrimmingAdapter.java     | 39 ++++++++++++++++++++
 .../ambari/server/state/stack/package-info.java | 21 +++++++++++
 .../AmbariManagementControllerTest.java         |  1 +
 .../state/repository/VersionDefinitionTest.java | 35 +++++++++++++++++-
 7 files changed, 122 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/c7ba19a3/ambari-server/src/main/java/org/apache/ambari/server/state/repository/Release.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/repository/Release.java b/ambari-server/src/main/java/org/apache/ambari/server/state/repository/Release.java
index f855b05..39b30e7 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/repository/Release.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/repository/Release.java
@@ -20,7 +20,6 @@ package org.apache.ambari.server.state.repository;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.ambari.server.state.RepositoryType;
 import org.apache.commons.lang.StringUtils;
@@ -28,7 +27,6 @@ import org.apache.commons.lang.StringUtils;
 /**
  * Release information for a repository.
  */
-@XmlRootElement(name="release")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class Release {
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/c7ba19a3/ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java b/ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java
index 4488f58..685a07c 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java
@@ -106,7 +106,7 @@ public class VersionDefinitionXml {
   /**
    * @param stack the stack info needed to lookup service and component display names
    * @return a collection of AvailableServices used for web service consumption.  This
-   * collection is either the subset of the manifest, or the manifest if no services
+   * collection is either the subset of the manifest, or the manifest itself if no services
    * are specified as "available".
    */
   public Collection<AvailableService> getAvailableServices(StackInfo stack) {
@@ -158,7 +158,8 @@ public class VersionDefinitionXml {
 
     for (ServiceInfo si : stack.getServices()) {
       Set<String> versions = manifestVersions.containsKey(si.getName()) ?
-          manifestVersions.get(si.getName()) : Collections.singleton("");
+          manifestVersions.get(si.getName()) : Collections.singleton(
+              null == si.getVersion() ? "" : si.getVersion());
 
       m_manifest.add(new ManifestServiceInfo(si.getName(), si.getDisplayName(),
           si.getComment(), versions));
@@ -365,4 +366,4 @@ public class VersionDefinitionXml {
 
   }
 
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/c7ba19a3/ambari-server/src/main/java/org/apache/ambari/server/state/repository/package-info.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/repository/package-info.java b/ambari-server/src/main/java/org/apache/ambari/server/state/repository/package-info.java
new file mode 100644
index 0000000..dcc2d75
--- /dev/null
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/repository/package-info.java
@@ -0,0 +1,23 @@
+/**
+ * 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 distributed 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.
+ */
+@XmlJavaTypeAdapter(value=TrimmingAdapter.class,type=String.class)
+package org.apache.ambari.server.state.repository;
+
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+import org.apache.ambari.server.state.stack.TrimmingAdapter;

http://git-wip-us.apache.org/repos/asf/ambari/blob/c7ba19a3/ambari-server/src/main/java/org/apache/ambari/server/state/stack/TrimmingAdapter.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/TrimmingAdapter.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/TrimmingAdapter.java
new file mode 100644
index 0000000..d3c3f66
--- /dev/null
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/TrimmingAdapter.java
@@ -0,0 +1,39 @@
+/**
+ * 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 distributed 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.state.stack;
+
+import javax.xml.bind.annotation.adapters.XmlAdapter;
+
+import org.apache.commons.lang.StringUtils;
+
+/**
+ * Adapter that trims strings
+ */
+public class TrimmingAdapter extends XmlAdapter<String, String> {
+
+  @Override
+  public String marshal(String v) throws Exception {
+    return StringUtils.trim(v);
+  }
+
+  @Override
+  public String unmarshal(String v) throws Exception {
+    return StringUtils.trim(v);
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/c7ba19a3/ambari-server/src/main/java/org/apache/ambari/server/state/stack/package-info.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/package-info.java b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/package-info.java
new file mode 100644
index 0000000..f441670
--- /dev/null
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/package-info.java
@@ -0,0 +1,21 @@
+/**
+ * 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 distributed 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.
+ */
+@XmlJavaTypeAdapter(value=TrimmingAdapter.class,type=String.class)
+package org.apache.ambari.server.state.stack;
+
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/c7ba19a3/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
index 186ebe7..5e38920 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
@@ -8519,6 +8519,7 @@ public class AmbariManagementControllerTest {
     requests.clear();
     request = new RepositoryRequest(STACK_NAME, STACK_VERSION, OS_TYPE, REPO_ID);
     request.setBaseUrl("https://hortonworks.com");
+    request.setVerifyBaseUrl(false);
     requests.add(request);
     // test https url
     controller.updateRepositories(requests);

http://git-wip-us.apache.org/repos/asf/ambari/blob/c7ba19a3/ambari-server/src/test/java/org/apache/ambari/server/state/repository/VersionDefinitionTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/repository/VersionDefinitionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/repository/VersionDefinitionTest.java
index d262df3..237eed2 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/state/repository/VersionDefinitionTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/state/repository/VersionDefinitionTest.java
@@ -155,7 +155,7 @@ public class VersionDefinitionTest {
       } else if ("YARN".equals(msi.m_name)) {
         foundYarn = true;
         assertEquals(1, msi.m_versions.size());
-        assertEquals("", msi.m_versions.iterator().next());
+        assertEquals("1.1.1", msi.m_versions.iterator().next());
       } else if ("HIVE".equals(msi.m_name)) {
         foundHive = true;
         assertEquals(2, msi.m_versions.size());
@@ -208,6 +208,39 @@ public class VersionDefinitionTest {
     assertEquals(xml3.release.version, "2.3.4.1");
   }
 
+  @Test
+  public void testLoadingBadNewLine() throws Exception {
+    List<?> lines = FileUtils.readLines(file);
+
+    // crude
+    StringBuilder builder = new StringBuilder();
+    for (Object line : lines) {
+      String lineString = line.toString().trim();
+      if (lineString.startsWith("<baseurl>")) {
+        lineString = lineString.replace("<baseurl>", "");
+        lineString = lineString.replace("</baseurl>", "");
+
+        builder.append("<baseurl>\n");
+        builder.append(lineString).append('\n');
+        builder.append("</baseurl>\n");
+      } else if (lineString.startsWith("<version>")) {
+        lineString = lineString.replace("<version>", "");
+        lineString = lineString.replace("</version>", "");
+
+        builder.append("<version>\n");
+        builder.append(lineString).append('\n');
+        builder.append("</version>\n");
+      } else {
+        builder.append(line.toString().trim()).append('\n');
+      }
+    }
+
+    VersionDefinitionXml xml = VersionDefinitionXml.load(builder.toString());
+
+    validateXml(xml);
+  }
+
+
   private static ServiceInfo makeService(final String name) {
     return new ServiceInfo() {
       @Override