You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ao...@apache.org on 2015/10/20 16:20:12 UTC

[1/2] ambari git commit: AMBARI-13490. If there are more than one ambari-server*jar in classpath we should fail to start (aonishuk)

Repository: ambari
Updated Branches:
  refs/heads/branch-2.1 466833dc9 -> 8bc1a98a5
  refs/heads/trunk 99de0edb7 -> 1cd72bddd


AMBARI-13490. If there are more than one ambari-server*jar in classpath we should fail to start (aonishuk)


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

Branch: refs/heads/trunk
Commit: 1cd72bddd362dbc8916759ef4f0e5b7b5531b0bd
Parents: 99de0ed
Author: Andrew Onishuk <ao...@hortonworks.com>
Authored: Tue Oct 20 17:19:54 2015 +0300
Committer: Andrew Onishuk <ao...@hortonworks.com>
Committed: Tue Oct 20 17:19:54 2015 +0300

----------------------------------------------------------------------
 .../ambari/server/controller/AmbariServer.java  | 26 ++++++++++++++++++++
 1 file changed, 26 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/1cd72bdd/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
index 8f3869f..5bc0962 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
@@ -20,10 +20,13 @@ package org.apache.ambari.server.controller;
 
 
 import java.io.File;
+import java.io.IOException;
 import java.net.Authenticator;
 import java.net.BindException;
 import java.net.PasswordAuthentication;
+import java.net.URL;
 import java.util.EnumSet;
+import java.util.Enumeration;
 import java.util.Map;
 
 import javax.crypto.BadPaddingException;
@@ -150,6 +153,29 @@ public class AmbariServer {
   static {
     Velocity.setProperty("runtime.log.logsystem.log4j.logger", VELOCITY_LOG_CATEGORY);
   }
+  
+  private static final String CLASSPATH_CHECK_CLASS = "org/apache/ambari/server/controller/AmbariServer.class";
+  private static final String CLASSPATH_SANITY_CHECK_FAILURE_MESSAGE = "%s class is found in multiple jar files. Possible reasons include multiple ambari server jar files in the ambari classpath.\n" +
+  "Check for additional ambari server jar files and check that /usr/lib/ambari-server/ambari-server*.jar matches only one file.";
+  
+  static {
+    Enumeration<URL> ambariServerClassUrls;
+    try {
+      ambariServerClassUrls = AmbariServer.class.getClassLoader().getResources(CLASSPATH_CHECK_CLASS);
+      
+      int ambariServerClassUrlsSize = 0;
+      while(ambariServerClassUrls.hasMoreElements()){
+        ambariServerClassUrlsSize++;
+        URL url = ambariServerClassUrls.nextElement();
+        LOG.info(String.format("Found %s class in %s", CLASSPATH_CHECK_CLASS, url.getPath()));
+      }
+      if(ambariServerClassUrlsSize>1) {
+        throw new RuntimeException(String.format(CLASSPATH_SANITY_CHECK_FAILURE_MESSAGE, CLASSPATH_CHECK_CLASS));
+      }
+    } catch (IOException e) {
+        e.printStackTrace();
+    }
+  }
 
   private Server server = null;
 


[2/2] ambari git commit: AMBARI-13490. If there are more than one ambari-server*jar in classpath we should fail to start (aonishuk)

Posted by ao...@apache.org.
AMBARI-13490. If there are more than one ambari-server*jar in classpath we should fail to start (aonishuk)


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

Branch: refs/heads/branch-2.1
Commit: 8bc1a98a5d50c78d9adb0f350d3dedaa9d723548
Parents: 466833d
Author: Andrew Onishuk <ao...@hortonworks.com>
Authored: Tue Oct 20 17:19:59 2015 +0300
Committer: Andrew Onishuk <ao...@hortonworks.com>
Committed: Tue Oct 20 17:19:59 2015 +0300

----------------------------------------------------------------------
 .../ambari/server/controller/AmbariServer.java  | 26 ++++++++++++++++++++
 1 file changed, 26 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/8bc1a98a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
index d1444d4..6a7fd6a 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariServer.java
@@ -20,10 +20,13 @@ package org.apache.ambari.server.controller;
 
 
 import java.io.File;
+import java.io.IOException;
 import java.net.Authenticator;
 import java.net.BindException;
 import java.net.PasswordAuthentication;
+import java.net.URL;
 import java.util.EnumSet;
+import java.util.Enumeration;
 import java.util.Map;
 
 import javax.crypto.BadPaddingException;
@@ -151,6 +154,29 @@ public class AmbariServer {
   static {
     Velocity.setProperty("runtime.log.logsystem.log4j.logger", VELOCITY_LOG_CATEGORY);
   }
+  
+  private static final String CLASSPATH_CHECK_CLASS = "org/apache/ambari/server/controller/AmbariServer.class";
+  private static final String CLASSPATH_SANITY_CHECK_FAILURE_MESSAGE = "%s class is found in multiple jar files. Possible reasons include multiple ambari server jar files in the ambari classpath.\n" +
+  "Check for additional ambari server jar files and check that /usr/lib/ambari-server/ambari-server*.jar matches only one file.";
+  
+  static {
+    Enumeration<URL> ambariServerClassUrls;
+    try {
+      ambariServerClassUrls = AmbariServer.class.getClassLoader().getResources(CLASSPATH_CHECK_CLASS);
+      
+      int ambariServerClassUrlsSize = 0;
+      while(ambariServerClassUrls.hasMoreElements()){
+        ambariServerClassUrlsSize++;
+        URL url = ambariServerClassUrls.nextElement();
+        LOG.info(String.format("Found %s class in %s", CLASSPATH_CHECK_CLASS, url.getPath()));
+      }
+      if(ambariServerClassUrlsSize>1) {
+        throw new RuntimeException(String.format(CLASSPATH_SANITY_CHECK_FAILURE_MESSAGE, CLASSPATH_CHECK_CLASS));
+      }
+    } catch (IOException e) {
+        e.printStackTrace();
+    }
+  }
 
   private Server server = null;