Repository: groovy
Updated Branches:
  refs/heads/GROOVY_2_6_X 225e2bfd0 -> d182c9794


GROOVY-8567: minor tweaks for Groovyc to picocli conversion (closes #703)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/7e8c734e
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/7e8c734e
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/7e8c734e

Branch: refs/heads/GROOVY_2_6_X
Commit: 7e8c734e52d18a2182c5cbcb5747a6c731689935
Parents: 225e2bf
Author: Paul King <pa...@asert.com.au>
Authored: Thu May 17 23:13:42 2018 +1000
Committer: Paul King <pa...@asert.com.au>
Committed: Fri May 18 12:24:12 2018 +1000

----------------------------------------------------------------------
 gradle/assemble.gradle                          | 10 +++-
 gradle/pomconfigurer.gradle                     |  3 +
 .../groovy/tools/FileSystemCompiler.java        | 62 +++++++++++++++-----
 .../java/org/codehaus/groovy/ant/Groovyc.java   |  2 +-
 .../groovy/groovy/cli/commons/CliBuilder.groovy |  2 +-
 .../groovy/groovy/cli/picocli/CliBuilder.groovy |  2 +-
 .../org/codehaus/groovy/tools/shell/Main.groovy |  1 +
 7 files changed, 60 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/7e8c734e/gradle/assemble.gradle
----------------------------------------------------------------------
diff --git a/gradle/assemble.gradle b/gradle/assemble.gradle
index f76fe99..d4844bd 100644
--- a/gradle/assemble.gradle
+++ b/gradle/assemble.gradle
@@ -199,7 +199,7 @@ allprojects {
                             return component.module in [
                                     'antlr', 'antlr-runtime', 'antlr4', 
'antlr4-runtime', 'antlr4-annotations',
                                     'asm', 'asm-commons', 'asm-tree', 
'asm-util',
-                                    'commons-cli']
+                                    'commons-cli', 'picocli']
                         }
                         return false
                     }
@@ -212,13 +212,17 @@ allprojects {
                     'org/codehaus/groovy/cli/GroovyPosixParser*.class',
                     'groovy/util/CliBuilder*.class',
                     'groovy/util/OptionAccessor*.class',
-                    'org/codehaus/groovy/tools/shell/util/HelpFormatter*.class'
+                    
'org/codehaus/groovy/tools/shell/util/HelpFormatter*.class',
+                    'groovy/cli/commons/CliBuilder*.class',
+                    'groovy/cli/commons/OptionAccessor*.class',
+                    'groovy/cli/picocli/CliBuilder*.class'
             ]
             patterns = [
                     'antlr.**'                 : 'groovyjarjarantlr.@1', // 
antlr2
                     'org.antlr.**'             : 'groovyjarjarantlr4.@1', // 
antlr4
                     'org.objectweb.**'         : 'groovyjarjarasm.@1',
-                    'org.apache.commons.cli.**': 'groovyjarjarcommonscli.@1'
+                    'org.apache.commons.cli.**': 'groovyjarjarcommonscli.@1',
+                    'picocli.**': 'groovyjarjarpicocli.@1'
             ]
             excludesPerLibrary = [
                     '*': ['META-INF/maven/**', 'META-INF/*', 
'META-INF/services/javax.annotation.processing.Processor', 'module-info.class']

http://git-wip-us.apache.org/repos/asf/groovy/blob/7e8c734e/gradle/pomconfigurer.gradle
----------------------------------------------------------------------
diff --git a/gradle/pomconfigurer.gradle b/gradle/pomconfigurer.gradle
index 3ce9ada..31ea58a 100644
--- a/gradle/pomconfigurer.gradle
+++ b/gradle/pomconfigurer.gradle
@@ -627,6 +627,9 @@ project.ext.pomConfigureClosureWithoutTweaks = {
             contributor {
                 name 'Tom Nichols'
             }
+            contributor {
+                name 'Remko Popma'
+            }
         }
         mailingLists {
             mailingList {

http://git-wip-us.apache.org/repos/asf/groovy/blob/7e8c734e/src/main/java/org/codehaus/groovy/tools/FileSystemCompiler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/codehaus/groovy/tools/FileSystemCompiler.java 
b/src/main/java/org/codehaus/groovy/tools/FileSystemCompiler.java
index 8b54b30..cd00053 100644
--- a/src/main/java/org/codehaus/groovy/tools/FileSystemCompiler.java
+++ b/src/main/java/org/codehaus/groovy/tools/FileSystemCompiler.java
@@ -18,24 +18,32 @@
  */
 package org.codehaus.groovy.tools;
 
+import groovy.lang.DeprecationException;
 import groovy.lang.GroovyResourceLoader;
 import groovy.lang.GroovySystem;
 import org.apache.commons.cli.HelpFormatter;
 import org.apache.commons.cli.Options;
-import picocli.CommandLine;
-import picocli.CommandLine.*;
 import org.codehaus.groovy.control.CompilationUnit;
 import org.codehaus.groovy.control.CompilerConfiguration;
 import org.codehaus.groovy.control.ConfigurationException;
 import org.codehaus.groovy.runtime.DefaultGroovyStaticMethods;
 import org.codehaus.groovy.runtime.StringGroovyMethods;
 import org.codehaus.groovy.tools.javac.JavaAwareCompilationUnit;
-
-import java.io.*;
+import picocli.CommandLine;
+import picocli.CommandLine.Command;
+import picocli.CommandLine.IVersionProvider;
+import picocli.CommandLine.Option;
+import picocli.CommandLine.Parameters;
+import picocli.CommandLine.ParseResult;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.PrintWriter;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -72,13 +80,6 @@ public class FileSystemCompiler {
         unit.compile();
     }
 
-    /** @deprecated use {@link #displayHelp(PrintWriter)} instead */
-    @Deprecated
-    public static void displayHelp(final Options options) {
-        final HelpFormatter formatter = new HelpFormatter();
-        formatter.printHelp(80, "groovyc [options] <source-files>", 
"options:", options, "");
-    }
-
     /** Prints the usage help message for {@link CompilationOptions} to stderr.
      * @see #displayHelp(PrintWriter)
      * @since 2.5 */
@@ -86,19 +87,20 @@ public class FileSystemCompiler {
         displayHelp(new PrintWriter(System.err, true));
     }
 
-    /** Prints the usage help message for the {@link CompilationOptions} to 
the specified PrintWriter. */
+    /** Prints the usage help message for the {@link CompilationOptions} to 
the specified PrintWriter.
+     * @since 2.5 */
     public static void displayHelp(final PrintWriter writer) {
         configureParser(new CompilationOptions()).usage(writer);
     }
 
     /** Prints version information to stderr.
-     * @see #displayVersion(PrintWriter)
-     * @since 2.5 */
+     * @see #displayVersion(PrintWriter) */
     public static void displayVersion() {
         displayVersion(new PrintWriter(System.err, true));
     }
 
-    /** Prints version information to the specified PrintWriter. */
+    /** Prints version information to the specified PrintWriter.
+     * @since 2.5 */
     public static void displayVersion(final PrintWriter writer) {
         for (String line : new VersionProvider().getVersion()) {
             writer.println(line);
@@ -288,6 +290,8 @@ public class FileSystemCompiler {
         }
     }
 
+    /**
+     * @since 2.5 */
     static class VersionProvider implements IVersionProvider {
         @Override
         public String[] getVersion() {
@@ -299,6 +303,8 @@ public class FileSystemCompiler {
         }
     }
 
+    /**
+     * @since 2.5 */
     @Command(name = "groovyc",
             customSynopsis = "groovyc [options] <source-files>",
             sortOptions = false,
@@ -422,6 +428,30 @@ public class FileSystemCompiler {
         }
     }
 
+    /** @deprecated use {@link #displayHelp(PrintWriter)} instead */
+    @Deprecated
+    public static void displayHelp(final Options options) {
+        final HelpFormatter formatter = new HelpFormatter();
+        formatter.printHelp(80, "groovyc [options] <source-files>", 
"options:", options, "");
+    }
+
+    // some methods to avoid binary incompatibility - don't gain us a lot but 
gives the user
+    // something slightly less cryptic than a NoSuchMethodError or an 
IncompatibleClassChangeError
+    @Deprecated
+    public static CompilerConfiguration 
generateCompilerConfigurationFromOptions(org.apache.commons.cli.CommandLine 
cli) throws IOException {
+        throw new DeprecationException("This method is not supported for 
Groovy 2.5+. Consider instead using the FileSystemCompiler.CompilationOptions 
class.");
+    }
+
+    @Deprecated
+    public static String[] 
generateFileNamesFromOptions(org.apache.commons.cli.CommandLine cli) {
+        throw new DeprecationException("This method is not supported for 
Groovy 2.5+. Consider instead using the FileSystemCompiler.CompilationOptions 
class.");
+    }
+
+    @Deprecated
+    public static Options createCompilationOptions() {
+        throw new DeprecationException("This method is not supported for 
Groovy 2.5+. Consider instead using the FileSystemCompiler.CompilationOptions 
class.");
+    }
+
     /**
      * Creates a temporary directory in the default temporary directory (as 
specified by the system
      * property <i>java.io.tmpdir</i>.

http://git-wip-us.apache.org/repos/asf/groovy/blob/7e8c734e/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovyc.java
----------------------------------------------------------------------
diff --git 
a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovyc.java 
b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovyc.java
index 7a60ac8..8c57bcc 100644
--- a/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovyc.java
+++ b/subprojects/groovy-ant/src/main/java/org/codehaus/groovy/ant/Groovyc.java
@@ -161,7 +161,7 @@ import java.util.StringTokenizer;
  * &lt;/project&gt;
  * </pre>
  * <p>
- * Based heavily on the implementation of the Javac task in Apache Ant.
+ * Based on the implementation of the Javac task in Apache Ant.
  * <p>
  * Can also be used from {@link groovy.util.AntBuilder} to allow the build 
file to be scripted in Groovy.
  */

http://git-wip-us.apache.org/repos/asf/groovy/blob/7e8c734e/subprojects/groovy-cli-commons/src/main/groovy/groovy/cli/commons/CliBuilder.groovy
----------------------------------------------------------------------
diff --git 
a/subprojects/groovy-cli-commons/src/main/groovy/groovy/cli/commons/CliBuilder.groovy
 
b/subprojects/groovy-cli-commons/src/main/groovy/groovy/cli/commons/CliBuilder.groovy
index 790cb82..237b631 100644
--- 
a/subprojects/groovy-cli-commons/src/main/groovy/groovy/cli/commons/CliBuilder.groovy
+++ 
b/subprojects/groovy-cli-commons/src/main/groovy/groovy/cli/commons/CliBuilder.groovy
@@ -348,7 +348,7 @@ class CliBuilder {
      * Make options accessible from command line args with parser.
      * Returns null on bad command lines after displaying usage message.
      */
-    groovy.cli.commons.OptionAccessor parse(args) {
+    OptionAccessor parse(args) {
         if (expandArgumentFiles) args = expandArgumentFiles(args)
         if (!parser) {
             parser = posix != null && posix == false ? new GnuParser() : new 
DefaultParser()

http://git-wip-us.apache.org/repos/asf/groovy/blob/7e8c734e/subprojects/groovy-cli-picocli/src/main/groovy/groovy/cli/picocli/CliBuilder.groovy
----------------------------------------------------------------------
diff --git 
a/subprojects/groovy-cli-picocli/src/main/groovy/groovy/cli/picocli/CliBuilder.groovy
 
b/subprojects/groovy-cli-picocli/src/main/groovy/groovy/cli/picocli/CliBuilder.groovy
index b196a67..aacd832 100644
--- 
a/subprojects/groovy-cli-picocli/src/main/groovy/groovy/cli/picocli/CliBuilder.groovy
+++ 
b/subprojects/groovy-cli-picocli/src/main/groovy/groovy/cli/picocli/CliBuilder.groovy
@@ -510,7 +510,7 @@ class CliBuilder {
      * Sets the {@link #posix} property on this <code>CliBuilder</code> and the
      * <code>posixClusteredShortOptionsAllowed</code> property on the {@link 
#parser}
      * used by the underlying library.
-     * @param poxis whether to allow clustered short options
+     * @param posix whether to allow clustered short options
      */
     void setPosix(boolean posix) {
         this.posix = posix

http://git-wip-us.apache.org/repos/asf/groovy/blob/7e8c734e/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Main.groovy
----------------------------------------------------------------------
diff --git 
a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Main.groovy
 
b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Main.groovy
index 643f81f..acdc258 100644
--- 
a/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Main.groovy
+++ 
b/subprojects/groovy-groovysh/src/main/groovy/org/codehaus/groovy/tools/shell/Main.groovy
@@ -19,6 +19,7 @@
 package org.codehaus.groovy.tools.shell
 
 import groovy.cli.commons.CliBuilder
+import groovy.cli.commons.OptionAccessor
 import jline.TerminalFactory
 import jline.UnixTerminal
 import jline.UnsupportedTerminal

Reply via email to