You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2015/06/06 14:52:29 UTC

incubator-kylin git commit: minor, DebugTomcat pick up job jars from dev env

Repository: incubator-kylin
Updated Branches:
  refs/heads/0.7-staging fc838d3e9 -> 14141e0db


minor, DebugTomcat pick up job jars from dev env


Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/14141e0d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/14141e0d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/14141e0d

Branch: refs/heads/0.7-staging
Commit: 14141e0dbc6bdc597c39628a548059e259447881
Parents: fc838d3
Author: Yang Li <li...@apache.org>
Authored: Sat Jun 6 20:52:20 2015 +0800
Committer: Yang Li <li...@apache.org>
Committed: Sat Jun 6 20:52:20 2015 +0800

----------------------------------------------------------------------
 .../org/apache/kylin/common/KylinConfig.java    |  3 +-
 .../java/org/apache/kylin/rest/DebugTomcat.java | 87 ++++++++++++++------
 2 files changed, 62 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/14141e0d/common/src/main/java/org/apache/kylin/common/KylinConfig.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/kylin/common/KylinConfig.java b/common/src/main/java/org/apache/kylin/common/KylinConfig.java
index 536f34c..b21e63b 100644
--- a/common/src/main/java/org/apache/kylin/common/KylinConfig.java
+++ b/common/src/main/java/org/apache/kylin/common/KylinConfig.java
@@ -304,6 +304,7 @@ public class KylinConfig {
     }
 
     public void overrideKylinJobJarPath(String path) {
+        logger.info("override " + KYLIN_JOB_JAR + " to " + path);
         System.setProperty(KYLIN_JOB_JAR, path);
     }
 
@@ -341,6 +342,7 @@ public class KylinConfig {
     }
 
     public void overrideCoprocessorLocalJar(String path) {
+        logger.info("override " + COPROCESSOR_LOCAL_JAR + " to " + path);
         System.setProperty(COPROCESSOR_LOCAL_JAR, path);
     }
 
@@ -469,7 +471,6 @@ public class KylinConfig {
         return property != null ? property : kylinConfig.getString(prop);
     }
 
-
     private String[] getOptionalStringArray(String prop) {
         final String property = System.getProperty(prop);
         if (!StringUtil.isBlank(property))

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/14141e0d/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java b/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
index 2a09b07..57f1322 100644
--- a/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
+++ b/server/src/main/java/org/apache/kylin/rest/DebugTomcat.java
@@ -28,44 +28,77 @@ import org.apache.catalina.core.StandardServer;
 import org.apache.catalina.deploy.ErrorPage;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.hadoop.util.Shell;
-
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.rest.util.ClasspathUtil;
 
 public class DebugTomcat {
 
+    public static void setupDebugEnv() {
+        try {
+            // test_case_data/sandbox/ contains HDP 2.2 site xmls which is dev sandbox
+            ClasspathUtil.addClasspath(new File("../examples/test_case_data/sandbox").getAbsolutePath());
+            System.setProperty(KylinConfig.KYLIN_CONF, "../examples/test_case_data/sandbox");
+            overrideDevJobJarLocations();
+            
+            System.setProperty("spring.profiles.active", "testing");
+            if (System.getProperty("hdp.version") == null)
+                System.setProperty("hdp.version", "2.2.4.2-2"); // mapred-site.xml ref this
+
+            // workaround for job submission from win to linux -- https://issues.apache.org/jira/browse/MAPREDUCE-4052
+            if (Shell.WINDOWS) {
+                {
+                    Field field = Shell.class.getDeclaredField("WINDOWS");
+                    field.setAccessible(true);
+                    Field modifiersField = Field.class.getDeclaredField("modifiers");
+                    modifiersField.setAccessible(true);
+                    modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
+                    field.set(null, false);
+                }
+                {
+                    Field field = java.io.File.class.getDeclaredField("pathSeparator");
+                    field.setAccessible(true);
+                    Field modifiersField = Field.class.getDeclaredField("modifiers");
+                    modifiersField.setAccessible(true);
+                    modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
+                    field.set(null, ":");
+                }
+            }
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+    }
+
+    private static void overrideDevJobJarLocations() {
+        KylinConfig conf = KylinConfig.getInstanceFromEnv();
+        File devJobJar = findFile("../job/target", "kylin-job-.*-SNAPSHOT-job.jar");
+        if (devJobJar != null) {
+            conf.overrideKylinJobJarPath(devJobJar.getAbsolutePath());
+        }
+        File devCoprocessorJar = findFile("../storage/target", "kylin-storage-.*-SNAPSHOT-coprocessor.jar");
+        if (devCoprocessorJar != null) {
+            conf.overrideCoprocessorLocalJar(devCoprocessorJar.getAbsolutePath());
+        }
+    }
+
+    private static File findFile(String dir, String ptn) {
+        File[] files = new File(dir).listFiles();
+        if (files != null) {
+            for (File f : files) {
+                if (f.getName().matches(ptn))
+                    return f;
+            }
+        }
+        return null;
+    }
+
     public static void main(String[] args) throws Exception {
+        setupDebugEnv();
+        
         int port = 7070;
         if (args.length >= 1) {
             port = Integer.parseInt(args[0]);
         }
         
-        // test_case_data/sandbox/ contains HDP 2.2 site xmls which is dev sandbox
-        ClasspathUtil.addClasspath(new File("../examples/test_case_data/sandbox").getAbsolutePath());
-        System.setProperty(KylinConfig.KYLIN_CONF, "../examples/test_case_data/sandbox");
-        System.setProperty("hdp.version", "2.2.4.2-2"); // mapred-site.xml ref this
-
-        // workaround for job submission from win to linux -- https://issues.apache.org/jira/browse/MAPREDUCE-4052
-        if (Shell.WINDOWS) {
-            {
-                Field field = Shell.class.getDeclaredField("WINDOWS");
-                field.setAccessible(true);
-                Field modifiersField = Field.class.getDeclaredField("modifiers");
-                modifiersField.setAccessible(true);
-                modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
-                field.set(null, false);
-            }
-            {
-                Field field = java.io.File.class.getDeclaredField("pathSeparator");
-                field.setAccessible(true);
-                Field modifiersField = Field.class.getDeclaredField("modifiers");
-                modifiersField.setAccessible(true);
-                modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
-                field.set(null, ":");
-            }
-        }
-
-        System.setProperty("spring.profiles.active", "testing");
         String webBase = new File("../webapp/app").getAbsolutePath();
         if (new File(webBase, "WEB-INF").exists() == false) {
             throw new RuntimeException("In order to launch Kylin web app from IDE, please make a symblink from webapp/app/WEB-INF to server/src/main/webapp/WEB-INF");