[2/2] oozie git commit: OOZIE-2601 Ability to use local paths for the sharelib

2017-07-20 Thread asasvari
OOZIE-2601 Ability to use local paths for the sharelib


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

Branch: refs/heads/master
Commit: 25a8b99d5197c4e18acf0fd332c4396450d3d551
Parents: 18694b6
Author: Attila Sasvari 
Authored: Thu Jul 20 13:20:47 2017 +0200
Committer: Attila Sasvari 
Committed: Thu Jul 20 17:18:20 2017 +0200

--
 .../oozie/action/hadoop/JavaActionExecutor.java | 109 ++-
 .../apache/oozie/service/ShareLibService.java   |  75 +-
 .../org/apache/oozie/util/ClasspathUtils.java   |  27 +
 .../java/org/apache/oozie/util/FSUtils.java |  14 +
 core/src/main/resources/oozie-default.xml   |   3 +-
 .../service/TestShareLibMappingFileInput.java   |  88 ++
 .../oozie/service/TestShareLibService.java  | 873 ++-
 docs/src/site/twiki/AG_Install.twiki|  30 +-
 release-log.txt |   1 +
 9 files changed, 724 insertions(+), 496 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/oozie/blob/25a8b99d/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java
--
diff --git 
a/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java 
b/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java
index 89bac95..23e1f69 100644
--- a/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java
+++ b/core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java
@@ -18,44 +18,24 @@
 
 package org.apache.oozie.action.hadoop;
 
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.StringReader;
-import java.net.ConnectException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.UnknownHostException;
-import java.nio.ByteBuffer;
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Objects;
-import java.util.Properties;
-import java.util.Set;
-
-import org.apache.commons.io.IOUtils;
 import com.google.common.annotations.VisibleForTesting;
+import com.google.common.collect.ImmutableList;
+import com.google.common.io.Closeables;
 import com.google.common.primitives.Ints;
+import org.apache.commons.io.IOUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.filecache.DistributedCache;
 import org.apache.hadoop.fs.FileStatus;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.DataOutputBuffer;
-import org.apache.hadoop.security.AccessControlException;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.ipc.RemoteException;
 import org.apache.hadoop.mapred.JobClient;
 import org.apache.hadoop.mapred.TaskLog;
 import org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager;
 import org.apache.hadoop.mapreduce.v2.util.MRApps;
+import org.apache.hadoop.security.AccessControlException;
 import org.apache.hadoop.security.Credentials;
 import org.apache.hadoop.security.token.Token;
 import org.apache.hadoop.security.token.TokenIdentifier;
@@ -95,6 +75,7 @@ import org.apache.oozie.service.WorkflowAppService;
 import org.apache.oozie.util.ClasspathUtils;
 import org.apache.oozie.util.ELEvaluationException;
 import org.apache.oozie.util.ELEvaluator;
+import org.apache.oozie.util.FSUtils;
 import org.apache.oozie.util.JobUtils;
 import org.apache.oozie.util.LogUtils;
 import org.apache.oozie.util.PropertiesUtils;
@@ -105,8 +86,28 @@ import org.jdom.Element;
 import org.jdom.JDOMException;
 import org.jdom.Namespace;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.io.Closeables;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.StringReader;
+import java.net.ConnectException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.UnknownHostException;
+import java.nio.ByteBuffer;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Objects;
+import java.util.Properties;
+import java.util.Set;
 
 
 public class JavaActionExecutor extends ActionExecutor {
@@ -463,8 +464,11 @@ public class JavaActionExecutor extends ActionExecutor {
   

[1/2] oozie git commit: OOZIE-2601 Ability to use local paths for the sharelib

2017-07-20 Thread asasvari
Repository: oozie
Updated Branches:
  refs/heads/master 18694b616 -> 25a8b99d5


http://git-wip-us.apache.org/repos/asf/oozie/blob/25a8b99d/core/src/test/java/org/apache/oozie/service/TestShareLibService.java
--
diff --git 
a/core/src/test/java/org/apache/oozie/service/TestShareLibService.java 
b/core/src/test/java/org/apache/oozie/service/TestShareLibService.java
index 390545d..a4f3919 100644
--- a/core/src/test/java/org/apache/oozie/service/TestShareLibService.java
+++ b/core/src/test/java/org/apache/oozie/service/TestShareLibService.java
@@ -26,14 +26,18 @@ import java.net.URLDecoder;
 import java.text.SimpleDateFormat;
 import java.util.Arrays;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
+import com.google.common.io.Files;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.filecache.DistributedCache;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.LocalFileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.oozie.WorkflowActionBean;
 import org.apache.oozie.WorkflowJobBean;
@@ -54,23 +58,28 @@ import org.junit.Test;
 import com.google.common.collect.Lists;
 
 public class TestShareLibService extends XFsTestCase {
+private static final String HDFS_SCHEME_PREFIX = "hdfs";
+private static final String TEST_HDFS_HOME = "/user/test/";
+private static final String TEST_MAPPING_FILENAME = "config.properties";
+private static final String TEST_HDFS_MAPPING_FILE_PATH = TEST_HDFS_HOME + 
TEST_MAPPING_FILENAME;
+private static final String SHARELIB_PATH = "shareLibPath/";
 
 Services services;
 private static String testCaseDirPath;
-String shareLibPath = "shareLibPath";
 SimpleDateFormat dt = new SimpleDateFormat("MMddHHmmss");
-final String sharelibPath = "sharelib";
-final String metaFile = "/user/test/config.properties";
 
 @Override
 protected void setUp() throws Exception {
 super.setUp();
 testCaseDirPath = getTestCaseDir();
+services = new Services();
+setSystemProps();
 }
 
 @Override
 protected void tearDown() throws Exception {
 super.tearDown();
+services.destroy();
 }
 
 private void setSystemProps() throws IOException {
@@ -78,22 +87,21 @@ public class TestShareLibService extends XFsTestCase {
 IOUtils.createJar(new File(getTestCaseDir()), MyPig.class.getName() + 
".jar", MyPig.class);
 IOUtils.createJar(new File(getTestCaseDir()), TestHive.class.getName() 
+ ".jar", TestHive.class);
 
-Configuration conf = 
services.get(ConfigurationService.class).getConf();
+Configuration conf = getOozieConfig();
 conf.set(WorkflowAppService.SYSTEM_LIB_PATH, getFsTestCaseDir() + 
"/share/lib");
 conf.set(Services.CONF_SERVICE_CLASSES, 
conf.get(Services.CONF_SERVICE_CLASSES) + ","
 + DummyShareLibService.class.getName());
 conf.setStrings(ActionService.CONF_ACTION_EXECUTOR_CLASSES, 
DummyPigActionExecutor.class.getName(),
 DummyHiveActionExecutor.class.getName());
-
 }
 
 public static class DummyShareLibService extends ShareLibService {
 @Override
 public String findContainingJar(Class clazz) {
 if (JavaActionExecutor.getCommonLauncherClasses().contains(clazz)) 
{
-return testCaseDirPath + "/" + MyOozie.class.getName() + 
".jar";
+return testCaseDirPath + Path.SEPARATOR + 
MyOozie.class.getName() + ".jar";
 }
-return testCaseDirPath + "/" + clazz.getName() + ".jar";
+return testCaseDirPath + Path.SEPARATOR + clazz.getName() + ".jar";
 }
 }
 
@@ -128,9 +136,7 @@ public class TestShareLibService extends XFsTestCase {
 
 @Test
 public void testfailFast() throws Exception {
-services = new Services();
-setSystemProps();
-Configuration conf = 
services.get(ConfigurationService.class).getConf();
+Configuration conf = getOozieConfig();
 conf.set(ShareLibService.FAIL_FAST_ON_STARTUP, "true");
 // Set dummyfile as metafile which doesn't exist.
 conf.set(ShareLibService.SHARELIB_MAPPING_FILE, String.valueOf(new 
Date().getTime()));
@@ -141,99 +147,68 @@ public class TestShareLibService extends XFsTestCase {
 catch (Throwable e) {
 assertTrue(e.getMessage().contains("E0104: Could not fully 
initialize service"));
 }
-finally {
-services.destroy();
-}
 }
 
 @Test
 public void testCreateLauncherLibPath() throws Exception {
-services = new Services();
-setSystemProps();
-Configuration conf = 
services.get(ConfigurationService.class).getConf();
-conf.set(S