You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2018/05/17 13:13:58 UTC
[2/2] groovy git commit: GROOVY-8567: minor tweaks for Groovyc to
picocli conversion (closes #703)
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/f03b04a7
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/f03b04a7
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/f03b04a7
Branch: refs/heads/master
Commit: f03b04a77db26a9555dac46de7bd4dd4728d7fa9
Parents: 96bac63
Author: Paul King <pa...@asert.com.au>
Authored: Thu May 17 23:13:42 2018 +1000
Committer: Paul King <pa...@asert.com.au>
Committed: Thu May 17 23:13:42 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/f03b04a7/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/f03b04a7/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/f03b04a7/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/f03b04a7/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;
* </project>
* </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/f03b04a7/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/f03b04a7/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/f03b04a7/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