Repository: incubator-slider Updated Branches: refs/heads/feature/SLIDER-779_Move_to_Groovy_2.4.0 [created] c2fbd3eb9
SLIDER-779 move to groovy 2.4.0 Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/c2fbd3eb Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/c2fbd3eb Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/c2fbd3eb Branch: refs/heads/feature/SLIDER-779_Move_to_Groovy_2.4.0 Commit: c2fbd3eb9fadb1e5b863c7862b5ba3b701bcb1ed Parents: fb20ace Author: Steve Loughran <[email protected]> Authored: Mon Feb 9 10:58:46 2015 +0000 Committer: Steve Loughran <[email protected]> Committed: Mon Feb 9 10:58:46 2015 +0000 ---------------------------------------------------------------------- pom.xml | 6 +-- slider-assembly/pom.xml | 2 +- .../common/params/AbstractActionArgs.java | 4 +- .../apache/slider/common/params/CommonArgs.java | 2 +- .../apache/slider/common/tools/SliderUtils.java | 3 +- .../slider/client/TestCommonArgParsing.groovy | 40 +++++++++++++++----- .../view/TestClusterSpecificationBlock.groovy | 2 +- .../web/view/TestContainerStatsBlock.groovy | 26 +++++++++---- .../appmaster/web/view/TestIndexBlock.groovy | 2 +- .../org/apache/slider/test/KeysForTests.groovy | 2 + .../apache/slider/test/SliderTestUtils.groovy | 15 ++++---- .../funtest/framework/FileUploader.groovy | 6 +-- 12 files changed, 73 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c2fbd3eb/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index d051f35..4a23102 100644 --- a/pom.xml +++ b/pom.xml @@ -113,7 +113,7 @@ --> <project.java.src.version>1.6</project.java.src.version> <enforced.java.version>${project.java.src.version}</enforced.java.version> - <groovy.version>2.2.2</groovy.version> + <groovy.version>2.4.0</groovy.version> <!-- test options @@ -186,8 +186,8 @@ <apache-source-release-assembly-descriptor.version>1.0.4</apache-source-release-assembly-descriptor.version> <gmavenVersion>1.5</gmavenVersion> <gmavenProviderSelection>2.0</gmavenProviderSelection> - <groovy-eclipse-compiler.version>2.8.0-01</groovy-eclipse-compiler.version> - <groovy-eclipse-batch.version>2.1.3-01</groovy-eclipse-batch.version> + <groovy-eclipse-compiler.version>2.9.1-01</groovy-eclipse-compiler.version> + <groovy-eclipse-batch.version>2.3.7-01</groovy-eclipse-batch.version> <buildnumber-maven-plugin.version>1.2</buildnumber-maven-plugin.version> http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c2fbd3eb/slider-assembly/pom.xml ---------------------------------------------------------------------- diff --git a/slider-assembly/pom.xml b/slider-assembly/pom.xml index b6d15c1..77dccd1 100644 --- a/slider-assembly/pom.xml +++ b/slider-assembly/pom.xml @@ -17,7 +17,7 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <artifactId>slider-assembly</artifactId> - <name>Apache Slider Binary Distributione</name> + <name>Apache Slider Binary Distribution</name> <packaging>pom</packaging> <description>Apache Slider is a tool for dynamically deploying distributed applications to an Apache YARN cluster. This module provides the binary redistributable.</description> <parent> http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c2fbd3eb/slider-core/src/main/java/org/apache/slider/common/params/AbstractActionArgs.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/common/params/AbstractActionArgs.java b/slider-core/src/main/java/org/apache/slider/common/params/AbstractActionArgs.java index 22473d5..cc80142 100644 --- a/slider-core/src/main/java/org/apache/slider/common/params/AbstractActionArgs.java +++ b/slider-core/src/main/java/org/apache/slider/common/params/AbstractActionArgs.java @@ -133,14 +133,16 @@ public abstract class AbstractActionArgs extends ArgOps implements Arguments { maxArgs = minArgs; } if (actionArgSize > maxArgs) { - String message = String.format("%s for action %s: limit is %d but saw %d", + String message = String.format("%s for action %s: limit is %d but saw %d: ", ErrorStrings.ERROR_TOO_MANY_ARGUMENTS, getActionName(), maxArgs, actionArgSize); + log.error(message); int index = 1; for (String actionArg : parameters) { log.error("[{}] \"{}\"", index++, actionArg); + message += " \"" + actionArg + "\" "; } throw new BadCommandArgumentsException(message); } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c2fbd3eb/slider-core/src/main/java/org/apache/slider/common/params/CommonArgs.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/common/params/CommonArgs.java b/slider-core/src/main/java/org/apache/slider/common/params/CommonArgs.java index 57d5fb4..ba9c0e3 100644 --- a/slider-core/src/main/java/org/apache/slider/common/params/CommonArgs.java +++ b/slider-core/src/main/java/org/apache/slider/common/params/CommonArgs.java @@ -244,7 +244,7 @@ public abstract class CommonArgs extends ArgOps implements SliderActions, coreAction.validate(); } catch (BadCommandArgumentsException e) { StringBuilder badArgMsgBuilder = new StringBuilder(); - badArgMsgBuilder.append(e.toString() + "\n"); + badArgMsgBuilder.append(e.toString()).append("\n"); badArgMsgBuilder.append(usage(this, coreAction.getActionName())); throw new BadCommandArgumentsException(badArgMsgBuilder.toString()); } catch (UsageException e) { http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c2fbd3eb/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java b/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java index 1e3379c..a50fad2 100644 --- a/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java +++ b/slider-core/src/main/java/org/apache/slider/common/tools/SliderUtils.java @@ -1080,7 +1080,8 @@ public final class SliderUtils { * @param clusterRoleMap cluster role map to merge onto * @param commandOptions command opts */ - public static void applyCommandLineRoleOptsToRoleMap(Map<String, Map<String, String>> clusterRoleMap, + public static void applyCommandLineRoleOptsToRoleMap( + Map<String, Map<String, String>> clusterRoleMap, Map<String, Map<String, String>> commandOptions) { for (Map.Entry<String, Map<String, String>> entry : commandOptions.entrySet()) { String key = entry.getKey(); http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c2fbd3eb/slider-core/src/test/groovy/org/apache/slider/client/TestCommonArgParsing.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/client/TestCommonArgParsing.groovy b/slider-core/src/test/groovy/org/apache/slider/client/TestCommonArgParsing.groovy index 8b013e5..a6d8538 100644 --- a/slider-core/src/test/groovy/org/apache/slider/client/TestCommonArgParsing.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/client/TestCommonArgParsing.groovy @@ -302,12 +302,22 @@ class TestCommonArgParsing implements SliderActions, Arguments { * build the list of base arguments for all operations * @return the base arguments */ - private def baseArgs() { + private List<String> baseArgs() { return [ ] } + /** + * Here to diagnose some problems with groovy concatenation on + * some groovy versions + * @throws Throwable + */ + @Test + public void testListConcat() throws Throwable { + def l1 = ["a"] + baseArgs() + assert l1.size() == 1 + } @Test public void testCreateWaitTime() throws Throwable { @@ -466,10 +476,7 @@ class TestCommonArgParsing implements SliderActions, Arguments { def roleOpts = createArgs.compOptionMap - def clusterRoleMap = Maps.newHashMap([ - "master":["cheese":"french"], - "worker":["env.CHEESE":"french"] - ]) + def clusterRoleMap = createEnvMap() SliderUtils.applyCommandLineRoleOptsToRoleMap(clusterRoleMap, roleOpts); def masterOpts = clusterRoleMap["master"]; @@ -485,10 +492,8 @@ class TestCommonArgParsing implements SliderActions, Arguments { def roleOpts = createArgs.compOptionMap - Map<String, Map<String, String>> clusterRoleMap = Maps.newHashMap([ - "master": ["cheese": "french"], - "worker": ["env.CHEESE": "french"] - ]) + + Map<String, Map<String, String>> clusterRoleMap = createEnvMap() SliderUtils.applyCommandLineRoleOptsToRoleMap(clusterRoleMap, roleOpts); def workerOpts = Maps.newHashMap(clusterRoleMap["worker"]) @@ -499,5 +504,22 @@ class TestCommonArgParsing implements SliderActions, Arguments { } + /** + * static compiler complaining about matching LinkedHashMap with Map, + * so some explicit creation here + * @return a map of maps + */ + public Map<String, Map<String, String>> createEnvMap() { + + Map<String, String> cheese = new HashMap<>() + cheese["cheese"]="french" + Map<String, String> envCheese = new HashMap<>() + envCheese["env.CHEESE"] = "french" + Map<String, Map<String, String>> envMap = new HashMap<>() + envMap["master"] = cheese + envMap["worker"] = envCheese + return envMap + } + } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c2fbd3eb/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestClusterSpecificationBlock.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestClusterSpecificationBlock.groovy b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestClusterSpecificationBlock.groovy index 7ea5a2a..99374f4 100644 --- a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestClusterSpecificationBlock.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestClusterSpecificationBlock.groovy @@ -38,7 +38,7 @@ import org.junit.Before import org.junit.Test @Slf4j -@CompileStatic +//@CompileStatic public class TestClusterSpecificationBlock { private ClusterSpecificationBlock clusterSpecBlock; http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c2fbd3eb/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestContainerStatsBlock.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestContainerStatsBlock.groovy b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestContainerStatsBlock.groovy index abd8477..c2f1c0f 100644 --- a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestContainerStatsBlock.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestContainerStatsBlock.groovy @@ -43,7 +43,7 @@ import org.junit.Before import org.junit.Test @Slf4j -@CompileStatic +//@CompileStatic public class TestContainerStatsBlock extends BaseMockAppStateTest { private ContainerStatsBlock statsBlock; @@ -53,6 +53,7 @@ public class TestContainerStatsBlock extends BaseMockAppStateTest { @Before public void setup() { + super.setup() SliderClusterProtocol clusterProto = new MockSliderClusterProtocol(); ProviderService providerService = new MockProviderService(); ProviderAppState providerAppState = new ProviderAppState( @@ -66,13 +67,7 @@ public class TestContainerStatsBlock extends BaseMockAppStateTest { null, null, metrics, null); - Injector injector = Guice.createInjector(new AbstractModule() { - @Override - protected void configure() { - bind(WebAppApi.class).toInstance(inst); - } - }); - + Injector injector = Guice.createInjector(new WebappModule(inst)) statsBlock = injector.getInstance(ContainerStatsBlock.class); cont1 = new MockContainer(); @@ -89,6 +84,21 @@ public class TestContainerStatsBlock extends BaseMockAppStateTest { cont2.resource = new MockResource(); } + + public static class WebappModule extends AbstractModule { + final WebAppApiImpl instance; + + WebappModule(WebAppApiImpl instance) { + this.instance = instance + } + + @Override + protected void configure() { + bind(WebAppApi.class).toInstance(instance); + } + } + + public MockContainerId mockContainerId(int count) { new MockContainerId(applicationAttemptId, count) } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c2fbd3eb/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestIndexBlock.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestIndexBlock.groovy b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestIndexBlock.groovy index 324aa38..dba2a18 100644 --- a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestIndexBlock.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/web/view/TestIndexBlock.groovy @@ -34,7 +34,7 @@ import org.junit.Before import org.junit.Test @Slf4j -@CompileStatic +//@CompileStatic public class TestIndexBlock extends BaseMockAppStateTest { private IndexBlock indexBlock; http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c2fbd3eb/slider-core/src/test/groovy/org/apache/slider/test/KeysForTests.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/test/KeysForTests.groovy b/slider-core/src/test/groovy/org/apache/slider/test/KeysForTests.groovy index 4fae2ae..4721552 100644 --- a/slider-core/src/test/groovy/org/apache/slider/test/KeysForTests.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/test/KeysForTests.groovy @@ -18,12 +18,14 @@ package org.apache.slider.test +import groovy.transform.CompileStatic import org.apache.slider.common.SliderKeys import org.apache.slider.common.SliderXMLConfKeysForTesting /** * Keys shared across tests */ +@CompileStatic public interface KeysForTests extends SliderKeys, SliderXMLConfKeysForTesting { /** * Username for all clusters, ZK, etc http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c2fbd3eb/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy b/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy index 1ed340f..d9d5422 100644 --- a/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/test/SliderTestUtils.groovy @@ -547,10 +547,11 @@ class SliderTestUtils extends Assert { throw new ForbiddenException(url); } if (!(resultCode >= 200 && resultCode < 400)) { - String message = "$verb to $url " + - " failed with exit code " + - resultCode + ", body length " + - body?.length() + ":\n" + body + String bodyDetails = (body == null ? + "(no body)" : + "body length ${body?.length()}:\n:$body") + String message = "$verb to $url failed with exit code $resultCode; $bodyDetails" + log.error(message); throw new IOException(message); } @@ -961,10 +962,8 @@ class SliderTestUtils extends Assert { throws Throwable { try { ServiceLauncher launch = launch(serviceClass, conf, args); - throw new AssertionError( - "Expected an exception with text containing " + expectedText - + " -but the service completed with exit code " - + launch.serviceExitCode); + fail("Expected an exception with text containing $expectedText "+ + " -but the service completed with exit code ${launch.serviceExitCode}"); } catch (Throwable thrown) { if (expectedText && !thrown.toString().contains(expectedText)) { //not the right exception -rethrow http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/c2fbd3eb/slider-funtest/src/main/groovy/org/apache/slider/funtest/framework/FileUploader.groovy ---------------------------------------------------------------------- diff --git a/slider-funtest/src/main/groovy/org/apache/slider/funtest/framework/FileUploader.groovy b/slider-funtest/src/main/groovy/org/apache/slider/funtest/framework/FileUploader.groovy index 70f119e..1c000a2 100644 --- a/slider-funtest/src/main/groovy/org/apache/slider/funtest/framework/FileUploader.groovy +++ b/slider-funtest/src/main/groovy/org/apache/slider/funtest/framework/FileUploader.groovy @@ -91,13 +91,13 @@ class FileUploader { } - public def getFileSystem( + public HadoopFS getFileSystem( UserGroupInformation user, final Path path) { return getFileSystem(user, path.toUri()) } - public def getFileSystem( + public HadoopFS getFileSystem( UserGroupInformation user, final URI uri) { SudoClosure.sudo(user) { @@ -105,7 +105,7 @@ class FileUploader { } } - public def getFileSystemAsUserName(String username) { + public HadoopFS getFileSystemAsUserName(String username) { def user = UserGroupInformation.createRemoteUser(username) getFileSystem(user, HadoopFS.getDefaultUri(conf))
