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/240c0719 Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/240c0719 Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/240c0719 Branch: refs/heads/develop Commit: 240c071948bbc938d8404f9553a25055385beba8 Parents: c927bad Author: Steve Loughran <ste...@apache.org> Authored: Mon Feb 9 10:58:46 2015 +0000 Committer: Steve Loughran <ste...@apache.org> Committed: Wed Feb 25 17:39:41 2015 -0800 ---------------------------------------------------------------------- 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 | 27 +++++++++---- .../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, 74 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/240c0719/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 1f5fdc0..a623b85 100644 --- a/pom.xml +++ b/pom.xml @@ -114,7 +114,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 @@ -187,8 +187,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/240c0719/slider-assembly/pom.xml ---------------------------------------------------------------------- diff --git a/slider-assembly/pom.xml b/slider-assembly/pom.xml index 368efd6..e005288 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/240c0719/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/240c0719/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/240c0719/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/240c0719/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/240c0719/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 9907b94..e1964f5 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 @@ -36,7 +36,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/240c0719/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 4ef70a3..e70318b 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 @@ -42,7 +42,7 @@ import org.junit.Before import org.junit.Test @Slf4j -@CompileStatic +//@CompileStatic public class TestContainerStatsBlock extends BaseMockAppStateTest { private ContainerStatsBlock statsBlock; @@ -52,6 +52,8 @@ public class TestContainerStatsBlock extends BaseMockAppStateTest { @Before public void setup() { + super.setup() + SliderClusterProtocol clusterProto = new MockSliderClusterProtocol(); ProviderService providerService = new MockProviderService(); ProviderAppState providerAppState = new ProviderAppState( "undefined", @@ -63,13 +65,7 @@ public class TestContainerStatsBlock extends BaseMockAppStateTest { null, null, metrics, null, null, 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(); @@ -86,6 +82,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/240c0719/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 c44baee..9ec230c 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 @@ -33,7 +33,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/240c0719/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/240c0719/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/240c0719/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))